[libav-devel] [PATCH 2/3] arm: dsputil: prettify some conditional instructions in put_pixels macros

2014-08-17 Thread Janne Grunau
From: Mans Rullgard m...@mansr.com

Signed-off-by: Mans Rullgard m...@mansr.com
---
 libavcodec/arm/dsputil_neon.S | 62 ++-
 1 file changed, 20 insertions(+), 42 deletions(-)

diff --git a/libavcodec/arm/dsputil_neon.S b/libavcodec/arm/dsputil_neon.S
index 4bdcd95..21b1aba 100644
--- a/libavcodec/arm/dsputil_neon.S
+++ b/libavcodec/arm/dsputil_neon.S
@@ -136,9 +136,7 @@ endfunc
 sub r3,  r3,  #2
 vld1.64 {d0-d2},  [r1], r2
 vld1.64 {d4-d6},  [r1], r2
-  .ifeq \rnd
-vmov.i16q13, #1
-  .endif
+NRNDvmov.i16q13, #1
 pld [r1]
 pld [r1, r2]
 vext.8  q1,  q0,  q1,  #1
@@ -151,15 +149,11 @@ endfunc
 vld1.64 {d0-d2},  [r1], r2
 vadd.u16q12, q8,  q9
 pld [r1]
-  .ifeq \rnd
-vadd.u16q12, q12, q13
-  .endif
+NRNDvadd.u16q12, q12, q13
 vext.8  q15, q0,  q1,  #1
 vadd.u16q1 , q10, q11
 shrnd28, q12, #2
-  .ifeq \rnd
-vadd.u16q1,  q1,  q13
-  .endif
+NRNDvadd.u16q1,  q1,  q13
 shrnd29, q1,  #2
   .if \avg
 vld1.8  {q8}, [r0,:128]
@@ -171,15 +165,11 @@ endfunc
 vst1.64 {q14},[r0,:128], r2
 vadd.u16q12, q8,  q9
 pld [r1, r2]
-  .ifeq \rnd
-vadd.u16q12, q12, q13
-  .endif
+NRNDvadd.u16q12, q12, q13
 vext.8  q2,  q1,  q2,  #1
 vadd.u16q0,  q10, q11
 shrnd30, q12, #2
-  .ifeq \rnd
-vadd.u16q0,  q0,  q13
-  .endif
+NRNDvadd.u16q0,  q0,  q13
 shrnd31, q0,  #2
   .if \avg
 vld1.8  {q9}, [r0,:128]
@@ -192,15 +182,11 @@ endfunc
 
 vld1.64 {d0-d2},  [r1], r2
 vadd.u16q12, q8,  q9
-  .ifeq \rnd
-vadd.u16q12, q12, q13
-  .endif
+NRNDvadd.u16q12, q12, q13
 vext.8  q15, q0,  q1,  #1
 vadd.u16q1 , q10, q11
 shrnd28, q12, #2
-  .ifeq \rnd
-vadd.u16q1,  q1,  q13
-  .endif
+NRNDvadd.u16q1,  q1,  q13
 shrnd29, q1,  #2
   .if \avg
 vld1.8  {q8}, [r0,:128]
@@ -210,14 +196,10 @@ endfunc
 vaddl.u8q10, d1,  d31
 vst1.64 {q14},[r0,:128], r2
 vadd.u16q12, q8,  q9
-  .ifeq \rnd
-vadd.u16q12, q12, q13
-  .endif
+NRNDvadd.u16q12, q12, q13
 vadd.u16q0,  q10, q11
 shrnd30, q12, #2
-  .ifeq \rnd
-vadd.u16q0,  q0,  q13
-  .endif
+NRNDvadd.u16q0,  q0,  q13
 shrnd31, q0,  #2
   .if \avg
 vld1.8  {q9}, [r0,:128]
@@ -319,9 +301,7 @@ endfunc
 sub r3,  r3,  #2
 vld1.64 {q0}, [r1], r2
 vld1.64 {q1}, [r1], r2
-  .ifeq \rnd
-vmov.i16q11, #1
-  .endif
+NRNDvmov.i16q11, #1
 pld [r1]
 pld [r1, r2]
 vext.8  d4,  d0,  d1,  #1
@@ -333,9 +313,7 @@ endfunc
 pld [r1]
 vadd.u16q10, q8,  q9
 vext.8  d4,  d0,  d1,  #1
-  .ifeq \rnd
-vadd.u16q10, q10, q11
-  .endif
+NRNDvadd.u16q10, q10, q11
 vaddl.u8q8,  d0,  d4
 shrnd5,  q10, #2
 vld1.64 {q1}, [r1], r2
@@ -345,9 +323,7 @@ endfunc
 vld1.8  {d7}, [r0,:64]
 vrhadd.u8   d5,  d5,  d7
   .endif
-  .ifeq \rnd
-vadd.u16q10, q10, q11
-  .endif
+NRNDvadd.u16q10, q10, q11
 vst1.64 {d5}, [r0,:64], r2
 shrnd7,  q10, #2
   .if \avg
@@ -362,9 +338,7 @@ endfunc
 vld1.64 {q0}, [r1], r2
 vadd.u16q10, q8,  q9
 vext.8  d4,  d0,  d1,  #1
-  .ifeq \rnd
-vadd.u16q10, q10, q11
-  .endif
+NRNDvadd.u16q10, q10, q11
 vaddl.u8q8,  d0,  d4
 shrnd5,  q10, #2
 vadd.u16q10, q8,  q9
@@ -372,9 +346,7 @@ endfunc
 vld1.8  {d7}, [r0,:64]
 vrhadd.u8   d5,  d5,  d7
   .endif
-  .ifeq \rnd
-vadd.u16q10, q10, q11
-  .endif
+NRNDvadd.u16q10, q10, q11
 vst1.64 {d5}, [r0,:64], r2
 shrnd7,  q10, #2
   .if \avg
@@ -394,6 +366,8 @@ endfunc
 .macro shrn rd, rn, rm
 vrshrn.u16  \rd, \rn, \rm
 .endm
+.macro NRND insn:vararg
+.endm
   .else
 .macro avg  rd, rn, rm
 vhadd.u8\rd, \rn, \rm
@@ -401,12 +375,16 @@ endfunc
 .macro shrn rd, rn, rm
 vshrn.u16   \rd, \rn, \rm
 .endm
+

[libav-devel] Backport Arm NEON avg,put_pixels fixes to 0.8

2014-08-17 Thread Janne Grunau
Hi,

backports following three commits to 0.8

cbc7d60afa0c5 arm: dsputil: fix overreads in put/avg_pixels functions
2eba6898c96fe arm: dsputil: prettify some conditional instructions in
e54e6f25cfa8b arm/neon: dsputil: use correct size specifiers on

Only the first is required to fix the reported page faults due to
overreads during mpeg2 decoding (source DVD). The second one is there
only to keep the history and allows the backport of the third commit
without conflicts. The third one mainly fixes a theoretical problem
since probably nobody runs a full system with strict alignment
checking.

Janne
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH 1/3] arm: dsputil: fix overreads in put/avg_pixels functions

2014-08-17 Thread Janne Grunau
From: Mans Rullgard m...@mansr.com

The vertically interpolating variants of these functions read
ahead one line to optimise the loop.  On the last line processed,
this might be outside the buffer.  Fix these invalid reads by
processing the last line outside the loop.

Signed-off-by: Mans Rullgard m...@mansr.com
---
 libavcodec/arm/dsputil_neon.S | 92 +++
 1 file changed, 92 insertions(+)

diff --git a/libavcodec/arm/dsputil_neon.S b/libavcodec/arm/dsputil_neon.S
index d49aedd..4bdcd95 100644
--- a/libavcodec/arm/dsputil_neon.S
+++ b/libavcodec/arm/dsputil_neon.S
@@ -95,6 +95,7 @@ endfunc
 .endm
 
 .macro  pixels16_y2 rnd=1, avg=0
+sub r3,  r3,  #2
 vld1.64 {q0}, [r1], r2
 vld1.64 {q1}, [r1], r2
 1:  subsr3,  r3,  #2
@@ -114,10 +115,25 @@ endfunc
 vst1.64 {q2}, [r0,:128], r2
 vst1.64 {q3}, [r0,:128], r2
 bne 1b
+
+avg q2,  q0,  q1
+vld1.64 {q0}, [r1], r2
+avg q3,  q0,  q1
+  .if \avg
+vld1.8  {q8}, [r0,:128], r2
+vld1.8  {q9}, [r0,:128]
+vrhadd.u8   q2,  q2,  q8
+vrhadd.u8   q3,  q3,  q9
+sub r0,  r0,  r2
+  .endif
+vst1.64 {q2}, [r0,:128], r2
+vst1.64 {q3}, [r0,:128], r2
+
 bx  lr
 .endm
 
 .macro  pixels16_xy2rnd=1, avg=0
+sub r3,  r3,  #2
 vld1.64 {d0-d2},  [r1], r2
 vld1.64 {d4-d6},  [r1], r2
   .ifeq \rnd
@@ -173,6 +189,42 @@ endfunc
 vaddl.u8q11, d3,  d5
 vst1.64 {q15},[r0,:128], r2
 bgt 1b
+
+vld1.64 {d0-d2},  [r1], r2
+vadd.u16q12, q8,  q9
+  .ifeq \rnd
+vadd.u16q12, q12, q13
+  .endif
+vext.8  q15, q0,  q1,  #1
+vadd.u16q1 , q10, q11
+shrnd28, q12, #2
+  .ifeq \rnd
+vadd.u16q1,  q1,  q13
+  .endif
+shrnd29, q1,  #2
+  .if \avg
+vld1.8  {q8}, [r0,:128]
+vrhadd.u8   q14, q14, q8
+  .endif
+vaddl.u8q8,  d0,  d30
+vaddl.u8q10, d1,  d31
+vst1.64 {q14},[r0,:128], r2
+vadd.u16q12, q8,  q9
+  .ifeq \rnd
+vadd.u16q12, q12, q13
+  .endif
+vadd.u16q0,  q10, q11
+shrnd30, q12, #2
+  .ifeq \rnd
+vadd.u16q0,  q0,  q13
+  .endif
+shrnd31, q0,  #2
+  .if \avg
+vld1.8  {q9}, [r0,:128]
+vrhadd.u8   q15, q15, q9
+  .endif
+vst1.64 {q15},[r0,:128], r2
+
 bx  lr
 .endm
 
@@ -228,6 +280,7 @@ endfunc
 .endm
 
 .macro  pixels8_y2  rnd=1, avg=0
+sub r3,  r3,  #2
 vld1.64 {d0}, [r1], r2
 vld1.64 {d1}, [r1], r2
 1:  subsr3,  r3,  #2
@@ -246,10 +299,24 @@ endfunc
 vst1.64 {d4}, [r0,:64], r2
 vst1.64 {d5}, [r0,:64], r2
 bne 1b
+
+avg d4,  d0,  d1
+vld1.64 {d0}, [r1], r2
+avg d5,  d0,  d1
+  .if \avg
+vld1.8  {d2}, [r0,:64], r2
+vld1.8  {d3}, [r0,:64]
+vrhadd.u8   q2,  q2,  q1
+sub r0,  r0,  r2
+  .endif
+vst1.64 {d4}, [r0,:64], r2
+vst1.64 {d5}, [r0,:64], r2
+
 bx  lr
 .endm
 
 .macro  pixels8_xy2 rnd=1, avg=0
+sub r3,  r3,  #2
 vld1.64 {q0}, [r1], r2
 vld1.64 {q1}, [r1], r2
   .ifeq \rnd
@@ -291,6 +358,31 @@ endfunc
 vaddl.u8q9,  d2,  d6
 vst1.64 {d7}, [r0,:64], r2
 bgt 1b
+
+vld1.64 {q0}, [r1], r2
+vadd.u16q10, q8,  q9
+vext.8  d4,  d0,  d1,  #1
+  .ifeq \rnd
+vadd.u16q10, q10, q11
+  .endif
+vaddl.u8q8,  d0,  d4
+shrnd5,  q10, #2
+vadd.u16q10, q8,  q9
+  .if \avg
+vld1.8  {d7}, [r0,:64]
+vrhadd.u8   d5,  d5,  d7
+  .endif
+  .ifeq \rnd
+vadd.u16q10, q10, q11
+  .endif
+vst1.64 {d5}, [r0,:64], r2
+shrnd7,  q10, #2
+  .if \avg
+vld1.8  {d5}, [r0,:64]
+vrhadd.u8   d7,  d7,  d5
+  .endif
+vst1.64 {d7}, [r0,:64], r2
+
 bx  lr
 .endm
 
-- 
2.0.4

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH 3/3] arm/neon: dsputil: use correct size specifiers on vld1/vst1

2014-08-17 Thread Janne Grunau
From: Mans Rullgard m...@mansr.com

Change the size specifiers to match the actual element sizes
of the data.  This makes no practical difference with strict
alignment checking disabled (the default) other than somewhat
documenting the code.  With strict alignment checking on, it
avoids trapping the unaligned loads.

Signed-off-by: Mans Rullgard m...@mansr.com
---
 libavcodec/arm/dsputil_neon.S | 294 +-
 1 file changed, 147 insertions(+), 147 deletions(-)

diff --git a/libavcodec/arm/dsputil_neon.S b/libavcodec/arm/dsputil_neon.S
index 21b1aba..b59c901 100644
--- a/libavcodec/arm/dsputil_neon.S
+++ b/libavcodec/arm/dsputil_neon.S
@@ -44,22 +44,22 @@ endfunc
   .if \avg
 mov r12, r0
   .endif
-1:  vld1.64 {q0}, [r1], r2
-vld1.64 {q1}, [r1], r2
-vld1.64 {q2}, [r1], r2
+1:  vld1.8  {q0}, [r1], r2
+vld1.8  {q1}, [r1], r2
+vld1.8  {q2}, [r1], r2
 pld [r1, r2, lsl #2]
-vld1.64 {q3}, [r1], r2
+vld1.8  {q3}, [r1], r2
 pld [r1]
 pld [r1, r2]
 pld [r1, r2, lsl #1]
   .if \avg
-vld1.64 {q8}, [r12,:128], r2
+vld1.8  {q8}, [r12,:128], r2
 vrhadd.u8   q0,  q0,  q8
-vld1.64 {q9}, [r12,:128], r2
+vld1.8  {q9}, [r12,:128], r2
 vrhadd.u8   q1,  q1,  q9
-vld1.64 {q10},[r12,:128], r2
+vld1.8  {q10},[r12,:128], r2
 vrhadd.u8   q2,  q2,  q10
-vld1.64 {q11},[r12,:128], r2
+vld1.8  {q11},[r12,:128], r2
 vrhadd.u8   q3,  q3,  q11
   .endif
 subsr3,  r3,  #4
@@ -72,8 +72,8 @@ endfunc
 .endm
 
 .macro  pixels16_x2 rnd=1, avg=0
-1:  vld1.64 {d0-d2},  [r1], r2
-vld1.64 {d4-d6},  [r1], r2
+1:  vld1.8  {d0-d2},  [r1], r2
+vld1.8  {d4-d6},  [r1], r2
 pld [r1]
 pld [r1, r2]
 subsr3,  r3,  #2
@@ -88,21 +88,21 @@ endfunc
 vrhadd.u8   q2,  q2,  q3
 sub r0,  r0,  r2
   .endif
-vst1.64 {q0}, [r0,:128], r2
-vst1.64 {q2}, [r0,:128], r2
+vst1.8  {q0}, [r0,:128], r2
+vst1.8  {q2}, [r0,:128], r2
 bne 1b
 bx  lr
 .endm
 
 .macro  pixels16_y2 rnd=1, avg=0
 sub r3,  r3,  #2
-vld1.64 {q0}, [r1], r2
-vld1.64 {q1}, [r1], r2
+vld1.8  {q0}, [r1], r2
+vld1.8  {q1}, [r1], r2
 1:  subsr3,  r3,  #2
 avg q2,  q0,  q1
-vld1.64 {q0}, [r1], r2
+vld1.8  {q0}, [r1], r2
 avg q3,  q0,  q1
-vld1.64 {q1}, [r1], r2
+vld1.8  {q1}, [r1], r2
 pld [r1]
 pld [r1, r2]
   .if \avg
@@ -112,12 +112,12 @@ endfunc
 vrhadd.u8   q3,  q3,  q9
 sub r0,  r0,  r2
   .endif
-vst1.64 {q2}, [r0,:128], r2
-vst1.64 {q3}, [r0,:128], r2
+vst1.8  {q2}, [r0,:128], r2
+vst1.8  {q3}, [r0,:128], r2
 bne 1b
 
 avg q2,  q0,  q1
-vld1.64 {q0}, [r1], r2
+vld1.8  {q0}, [r1], r2
 avg q3,  q0,  q1
   .if \avg
 vld1.8  {q8}, [r0,:128], r2
@@ -126,16 +126,16 @@ endfunc
 vrhadd.u8   q3,  q3,  q9
 sub r0,  r0,  r2
   .endif
-vst1.64 {q2}, [r0,:128], r2
-vst1.64 {q3}, [r0,:128], r2
+vst1.8  {q2}, [r0,:128], r2
+vst1.8  {q3}, [r0,:128], r2
 
 bx  lr
 .endm
 
 .macro  pixels16_xy2rnd=1, avg=0
 sub r3,  r3,  #2
-vld1.64 {d0-d2},  [r1], r2
-vld1.64 {d4-d6},  [r1], r2
+vld1.8  {d0-d2},  [r1], r2
+vld1.8  {d4-d6},  [r1], r2
 NRNDvmov.i16q13, #1
 pld [r1]
 pld [r1, r2]
@@ -146,7 +146,7 @@ NRNDvmov.i16q13, #1
 vaddl.u8q9,  d4,  d6
 vaddl.u8q11, d5,  d7
 1:  subsr3,  r3,  #2
-vld1.64 {d0-d2},  [r1], r2
+vld1.8  {d0-d2},  [r1], r2
 vadd.u16q12, q8,  q9
 pld [r1]
 NRNDvadd.u16q12, q12, q13
@@ -160,9 +160,9 @@ NRNDvadd.u16q1,  q1,  q13
 vrhadd.u8   q14, q14, q8
   .endif
 vaddl.u8q8,  d0,  d30
-  

Re: [libav-devel] Backport Arm NEON avg,put_pixels fixes to 0.8

2014-08-17 Thread Luca Barbato
On 17/08/14 10:07, Janne Grunau wrote:
 Hi,
 
 backports following three commits to 0.8
 
 cbc7d60afa0c5 arm: dsputil: fix overreads in put/avg_pixels functions
 2eba6898c96fe arm: dsputil: prettify some conditional instructions in
 e54e6f25cfa8b arm/neon: dsputil: use correct size specifiers on
 
 Only the first is required to fix the reported page faults due to
 overreads during mpeg2 decoding (source DVD). The second one is there
 only to keep the history and allows the backport of the third commit
 without conflicts. The third one mainly fixes a theoretical problem
 since probably nobody runs a full system with strict alignment
 checking.

Sounds good to me, thanks a lot.

lu

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] lavr: Update the planar check in ff_audio_convert

2014-08-17 Thread Luca Barbato
Leftover from fbc0b8659967ea54a8472b5f795270d38bb085dd.

Signed-off-by: Luca Barbato lu_z...@gentoo.org
---
 libavresample/audio_convert.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavresample/audio_convert.c b/libavresample/audio_convert.c
index 11e..ef23912 100644
--- a/libavresample/audio_convert.c
+++ b/libavresample/audio_convert.c
@@ -345,13 +345,13 @@ int ff_audio_convert(AudioConvert *ac, AudioData *out, 
AudioData *in)
 if (ac-apply_map) {
 ChannelMapInfo *map = ac-avr-ch_map_info;
 
-if (!av_sample_fmt_is_planar(ac-out_fmt)) {
+if (!ff_sample_fmt_is_planar(ac-out_fmt, ac-channels)) {
 av_log(ac-avr, AV_LOG_ERROR, cannot remap packed format during 
conversion\n);
 return AVERROR(EINVAL);
 }
 
 if (map-do_remap) {
-if (av_sample_fmt_is_planar(ac-in_fmt)) {
+if (ff_sample_fmt_is_planar(ac-in_fmt, ac-channels)) {
 conv_func_flat *convert = use_generic ? ac-conv_flat_generic :
 ac-conv_flat;
 
-- 
1.9.0

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] mxf: Support AAC

2014-08-17 Thread Luca Barbato
Update mxf_set_audio_pts to use the container-provided information.

The UL is marked as to be changed in the future, but the current
samples in the wild do use it.
---

Amended as suggested by siretart.

 libavformat/mxf.c| 1 +
 libavformat/mxfdec.c | 7 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavformat/mxf.c b/libavformat/mxf.c
index 8f09c61..19ee35f 100644
--- a/libavformat/mxf.c
+++ b/libavformat/mxf.c
@@ -48,6 +48,7 @@ const MXFCodecUL ff_mxf_codec_uls[] = {
 { { 
0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x31,0x11,0x01 
}, 14,   AV_CODEC_ID_H264 }, /* H.264/MPEG-4 AVC SPS/PPS in-band */
 { { 
0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x01,0x01,0x02,0x02,0x00 
}, 15,   AV_CODEC_ID_V210 }, /* V210 */
 /* SoundEssenceCompression */
+{ { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00 
}, 14,AV_CODEC_ID_AAC }, /* MPEG2 AAC ADTS (legacy) */
 { { 
0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00 
}, 13,  AV_CODEC_ID_PCM_S16LE }, /* Uncompressed */
 { { 
0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x7F,0x00,0x00,0x00 
}, 13,  AV_CODEC_ID_PCM_S16LE },
 { { 
0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x07,0x04,0x02,0x02,0x01,0x7E,0x00,0x00,0x00 
}, 13,  AV_CODEC_ID_PCM_S16BE }, /* From Omneon MXF file */
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 8f2453e..879e73e 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -972,6 +972,7 @@ static const MXFCodecUL mxf_sound_essence_container_uls[] = 
{
 { { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x40,0x01 
}, 14,   AV_CODEC_ID_MP2 }, /* MPEG-ES Frame wrapped, 0x40 ??? stream id */
 { { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x01,0x01 
}, 14, AV_CODEC_ID_PCM_S16LE }, /* D-10 Mapping 50Mbps PAL Extended Template */
 { { 
0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4F 
}, 14, AV_CODEC_ID_PCM_S16LE }, /* 0001GL00.MXF.A1.mxf_opatom.mxf */
+{ { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00 
}, 14,   AV_CODEC_ID_AAC }, /* MPEG2 AAC ADTS (legacy) */
 { { 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
},  0,  AV_CODEC_ID_NONE },
 };

@@ -1823,6 +1824,7 @@ static const MXFMetadataReadTableEntry 
mxf_metadata_read_table[] = {
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* AES3 */
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
MPEG2VideoDescriptor */
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5c,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
VANC/VBI - SMPTE 436M */
+{ { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5e,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
MPEG2AudioDescriptor */
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 
}, mxf_read_track, sizeof(MXFTrack), Track }, /* Static Track */
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 
}, mxf_read_track, sizeof(MXFTrack), Track }, /* Generic Track */
 { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 
}, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext },
@@ -2315,7 +2317,10 @@ static int mxf_set_audio_pts(MXFContext *mxf, 
AVCodecContext *codec,
  AVPacket *pkt)
 {
 MXFTrack *track = mxf-fc-streams[pkt-stream_index]-priv_data;
-int64_t bits_per_sample = av_get_bits_per_sample(codec-codec_id);
+int64_t bits_per_sample = codec-bits_per_coded_sample;
+
+if (!bits_per_sample)
+bits_per_sample = av_get_bits_per_sample(codec-codec_id);

 pkt-pts = track-sample_count;

--
1.9.0

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] lavr: Update the planar check in ff_audio_convert

2014-08-17 Thread Reinhard Tartler
On Sun, Aug 17, 2014 at 9:32 AM, Luca Barbato lu_z...@gentoo.org wrote:
 Leftover from fbc0b8659967ea54a8472b5f795270d38bb085dd.

 Signed-off-by: Luca Barbato lu_z...@gentoo.org
 ---
  libavresample/audio_convert.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

 diff --git a/libavresample/audio_convert.c b/libavresample/audio_convert.c
 index 11e..ef23912 100644
 --- a/libavresample/audio_convert.c
 +++ b/libavresample/audio_convert.c
 @@ -345,13 +345,13 @@ int ff_audio_convert(AudioConvert *ac, AudioData *out, 
 AudioData *in)
  if (ac-apply_map) {
  ChannelMapInfo *map = ac-avr-ch_map_info;

 -if (!av_sample_fmt_is_planar(ac-out_fmt)) {
 +if (!ff_sample_fmt_is_planar(ac-out_fmt, ac-channels)) {
  av_log(ac-avr, AV_LOG_ERROR, cannot remap packed format during 
 conversion\n);
  return AVERROR(EINVAL);
  }

  if (map-do_remap) {
 -if (av_sample_fmt_is_planar(ac-in_fmt)) {
 +if (ff_sample_fmt_is_planar(ac-in_fmt, ac-channels)) {
  conv_func_flat *convert = use_generic ? 
 ac-conv_flat_generic :
  ac-conv_flat;

LGTM after reading fbc0b8659967ea54a8472b5f795270d38bb085dd



-- 
regards,
Reinhard
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] mxf: Support AAC

2014-08-17 Thread Reinhard Tartler
As asked on IRC:

16:17 siretart new comment in your Support AAC LGTM
17:19 lu_zero siretart: can you ok the patch in the ml so I can
safely push w/out having retorts later?

done.

On Sun, Aug 17, 2014 at 10:15 AM, Luca Barbato lu_z...@gentoo.org wrote:
 Update mxf_set_audio_pts to use the container-provided information.

 The UL is marked as to be changed in the future, but the current
 samples in the wild do use it.
 ---

 Amended as suggested by siretart.

  libavformat/mxf.c| 1 +
  libavformat/mxfdec.c | 7 ++-
  2 files changed, 7 insertions(+), 1 deletion(-)

 diff --git a/libavformat/mxf.c b/libavformat/mxf.c
 index 8f09c61..19ee35f 100644
 --- a/libavformat/mxf.c
 +++ b/libavformat/mxf.c
 @@ -48,6 +48,7 @@ const MXFCodecUL ff_mxf_codec_uls[] = {
  { { 
 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x31,0x11,0x01
  }, 14,   AV_CODEC_ID_H264 }, /* H.264/MPEG-4 AVC SPS/PPS in-band */
  { { 
 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x01,0x01,0x02,0x02,0x00
  }, 15,   AV_CODEC_ID_V210 }, /* V210 */
  /* SoundEssenceCompression */
 +{ { 
 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00
  }, 14,AV_CODEC_ID_AAC }, /* MPEG2 AAC ADTS (legacy) */
  { { 
 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x00,0x00,0x00,0x00
  }, 13,  AV_CODEC_ID_PCM_S16LE }, /* Uncompressed */
  { { 
 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x02,0x02,0x01,0x7F,0x00,0x00,0x00
  }, 13,  AV_CODEC_ID_PCM_S16LE },
  { { 
 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x07,0x04,0x02,0x02,0x01,0x7E,0x00,0x00,0x00
  }, 13,  AV_CODEC_ID_PCM_S16BE }, /* From Omneon MXF file */
 diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
 index 8f2453e..879e73e 100644
 --- a/libavformat/mxfdec.c
 +++ b/libavformat/mxfdec.c
 @@ -972,6 +972,7 @@ static const MXFCodecUL mxf_sound_essence_container_uls[] 
 = {
  { { 
 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x40,0x01
  }, 14,   AV_CODEC_ID_MP2 }, /* MPEG-ES Frame wrapped, 0x40 ??? stream id 
 */
  { { 
 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x01,0x01
  }, 14, AV_CODEC_ID_PCM_S16LE }, /* D-10 Mapping 50Mbps PAL Extended Template 
 */
  { { 
 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4F
  }, 14, AV_CODEC_ID_PCM_S16LE }, /* 0001GL00.MXF.A1.mxf_opatom.mxf */
 +{ { 
 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00
  }, 14,   AV_CODEC_ID_AAC }, /* MPEG2 AAC ADTS (legacy) */
  { { 
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  },  0,  AV_CODEC_ID_NONE },
  };

 @@ -1823,6 +1824,7 @@ static const MXFMetadataReadTableEntry 
 mxf_metadata_read_table[] = {
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00
  }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* AES3 
 */
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00
  }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
 MPEG2VideoDescriptor */
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5c,0x00
  }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
 VANC/VBI - SMPTE 436M */
 +{ { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5e,0x00
  }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
 MPEG2AudioDescriptor */
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00
  }, mxf_read_track, sizeof(MXFTrack), Track }, /* Static Track */
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00
  }, mxf_read_track, sizeof(MXFTrack), Track }, /* Generic Track */
  { { 
 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00
  }, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext },
 @@ -2315,7 +2317,10 @@ static int mxf_set_audio_pts(MXFContext *mxf, 
 AVCodecContext *codec,
   AVPacket *pkt)
  {
  MXFTrack *track = mxf-fc-streams[pkt-stream_index]-priv_data;
 -int64_t bits_per_sample = av_get_bits_per_sample(codec-codec_id);
 +int64_t bits_per_sample = codec-bits_per_coded_sample;
 +
 +if (!bits_per_sample)
 +bits_per_sample = av_get_bits_per_sample(codec-codec_id);

  pkt-pts = track-sample_count;

 --
 1.9.0

 ___
 libav-devel mailing list
 libav-devel@libav.org
 https://lists.libav.org/mailman/listinfo/libav-devel



-- 
regards,
Reinhard
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] doc: Add more information in the README

2014-08-17 Thread Luca Barbato
On 13/08/14 19:21, Anton Khirnov wrote:
 
 On Tue, 12 Aug 2014 21:26:55 +0200, Luca Barbato lu_z...@gentoo.org wrote:
 And convert it to Markdown.
 ---
  README| 13 +
  README.md | 40 
  2 files changed, 41 insertions(+), 12 deletions(-)
  mode change 100644 = 12 README
  create mode 100644 README.md

 diff --git a/README b/README
 deleted file mode 100644
 index afef671..000
 --- a/README
 +++ /dev/null
 @@ -1,12 +0,0 @@
 -Libav README
 -
 -
 -1) Documentation
 -
 -
 -* Read the documentation in the doc/ directory.
 -
 -2) Licensing
 -
 -
 -* See the LICENSE file.
 diff --git a/README b/README
 new file mode 12
 index 000..42061c0
 --- /dev/null
 +++ b/README
 @@ -0,0 +1 @@
 +README.md
 \ No newline at end of file
 diff --git a/README.md b/README.md
 new file mode 100644
 index 000..42941c8
 --- /dev/null
 +++ b/README.md
 @@ -0,0 +1,40 @@
 +Libav
 +=
 +
 +Libav is a collection of tools and libraries to process multimedia content
 +such as Audio, Video, Subtitles and Metadata.
 
 I'd say the libraries are MUCH more important than the tools, so they should
 come first both here and below.
 
 Also, useless capitalization. And metadata is hardly the main focus, so it
 should be something like 'and related metadata' if mentioned at all.
 

Updated as requested, I'd push it in few hours.

lu


___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH 07/17] dxva2: Undefine _WIN32_WINNT before defining it

2014-08-17 Thread James Almer
On 15/08/14 5:13 PM, Diego Biurrun wrote:
 This avoids a number of redefinition warnings.
 ---
  libavcodec/dxva2_internal.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
 index f35a076..d50c0ff 100644
 --- a/libavcodec/dxva2_internal.h
 +++ b/libavcodec/dxva2_internal.h
 @@ -23,6 +23,7 @@
  #ifndef AVCODEC_DXVA_INTERNAL_H
  #define AVCODEC_DXVA_INTERNAL_H
  
 +#undef _WIN32_WINNT
  #define _WIN32_WINNT 0x0600
  #define COBJMACROS

_WIN32_WINNT may already be defined with a value higher than 0x0600 (For 
example when 
targeting Win7 or Win8), and this would be forcing it to a lower value.
In practice and as far as libavcodec's DXVA2 support goes there's probably no 
difference, 
but the more correct thing to do would be check if it's already defined, and 
then only 
redefine it if it's  0x0600.

For that matter, dxva2_internal.h includes dxva2.h, a header that also tries to 
define 
_WIN32_WINNT. It would be best to have all this only in dxva2.h to reduce code 
duplication.
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] doc: Update Changelog

2014-08-17 Thread Luca Barbato
---
 Changelog | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Changelog b/Changelog
index ea9d721..a737254 100644
--- a/Changelog
+++ b/Changelog
@@ -2,6 +2,8 @@ Entries are sorted chronologically from oldest to youngest 
within each release,
 releases are sorted from youngest to oldest.
 
 version next:
+- extended support for MXF files (AAC, badly-closed files)
+- libavresample simplified API
 - libx265 encoder
 - shuffleplanes filter
 - replaygain data export
-- 
1.9.0

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] ogg: Provide aliases for Speex, Opus and audio-only ogg

2014-08-17 Thread Luca Barbato
---
 configure|  5 +
 libavformat/Makefile |  4 ++--
 libavformat/allformats.c |  3 +++
 libavformat/oggenc.c | 53 +++-
 4 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index c073f30..a35ccb6 100755
--- a/configure
+++ b/configure
@@ -1570,6 +1570,7 @@ CONFIG_EXTRA=
 mpegvideo
 mpegvideoenc
 nettle
+oggenc
 pixblockdsp
 qpeldsp
 rangecoder
@@ -2047,7 +2048,10 @@ mpegtsraw_demuxer_select=mpegts_demuxer
 mxf_d10_muxer_select=mxf_muxer
 nut_muxer_select=riffenc
 nuv_demuxer_select=riffdec
+oga_muxer_select=oggenc
 ogg_demuxer_select=golomb
+ogg_muxer_select=oggenc
+opus_muxer_select=oggenc
 psp_muxer_select=mov_muxer
 rtp_demuxer_select=sdp_demuxer
 rtpdec_select=asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer
@@ -2058,6 +2062,7 @@ sap_muxer_select=rtp_muxer rtp_protocol rtpenc_chain
 sdp_demuxer_select=rtpdec
 smoothstreaming_muxer_select=ismv_muxer
 spdif_muxer_select=aac_parser
+spx_muxer_select=oggenc
 tak_demuxer_select=tak_parser
 tg2_muxer_select=mov_muxer
 tgp_muxer_select=mov_muxer
diff --git a/libavformat/Makefile b/libavformat/Makefile
index a048157..88ebee2 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -23,6 +23,8 @@ OBJS = allformats.o \
url.o\
utils.o  \
 
+OBJS-$(CONFIG_OGGENC)+= oggenc.o\
+vorbiscomment.o
 OBJS-$(CONFIG_NETWORK)   += network.o
 OBJS-$(CONFIG_RIFFDEC)   += riffdec.o
 OBJS-$(CONFIG_RIFFENC)   += riffenc.o
@@ -225,8 +227,6 @@ OBJS-$(CONFIG_OGG_DEMUXER)   += oggdec.o
 \
 replaygain.o \
 vorbiscomment.o  \
 flac_picture.o
-OBJS-$(CONFIG_OGG_MUXER) += oggenc.o \
-vorbiscomment.o
 OBJS-$(CONFIG_OMA_DEMUXER)   += omadec.o pcm.o oma.o
 OBJS-$(CONFIG_OMA_MUXER) += omaenc.o rawenc.o oma.o id3v2enc.o
 OBJS-$(CONFIG_PAF_DEMUXER)   += paf.o
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index 984bb52..bef155f 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -174,8 +174,10 @@ void av_register_all(void)
 REGISTER_MUXER   (NULL, null);
 REGISTER_MUXDEMUX(NUT,  nut);
 REGISTER_DEMUXER (NUV,  nuv);
+REGISTER_MUXER   (OGA,  oga);
 REGISTER_MUXDEMUX(OGG,  ogg);
 REGISTER_MUXDEMUX(OMA,  oma);
+REGISTER_MUXER   (OPUS, opus);
 REGISTER_DEMUXER (PAF,  paf);
 REGISTER_MUXDEMUX(PCM_ALAW, pcm_alaw);
 REGISTER_MUXDEMUX(PCM_MULAW,pcm_mulaw);
@@ -226,6 +228,7 @@ void av_register_all(void)
 REGISTER_DEMUXER (SMUSH,smush);
 REGISTER_DEMUXER (SOL,  sol);
 REGISTER_MUXDEMUX(SOX,  sox);
+REGISTER_MUXER   (SPX,  spx);
 REGISTER_MUXDEMUX(SPDIF,spdif);
 REGISTER_MUXDEMUX(SRT,  srt);
 REGISTER_DEMUXER (STR,  str);
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 19c7759..8ef6765 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -627,11 +627,12 @@ static int ogg_write_trailer(AVFormatContext *s)
 return 0;
 }
 
+#if CONFIG_OGG_MUXER
 AVOutputFormat ff_ogg_muxer = {
 .name  = ogg,
 .long_name = NULL_IF_CONFIG_SMALL(Ogg),
 .mime_type = application/ogg,
-.extensions= ogg,ogv,spx,opus,
+.extensions= ogg,ogv,
 .priv_data_size= sizeof(OGGContext),
 .audio_codec   = CONFIG_LIBVORBIS_ENCODER ?
  AV_CODEC_ID_VORBIS : AV_CODEC_ID_FLAC,
@@ -642,3 +643,53 @@ AVOutputFormat ff_ogg_muxer = {
 .flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
 .priv_class= ogg_muxer_class,
 };
+#endif
+
+#if CONFIG_OGA_MUXER
+AVOutputFormat ff_oga_muxer = {
+.name  = oga,
+.long_name = NULL_IF_CONFIG_SMALL(Ogg Audio),
+.mime_type = audio/ogg,
+.extensions= oga,
+.priv_data_size= sizeof(OGGContext),
+.audio_codec   = CONFIG_LIBVORBIS_ENCODER ?
+ AV_CODEC_ID_VORBIS : AV_CODEC_ID_FLAC,
+.write_header  = ogg_write_header,
+.write_packet  = ogg_write_packet,
+.write_trailer = ogg_write_trailer,
+.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
+.priv_class= ogg_muxer_class,
+};
+#endif
+
+#if CONFIG_SPX_MUXER
+AVOutputFormat ff_spx_muxer = {
+.name  = spx,
+.long_name = NULL_IF_CONFIG_SMALL(Ogg Speex),
+.mime_type = 

[libav-devel] [PATCH] doc/developer: Change wrong term to avoid confusion

2014-08-17 Thread Gabriel Dume
---
 doc/developer.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/developer.texi b/doc/developer.texi
index 1ffdff1..00e2b60 100644
--- a/doc/developer.texi
+++ b/doc/developer.texi
@@ -68,7 +68,7 @@ case AVLINK_STARTINIT:
 @end example
 
 @item
-Braces in function declarations are written on the new line:
+Braces in function definitions are written on the new line:
 @example
 const char *avfilter_configuration(void)
 @{
-- 
1.8.5.5

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] doc/developer: Change wrong term to avoid confusion

2014-08-17 Thread Luca Barbato
the tag: in a commit message is a single word, please do not use /
with it.

doc: is a good tag for all the documentation changes.

On 17/08/14 22:19, Gabriel Dume wrote:
 ---
  doc/developer.texi | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/doc/developer.texi b/doc/developer.texi
 index 1ffdff1..00e2b60 100644
 --- a/doc/developer.texi
 +++ b/doc/developer.texi
 @@ -68,7 +68,7 @@ case AVLINK_STARTINIT:
  @end example
  
  @item
 -Braces in function declarations are written on the new line:
 +Braces in function definitions are written on the new line:
  @example
  const char *avfilter_configuration(void)
  @{
 

Sounds correct.
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH] doc/developer: Change wrong term to avoid confusion

2014-08-17 Thread Luca Barbato
On 17/08/14 22:19, Gabriel Dume wrote:
 ---
  doc/developer.texi | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/doc/developer.texi b/doc/developer.texi
 index 1ffdff1..00e2b60 100644
 --- a/doc/developer.texi
 +++ b/doc/developer.texi
 @@ -68,7 +68,7 @@ case AVLINK_STARTINIT:
  @end example
  
  @item
 -Braces in function declarations are written on the new line:
 +Braces in function definitions are written on the new line:
  @example
  const char *avfilter_configuration(void)
  @{
 

Queued btw.
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH] tiff: return proper error for missing LZMA compression.

2014-08-17 Thread Diego Elio Pettenò
The LZMA support was added to tiff 4.0.0. Whle not very common, it's nice
to tell the user why the file is not working.

Signed-off-by: Diego Elio Pettenò flamee...@flameeyes.eu
---
 libavcodec/tiff.c | 3 +++
 libavcodec/tiff.h | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index ca5ec75..3b2fc7d 100644
--- a/libavcodec/tiff.c
+++ b/libavcodec/tiff.c
@@ -408,6 +408,9 @@ static int tiff_decode_tag(TiffContext *s)
 case TIFF_NEWJPEG:
 avpriv_report_missing_feature(s-avctx, JPEG compression);
 return AVERROR_PATCHWELCOME;
+case TIFF_LZMA:
+avpriv_report_missing_feature(s-avctx, LZMA compression);
+return AVERROR_PATCHWELCOME;
 default:
 av_log(s-avctx, AV_LOG_ERROR, Unknown compression method %i\n,
s-compr);
diff --git a/libavcodec/tiff.h b/libavcodec/tiff.h
index 8a3f7f7..c42fa41 100644
--- a/libavcodec/tiff.h
+++ b/libavcodec/tiff.h
@@ -71,7 +71,8 @@ enum TiffCompr {
 TIFF_NEWJPEG,
 TIFF_ADOBE_DEFLATE,
 TIFF_PACKBITS = 0x8005,
-TIFF_DEFLATE  = 0x80B2
+TIFF_DEFLATE  = 0x80B2,
+TIFF_LZMA = 0x886d
 };
 
 enum TiffTypes {
-- 
1.8.5.5

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Re: [libav-devel] [PATCH] tiff: return proper error for missing LZMA compression.

2014-08-17 Thread Luca Barbato
On 17/08/14 23:53, Diego Elio Pettenò wrote:
 The LZMA support was added to tiff 4.0.0. Whle not very common, it's nice
 to tell the user why the file is not working.
 
 Signed-off-by: Diego Elio Pettenò flamee...@flameeyes.eu
 ---
  libavcodec/tiff.c | 3 +++
  libavcodec/tiff.h | 3 ++-
  2 files changed, 5 insertions(+), 1 deletion(-)
 

Ok for me.

Is it easy to add or overly complex?

lu


___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Re: [libav-devel] [PATCH] tiff: return proper error for missing LZMA compression.

2014-08-17 Thread Kostya Shishkov
On Sun, Aug 17, 2014 at 10:53:27PM +0100, Diego Elio Pettenò wrote:
 The LZMA support was added to tiff 4.0.0. Whle not very common, it's nice
  ^ whIle
 to tell the user why the file is not working.

Also what's the versioning? IIRC the last official standard was TIFF 6.0 

 Signed-off-by: Diego Elio Pettenò flamee...@flameeyes.eu
 ---
  libavcodec/tiff.c | 3 +++
  libavcodec/tiff.h | 3 ++-
  2 files changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
 index ca5ec75..3b2fc7d 100644
 --- a/libavcodec/tiff.c
 +++ b/libavcodec/tiff.c
 @@ -408,6 +408,9 @@ static int tiff_decode_tag(TiffContext *s)
  case TIFF_NEWJPEG:
  avpriv_report_missing_feature(s-avctx, JPEG compression);
  return AVERROR_PATCHWELCOME;
 +case TIFF_LZMA:
 +avpriv_report_missing_feature(s-avctx, LZMA compression);
 +return AVERROR_PATCHWELCOME;
  default:
  av_log(s-avctx, AV_LOG_ERROR, Unknown compression method %i\n,
 s-compr);
 diff --git a/libavcodec/tiff.h b/libavcodec/tiff.h
 index 8a3f7f7..c42fa41 100644
 --- a/libavcodec/tiff.h
 +++ b/libavcodec/tiff.h
 @@ -71,7 +71,8 @@ enum TiffCompr {
  TIFF_NEWJPEG,
  TIFF_ADOBE_DEFLATE,
  TIFF_PACKBITS = 0x8005,
 -TIFF_DEFLATE  = 0x80B2
 +TIFF_DEFLATE  = 0x80B2,
 +TIFF_LZMA = 0x886d
  };
  
  enum TiffTypes {
 -- 

otherwise probably OK
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel