[FFmpeg-cvslog] checkasm: add VP9 loopfilter tests.

2015-09-20 Thread Ronald S. Bultje
ffmpeg | branch: master | Ronald S. Bultje  | Thu Sep 17 
11:58:10 2015 -0400| [b074367405ca181d0dfa4a0bdd1782450088e242] | committer: 
Ronald S. Bultje

checkasm: add VP9 loopfilter tests.

The randomize_buffer() implementation assures that "most of the time",
we'll do a good mix of wide16/wide8/hev/regular/no filters for complete
code coverage. However, this is not mathematically assured because that
would make the code either much more complex, or much less random.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b074367405ca181d0dfa4a0bdd1782450088e242
---

 tests/checkasm/vp9dsp.c |  147 +++
 1 file changed, 147 insertions(+)

diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
index bd7b4e7..f64b48a 100644
--- a/tests/checkasm/vp9dsp.c
+++ b/tests/checkasm/vp9dsp.c
@@ -94,6 +94,152 @@ static void check_ipred(void)
 
 #undef randomize_buffers
 
+#define setpx(a,b,c) \
+do { \
+if (SIZEOF_PIXEL == 1) { \
+buf0[(a) + (b) * jstride] = c; \
+} else { \
+((uint16_t *)buf0)[(a) + (b) * jstride] = c; \
+} \
+} while (0)
+#define setdx(a,b,c,d) setpx(a,b,c-(d)+(rnd()%((d)*2+1)))
+#define setsx(a,b,c,d) setdx(a,b,c,(d) << (bit_depth - 8))
+#define randomize_buffers(bidx, lineoff, str) \
+do { \
+uint32_t mask = (1 << bit_depth) - 1; \
+int off = dir ? lineoff : lineoff * 16; \
+int istride = dir ? 1 : 16; \
+int jstride = dir ? str : 1; \
+int i, j; \
+for (i = 0; i < 2; i++) /* flat16 */ { \
+int idx = off + i * istride, p0, q0; \
+setpx(idx,  0, q0 = rnd() & mask); \
+setsx(idx, -1, p0 = q0, E[bidx] >> 2); \
+for (j = 1; j < 8; j++) { \
+setsx(idx, -1 - j, p0, F[bidx]); \
+setsx(idx, j, q0, F[bidx]); \
+} \
+} \
+for (i = 2; i < 4; i++) /* flat8 */ { \
+int idx = off + i * istride, p0, q0; \
+setpx(idx,  0, q0 = rnd() & mask); \
+setsx(idx, -1, p0 = q0, E[bidx] >> 2); \
+for (j = 1; j < 4; j++) { \
+setsx(idx, -1 - j, p0, F[bidx]); \
+setsx(idx, j, q0, F[bidx]); \
+} \
+for (j = 4; j < 8; j++) { \
+setpx(idx, -1 - j, rnd() & mask); \
+setpx(idx, j, rnd() & mask); \
+} \
+} \
+for (i = 4; i < 6; i++) /* regular */ { \
+int idx = off + i * istride, p2, p1, p0, q0, q1, q2; \
+setpx(idx,  0, q0 = rnd() & mask); \
+setsx(idx,  1, q1 = q0, I[bidx]); \
+setsx(idx,  2, q2 = q1, I[bidx]); \
+setsx(idx,  3, q2,  I[bidx]); \
+setsx(idx, -1, p0 = q0, E[bidx] >> 2); \
+setsx(idx, -2, p1 = p0, I[bidx]); \
+setsx(idx, -3, p2 = p1, I[bidx]); \
+setsx(idx, -4, p2,  I[bidx]); \
+for (j = 4; j < 8; j++) { \
+setpx(idx, -1 - j, rnd() & mask); \
+setpx(idx, j, rnd() & mask); \
+} \
+} \
+for (i = 6; i < 8; i++) /* off */ { \
+int idx = off + i * istride; \
+for (j = 0; j < 8; j++) { \
+setpx(idx, -1 - j, rnd() & mask); \
+setpx(idx, j, rnd() & mask); \
+} \
+} \
+} while (0)
+
+static void check_loopfilter()
+{
+LOCAL_ALIGNED_32(uint8_t, base0, [32 + 16 * 16 * 2]);
+LOCAL_ALIGNED_32(uint8_t, base1, [32 + 16 * 16 * 2]);
+VP9DSPContext dsp;
+int dir, wd, wd2, bit_depth;
+static const char *const dir_name[2] = { "h", "v" };
+int E[2] = { 20, 28 }, I[2] = { 10, 16 }, H[2] = { 7, 11 }, F[2] = { 1, 1 
};
+declare_func(void, uint8_t *dst, ptrdiff_t stride, int E, int I, int H);
+
+for (bit_depth = 8; bit_depth <= 12; bit_depth += 2) {
+ff_vp9dsp_init(&dsp, bit_depth, 0);
+
+for (dir = 0; dir < 2; dir++) {
+uint8_t *buf0, *buf1;
+int midoff = (dir ? 8 * 8 : 8) * SIZEOF_PIXEL;
+int midoff_aligned = (dir ? 8 * 8 : 16) * SIZEOF_PIXEL;
+
+buf0 = base0 + midoff_aligned;
+buf1 = base1 + midoff_aligned;
+
+for (wd = 0; wd < 3; wd++) {
+// 4/8/16wd_8px
+if (check_func(dsp.loop_filter_8[wd][dir],
+   "vp9_loop_filter_%s_%d_8_%dbpp",
+   dir_name[dir], 4 << wd, bit_depth)) {
+randomize_buffers(0, 0, 8);
+memcpy(buf1 - midoff, buf0 - midoff,
+   16 * 8 * SIZEOF_PIXEL);
+call_ref(buf0, 16 * SIZEOF_PIXEL >> dir, E[0], I[0], H[0]);
+call_new(buf1, 16 * SIZEOF_PIXEL >> dir, E[0], I[0], H[0]);
+if (memcmp(buf0 - midoff, buf1 - midoff, 16 * 8 * 
SIZEOF_PIXEL))
+fail();
+bench_new(buf

[FFmpeg-cvslog] tests/checkasm/vp9dsp: Add () to protect macro arguments

2015-09-20 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Sun 
Sep 20 11:37:57 2015 +0200| [bddcf758d3a68ac0bcc3bc4fc4aa7156e05245d4] | 
committer: Michael Niedermayer

tests/checkasm/vp9dsp: Add () to protect macro arguments

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bddcf758d3a68ac0bcc3bc4fc4aa7156e05245d4
---

 tests/checkasm/vp9dsp.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
index f64b48a..146a71f 100644
--- a/tests/checkasm/vp9dsp.c
+++ b/tests/checkasm/vp9dsp.c
@@ -102,7 +102,7 @@ static void check_ipred(void)
 ((uint16_t *)buf0)[(a) + (b) * jstride] = c; \
 } \
 } while (0)
-#define setdx(a,b,c,d) setpx(a,b,c-(d)+(rnd()%((d)*2+1)))
+#define setdx(a,b,c,d) setpx(a,b,(c)-(d)+(rnd()%((d)*2+1)))
 #define setsx(a,b,c,d) setdx(a,b,c,(d) << (bit_depth - 8))
 #define randomize_buffers(bidx, lineoff, str) \
 do { \
@@ -220,7 +220,7 @@ static void check_loopfilter()
 randomize_buffers(0, 0, 16);
 randomize_buffers(1, 8, 16);
 memcpy(buf1 - midoff, buf0 - midoff, 16 * 16 * 
SIZEOF_PIXEL);
-#define M(a) ((a[1] << 8) | a[0])
+#define M(a) (((a)[1] << 8) | (a)[0])
 call_ref(buf0, 16 * SIZEOF_PIXEL, M(E), M(I), M(H));
 call_new(buf1, 16 * SIZEOF_PIXEL, M(E), M(I), M(H));
 if (memcmp(buf0 - midoff, buf1 - midoff, 16 * 16 * 
SIZEOF_PIXEL))

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/internal: Use do {} while() for ff_tlog()

2015-09-20 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Sun 
Sep 20 12:55:10 2015 +0200| [b947ac9096e3eedd167a37c64509f0eba7a871e9] | 
committer: Michael Niedermayer

avcodec/internal: Use do {} while() for ff_tlog()

Avoids problems when used without braces

Found-by: Clément Bœsch 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b947ac9096e3eedd167a37c64509f0eba7a871e9
---

 libavcodec/internal.h |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index fbee411..52b8917 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -57,7 +57,7 @@
 #ifdef TRACE
 #   define ff_tlog(ctx, ...) av_log(ctx, AV_LOG_TRACE, __VA_ARGS__)
 #else
-#   define ff_tlog(ctx, ...) while(0) {}
+#   define ff_tlog(ctx, ...) do {} while(0)
 #endif
 
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] x86/vp9mc: fix string concatenation of fullpel function names

2015-09-20 Thread James Almer
ffmpeg | branch: master | James Almer  | Sat Sep 19 20:27:03 
2015 -0300| [4bb6cb4c7db41e04057a15d7629d0ce1c4556d85] | committer: James Almer

x86/vp9mc: fix string concatenation of fullpel function names

Fixes compilation with NASM

Reviewed-by: Ronald S. Bultje 
Signed-off-by: James Almer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4bb6cb4c7db41e04057a15d7629d0ce1c4556d85
---

 libavcodec/x86/vp9mc.asm |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/x86/vp9mc.asm b/libavcodec/x86/vp9mc.asm
index d828312..9152ba5 100644
--- a/libavcodec/x86/vp9mc.asm
+++ b/libavcodec/x86/vp9mc.asm
@@ -583,11 +583,11 @@ filter_vx2_fn avg
 %endif
 
 %if %2 <= mmsize
-cglobal vp9_%1%2%%szsuf, 5, 7, 4, dst, dstride, src, sstride, h, dstride3, 
sstride3
+cglobal vp9_%1%2 %+ %%szsuf, 5, 7, 4, dst, dstride, src, sstride, h, dstride3, 
sstride3
 lea  sstride3q, [sstrideq*3]
 lea  dstride3q, [dstrideq*3]
 %else
-cglobal vp9_%1%2%%szsuf, 5, 5, %8, dst, dstride, src, sstride, h
+cglobal vp9_%1%2 %+ %%szsuf, 5, 5, %8, dst, dstride, src, sstride, h
 %endif
 .loop:
 %%srcfn m0, [srcq]

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] lavfi/buffersink: loop over ff_request_frame().

2015-09-20 Thread Nicolas George
ffmpeg | branch: master | Nicolas George  | Wed Aug 26 
00:15:22 2015 +0200| [807d4b635567e51108ea3a6a774336321c3250e5] | committer: 
Nicolas George

lavfi/buffersink: loop over ff_request_frame().

Do not assume that ff_request_frame() returning success
implies a frame has arrived in the FIFO.
Instead, just loop until a frame is in the FIFO.
It does not change anything since the same loop is present
in ff_request_frame(), confirmed by an assertion.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=807d4b635567e51108ea3a6a774336321c3250e5
---

 libavfilter/buffersink.c |5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index e693161..3206bd9 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -133,7 +133,7 @@ int attribute_align_arg 
av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFr
 AVFrame *cur_frame;
 
 /* no picref available, fetch it from the filterchain */
-if (!av_fifo_size(buf->fifo)) {
+while (!av_fifo_size(buf->fifo)) {
 if (inlink->closed)
 return AVERROR_EOF;
 if (flags & AV_BUFFERSINK_FLAG_NO_REQUEST)
@@ -142,9 +142,6 @@ int attribute_align_arg 
av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFr
 return ret;
 }
 
-if (!av_fifo_size(buf->fifo))
-return AVERROR(EINVAL);
-
 if (flags & AV_BUFFERSINK_FLAG_PEEK) {
 cur_frame = *((AVFrame **)av_fifo_peek2(buf->fifo, 0));
 if ((ret = av_frame_ref(frame, cur_frame)) < 0)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] lavfi: remove FF_LINK_FLAG_REQUEST_LOOP.

2015-09-20 Thread Nicolas George
ffmpeg | branch: master | Nicolas George  | Wed Aug 26 
12:11:26 2015 +0200| [44f660e7e75b856eafa5f7e7cc6e633de5d01b5d] | committer: 
Nicolas George

lavfi: remove FF_LINK_FLAG_REQUEST_LOOP.

It has no longer any effect.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=44f660e7e75b856eafa5f7e7cc6e633de5d01b5d
---

 libavfilter/af_afade.c |1 -
 libavfilter/af_asetnsamples.c  |1 -
 libavfilter/af_atempo.c|2 --
 libavfilter/af_compand.c   |1 -
 libavfilter/af_dynaudnorm.c|7 ---
 libavfilter/af_silenceremove.c |8 
 libavfilter/avf_showfreqs.c|1 -
 libavfilter/avfilter.c |1 -
 libavfilter/f_ebur128.c|4 
 libavfilter/f_interleave.c |2 --
 libavfilter/f_reverse.c|8 
 libavfilter/framesync.c|1 -
 libavfilter/internal.h |   14 --
 libavfilter/trim.c |8 
 libavfilter/vf_atadenoise.c|7 ---
 libavfilter/vf_blend.c |5 ++---
 libavfilter/vf_decimate.c  |1 -
 libavfilter/vf_detelecine.c|1 -
 libavfilter/vf_fieldmatch.c|1 -
 libavfilter/vf_framerate.c |1 -
 libavfilter/vf_framestep.c |1 -
 libavfilter/vf_idet.c  |7 ---
 libavfilter/vf_interlace.c |1 -
 libavfilter/vf_palettegen.c|1 -
 libavfilter/vf_pullup.c|7 ---
 libavfilter/vf_random.c|7 ---
 libavfilter/vf_stereo3d.c  |1 -
 libavfilter/vf_telecine.c  |1 -
 libavfilter/vf_tile.c  |2 --
 libavfilter/vf_tinterlace.c|1 -
 libavfilter/vf_w3fdif.c|1 -
 31 files changed, 2 insertions(+), 103 deletions(-)

diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index 7168eba..2f18222 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -611,7 +611,6 @@ static int acrossfade_config_output(AVFilterLink *outlink)
 outlink->time_base   = ctx->inputs[0]->time_base;
 outlink->channel_layout = ctx->inputs[0]->channel_layout;
 outlink->channels = ctx->inputs[0]->channels;
-outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
 
 switch (outlink->format) {
 case AV_SAMPLE_FMT_DBL:  s->crossfade_samples = crossfade_samples_dbl;  
break;
diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c
index 02668e4..b5aa193 100644
--- a/libavfilter/af_asetnsamples.c
+++ b/libavfilter/af_asetnsamples.c
@@ -77,7 +77,6 @@ static int config_props_output(AVFilterLink *outlink)
 asns->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, 
asns->nb_out_samples);
 if (!asns->fifo)
 return AVERROR(ENOMEM);
-outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
 
 return 0;
 }
diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
index 49d49ee..7b3d57c 100644
--- a/libavfilter/af_atempo.c
+++ b/libavfilter/af_atempo.c
@@ -1046,8 +1046,6 @@ static int config_props(AVFilterLink *inlink)
 int sample_rate = (int)inlink->sample_rate;
 int channels = av_get_channel_layout_nb_channels(inlink->channel_layout);
 
-ctx->outputs[0]->flags |= FF_LINK_FLAG_REQUEST_LOOP;
-
 return yae_reset(atempo, format, sample_rate, channels);
 }
 
diff --git a/libavfilter/af_compand.c b/libavfilter/af_compand.c
index 6724121..3848d67 100644
--- a/libavfilter/af_compand.c
+++ b/libavfilter/af_compand.c
@@ -531,7 +531,6 @@ static int config_output(AVFilterLink *outlink)
 if (err)
 return err;
 
-outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
 s->compand = compand_delay;
 return 0;
 }
diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c
index e585648..8f0c2d0 100644
--- a/libavfilter/af_dynaudnorm.c
+++ b/libavfilter/af_dynaudnorm.c
@@ -305,12 +305,6 @@ static int config_input(AVFilterLink *inlink)
 return 0;
 }
 
-static int config_output(AVFilterLink *outlink)
-{
-outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
-return 0;
-}
-
 static inline double fade(double prev, double next, int pos,
   double *fade_factors[2])
 {
@@ -721,7 +715,6 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = 
{
 {
 .name  = "default",
 .type  = AVMEDIA_TYPE_AUDIO,
-.config_props  = config_output,
 .request_frame = request_frame,
 },
 { NULL }
diff --git a/libavfilter/af_silenceremove.c b/libavfilter/af_silenceremove.c
index 00a3959..3389d64 100644
--- a/libavfilter/af_silenceremove.c
+++ b/libavfilter/af_silenceremove.c
@@ -153,13 +153,6 @@ static int config_input(AVFilterLink *inlink)
 return 0;
 }
 
-static int config_output(AVFilterLink *outlink)
-{
-outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
-
-return 0;
-}
-
 static double compute_rms(SilenceRemoveContext *s, double sample)
 {
 double new_sum;
@@ -463,7 +456,6 @@ static const AVFilterPad silenceremove_outputs[] = {
 {
 .name  = "default",
 .type   

[FFmpeg-cvslog] lavfi/vf_idet: remove the loop in request_frame().

2015-09-20 Thread Nicolas George
ffmpeg | branch: master | Nicolas George  | Tue Aug 25 
20:31:50 2015 +0200| [7635242ae591ec8c9e992f71a2db05b07eeaae3f] | committer: 
Nicolas George

lavfi/vf_idet: remove the loop in request_frame().

It is not necessary due to the use of FF_LINK_FLAG_REQUEST_LOOP.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7635242ae591ec8c9e992f71a2db05b07eeaae3f
---

 libavfilter/vf_idet.c |9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index 711ba6e..d460330 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -314,7 +314,7 @@ static int request_frame(AVFilterLink *link)
 AVFilterContext *ctx = link->src;
 IDETContext *idet = ctx->priv;
 
-do {
+// TODO reindent
 int ret;
 
 if (idet->eof)
@@ -328,14 +328,11 @@ static int request_frame(AVFilterLink *link)
 if (!next)
 return AVERROR(ENOMEM);
 
-filter_frame(link->src->inputs[0], next);
+ret = filter_frame(link->src->inputs[0], next);
 idet->eof = 1;
-} else if (ret < 0) {
-return ret;
 }
-} while (link->frame_requested);
 
-return 0;
+return ret;
 }
 
 static av_cold void uninit(AVFilterContext *ctx)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] lavfi/vf_idet: reindent after last commit.

2015-09-20 Thread Nicolas George
ffmpeg | branch: master | Nicolas George  | Wed Aug 26 
12:21:27 2015 +0200| [598f8a7afae6d0b8a49f85ec2de69acdc5e7ac6a] | committer: 
Nicolas George

lavfi/vf_idet: reindent after last commit.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=598f8a7afae6d0b8a49f85ec2de69acdc5e7ac6a
---

 libavfilter/vf_idet.c |   24 +++-
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index d460330..21011cf 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -313,24 +313,22 @@ static int request_frame(AVFilterLink *link)
 {
 AVFilterContext *ctx = link->src;
 IDETContext *idet = ctx->priv;
+int ret;
 
-// TODO reindent
-int ret;
+if (idet->eof)
+return AVERROR_EOF;
 
-if (idet->eof)
-return AVERROR_EOF;
+ret = ff_request_frame(link->src->inputs[0]);
 
-ret = ff_request_frame(link->src->inputs[0]);
+if (ret == AVERROR_EOF && idet->cur && 
!idet->analyze_interlaced_flag_done) {
+AVFrame *next = av_frame_clone(idet->next);
 
-if (ret == AVERROR_EOF && idet->cur && 
!idet->analyze_interlaced_flag_done) {
-AVFrame *next = av_frame_clone(idet->next);
+if (!next)
+return AVERROR(ENOMEM);
 
-if (!next)
-return AVERROR(ENOMEM);
-
-ret = filter_frame(link->src->inputs[0], next);
-idet->eof = 1;
-}
+ret = filter_frame(link->src->inputs[0], next);
+idet->eof = 1;
+}
 
 return ret;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] lavfi: drop the requirement that request_frame returns a frame.

2015-09-20 Thread Nicolas George
ffmpeg | branch: master | Nicolas George  | Tue Aug 25 
20:33:48 2015 +0200| [2a351f6c5521c199b4285e4e42f2321e312170bd] | committer: 
Nicolas George

lavfi: drop the requirement that request_frame returns a frame.

It requires a loop in filters or the framework,
that makes the scheduling less efficient and more complex.
This is purely an internal change since the loop is now
present in buffersink.
Note that no filter except buffersink did rely on the requirement.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2a351f6c5521c199b4285e4e42f2321e312170bd
---

 doc/filter_design.txt  |   19 +--
 libavfilter/avfilter.c |   10 +-
 libavfilter/avfilter.h |6 --
 libavfilter/internal.h |   13 -
 4 files changed, 18 insertions(+), 30 deletions(-)

diff --git a/doc/filter_design.txt b/doc/filter_design.txt
index d784d84..e8a7c53 100644
--- a/doc/filter_design.txt
+++ b/doc/filter_design.txt
@@ -232,7 +232,8 @@ Frame scheduling
 one of its inputs, repeatedly until at least one frame has been pushed.
 
 Return values:
-if request_frame could produce a frame, it should return 0;
+if request_frame could produce a frame, or at least make progress
+towards producing a frame, it should return 0;
 if it could not for temporary reasons, it should return AVERROR(EAGAIN);
 if it could not because there are no more frames, it should return
 AVERROR_EOF.
@@ -244,20 +245,18 @@ Frame scheduling
 push_one_frame();
 return 0;
 }
-while (!frame_pushed) {
-input = input_where_a_frame_is_most_needed();
-ret = ff_request_frame(input);
-if (ret == AVERROR_EOF) {
-process_eof_on_input();
-} else if (ret < 0) {
-return ret;
-}
+input = input_where_a_frame_is_most_needed();
+ret = ff_request_frame(input);
+if (ret == AVERROR_EOF) {
+process_eof_on_input();
+} else if (ret < 0) {
+return ret;
 }
 return 0;
 
 Note that, except for filters that can have queued frames, request_frame
 does not push frames: it requests them to its input, and as a reaction,
-the filter_frame method will be called and do the work.
+the filter_frame method possibly will be called and do the work.
 
 Legacy API
 ==
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 7da6cf2..b9fadb3 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -347,9 +347,7 @@ int ff_request_frame(AVFilterLink *link)
 
 if (link->closed)
 return AVERROR_EOF;
-av_assert0(!link->frame_requested);
-link->frame_requested = 1;
-while (link->frame_requested) {
+// TODO reindent
 if (link->srcpad->request_frame)
 ret = link->srcpad->request_frame(link);
 else if (link->src->inputs[0])
@@ -360,14 +358,9 @@ int ff_request_frame(AVFilterLink *link)
 ret = ff_filter_frame_framed(link, pbuf);
 }
 if (ret < 0) {
-link->frame_requested = 0;
 if (ret == AVERROR_EOF)
 link->closed = 1;
-} else {
-av_assert0(!link->frame_requested ||
-   link->flags & FF_LINK_FLAG_REQUEST_LOOP);
 }
-}
 return ret;
 }
 
@@ -1088,7 +1081,6 @@ static int ff_filter_frame_framed(AVFilterLink *link, 
AVFrame *frame)
 }
 ret = filter_frame(link, out);
 link->frame_count++;
-link->frame_requested = 0;
 ff_update_link_current_pts(link, pts);
 return ret;
 
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 642aa83..5d4cd6c 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -500,12 +500,6 @@ struct AVFilterLink {
 int channels;
 
 /**
- * True if a frame is being requested on the link.
- * Used internally by the framework.
- */
-unsigned frame_requested;
-
-/**
  * Link processing flags.
  */
 unsigned flags;
diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index 7816654..1454112 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -102,9 +102,9 @@ struct AVFilterPad {
 int (*poll_frame)(AVFilterLink *link);
 
 /**
- * Frame request callback. A call to this should result in at least one
- * frame being output over the given link. This should return zero on
- * success, and another value on error.
+ * Frame request callback. A call to this should result in some progress
+ * towards producing output over the given link. This should return zero
+ * on success, and another value on error.
  *
  * Output pads only.
  */
@@ -291,8 +291,11 @@ int ff_poll_frame(AVFilterLink *link);
  * caller (generally eventually a user application) as this step may (but does
  * not have to be) necessary to provide the input with the next frame.
  *
- * If a request is successf

[FFmpeg-cvslog] avfilter: add rubberband wrapper

2015-09-20 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Fri Sep 18 20:22:05 
2015 +| [2a0fc55995b7a3fea828b2e245c369d76c5a0b62] | committer: Paul B Mahol

avfilter: add rubberband wrapper

Signed-off-by: Paul B Mahol 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2a0fc55995b7a3fea828b2e245c369d76c5a0b62
---

 Changelog   |1 +
 LICENSE.md  |1 +
 configure   |5 +
 libavfilter/Makefile|1 +
 libavfilter/af_rubberband.c |  236 +++
 libavfilter/allfilters.c|1 +
 libavfilter/version.h   |2 +-
 7 files changed, 246 insertions(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index 62d3a7a..c2fd10f 100644
--- a/Changelog
+++ b/Changelog
@@ -8,6 +8,7 @@ version :
 - alimiter filter
 - stereowiden filter
 - stereotools filter
+- rubberband filter
 
 
 version 2.8:
diff --git a/LICENSE.md b/LICENSE.md
index 1a6e3b3..4c4a845 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -85,6 +85,7 @@ compatible libraries
 The following libraries are under GPL:
 - frei0r
 - libcdio
+- librubberband
 - libutvideo
 - libvidstab
 - libx264
diff --git a/configure b/configure
index 839c85d..d2a25bb 100755
--- a/configure
+++ b/configure
@@ -236,6 +236,7 @@ External library support:
   --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
   --enable-libopus enable Opus de/encoding via libopus [no]
   --enable-libpulseenable Pulseaudio input via libpulse [no]
+  --enable-librubberband   enable rubberband needed for rubberband filter [no]
   --enable-libquvi enable quvi input via libquvi [no]
   --enable-librtmp enable RTMP[E] support via librtmp [no]
   --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
@@ -1405,6 +1406,7 @@ EXTERNAL_LIBRARY_LIST="
 libpulse
 libquvi
 librtmp
+librubberband
 libschroedinger
 libshine
 libsmbclient
@@ -2789,6 +2791,7 @@ pullup_filter_deps="gpl"
 removelogo_filter_deps="avcodec avformat swscale"
 repeatfields_filter_deps="gpl"
 resample_filter_deps="avresample"
+rubberband_filter_deps="librubberband"
 sab_filter_deps="gpl swscale"
 scale_filter_deps="swscale"
 scale2ref_filter_deps="swscale"
@@ -4661,6 +4664,7 @@ die_license_disabled_gpl() {
 
 die_license_disabled gpl frei0r
 die_license_disabled gpl libcdio
+die_license_disabled gpl librubberband
 die_license_disabled gpl libsmbclient
 die_license_disabled gpl libutvideo
 die_license_disabled gpl libvidstab
@@ -5271,6 +5275,7 @@ enabled libopus   && require_pkg_config opus 
opus_multistream.h opus_mul
 enabled libpulse  && require_pkg_config libpulse pulse/pulseaudio.h 
pa_context_new
 enabled libquvi   && require_pkg_config libquvi quvi/quvi.h quvi_init
 enabled librtmp   && require_pkg_config librtmp librtmp/rtmp.h 
RTMP_Socket
+enabled librubberband && require_pkg_config rubberband 
rubberband/rubberband-c.h rubberband_new
 enabled libschroedinger   && require_pkg_config schroedinger-1.0 
schroedinger/schro.h schro_init
 enabled libshine  && require_pkg_config shine shine/layer3.h 
shine_encode_buffer
 enabled libsmbclient  && { use_pkg_config smbclient libsmbclient.h 
smbc_init ||
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 05effd6..4bbe972 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -77,6 +77,7 @@ OBJS-$(CONFIG_LOWPASS_FILTER)+= af_biquads.o
 OBJS-$(CONFIG_PAN_FILTER)+= af_pan.o
 OBJS-$(CONFIG_REPLAYGAIN_FILTER) += af_replaygain.o
 OBJS-$(CONFIG_RESAMPLE_FILTER)   += af_resample.o
+OBJS-$(CONFIG_RUBBERBAND_FILTER) += af_rubberband.o
 OBJS-$(CONFIG_SIDECHAINCOMPRESS_FILTER)  += af_sidechaincompress.o
 OBJS-$(CONFIG_SILENCEDETECT_FILTER)  += af_silencedetect.o
 OBJS-$(CONFIG_SILENCEREMOVE_FILTER)  += af_silenceremove.o
diff --git a/libavfilter/af_rubberband.c b/libavfilter/af_rubberband.c
new file mode 100644
index 000..60e8d3c
--- /dev/null
+++ b/libavfilter/af_rubberband.c
@@ -0,0 +1,236 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include 
+
+#include "libavutil/channel_layout.h"
+#include "libavutil/common.h"
+#

[FFmpeg-cvslog] lavf/matroska: ignore ChapCountry ID for now

2015-09-20 Thread Rodger Combs
ffmpeg | branch: master | Rodger Combs  | Sun Sep 20 
09:34:05 2015 -0500| [cf2719abeecb0a656d9bceebfca1a45e64f0cef7] | committer: 
Michael Niedermayer

lavf/matroska: ignore ChapCountry ID for now

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cf2719abeecb0a656d9bceebfca1a45e64f0cef7
---

 libavformat/matroska.h|1 +
 libavformat/matroskadec.c |5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/matroska.h b/libavformat/matroska.h
index 344b2c3..a654e0c 100644
--- a/libavformat/matroska.h
+++ b/libavformat/matroska.h
@@ -218,6 +218,7 @@
 #define MATROSKA_ID_CHAPTERDISPLAY  0x80
 #define MATROSKA_ID_CHAPSTRING  0x85
 #define MATROSKA_ID_CHAPLANG0x437C
+#define MATROSKA_ID_CHAPCOUNTRY 0x437E
 #define MATROSKA_ID_EDITIONUID  0x45BC
 #define MATROSKA_ID_EDITIONFLAGHIDDEN   0x45BD
 #define MATROSKA_ID_EDITIONFLAGDEFAULT  0x45DB
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 43ad9af..7a094a6 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -474,8 +474,9 @@ static const EbmlSyntax matroska_attachments[] = {
 };
 
 static const EbmlSyntax matroska_chapter_display[] = {
-{ MATROSKA_ID_CHAPSTRING, EBML_UTF8, 0, offsetof(MatroskaChapter, title) },
-{ MATROSKA_ID_CHAPLANG,   EBML_NONE },
+{ MATROSKA_ID_CHAPSTRING,  EBML_UTF8, 0, offsetof(MatroskaChapter, title) 
},
+{ MATROSKA_ID_CHAPLANG,EBML_NONE },
+{ MATROSKA_ID_CHAPCOUNTRY, EBML_NONE },
 { 0 }
 };
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] tests/checkasm: fix stack smash in check_loopfilter

2015-09-20 Thread Rodger Combs
ffmpeg | branch: master | Rodger Combs  | Sun Sep 20 
12:29:32 2015 -0500| [df2a2643fef47e807d347f880a4eb41b7faf1d14] | committer: 
Michael Niedermayer

tests/checkasm: fix stack smash in check_loopfilter

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=df2a2643fef47e807d347f880a4eb41b7faf1d14
---

 tests/checkasm/vp9dsp.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
index 146a71f..6c335e9 100644
--- a/tests/checkasm/vp9dsp.c
+++ b/tests/checkasm/vp9dsp.c
@@ -197,6 +197,9 @@ static void check_loopfilter()
 midoff = (dir ? 16 * 8 : 8) * SIZEOF_PIXEL;
 midoff_aligned = (dir ? 16 * 8 : 16) * SIZEOF_PIXEL;
 
+buf0 = base0 + midoff_aligned;
+buf1 = base1 + midoff_aligned;
+
 // 16wd_16px loopfilter
 if (check_func(dsp.loop_filter_16[dir],
"vp9_loop_filter_%s_16_16_%dbpp",

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/hevc_mp4toannexb_bsf: silence -Wdiscarded-qualifiers

2015-09-20 Thread Ganesh Ajjanagadde
ffmpeg | branch: master | Ganesh Ajjanagadde  | Sun Sep 
20 09:10:51 2015 -0400| [198110d702daf11a9f7db7b0ee53cc4a28ac5869] | committer: 
Michael Niedermayer

avcodec/hevc_mp4toannexb_bsf: silence -Wdiscarded-qualifiers

*poutbuf is non-const, so this casts it explicitly.
This suppresses -Wdiscarded-qualifiers seen in e.g
http://fate.ffmpeg.org/log.cgi?time=20150919100330&log=compile&slot=x86_64-archlinux-gcc-enableshared.

Signed-off-by: Ganesh Ajjanagadde 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=198110d702daf11a9f7db7b0ee53cc4a28ac5869
---

 libavcodec/hevc_mp4toannexb_bsf.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/hevc_mp4toannexb_bsf.c 
b/libavcodec/hevc_mp4toannexb_bsf.c
index 54d6d79..d6feb99 100644
--- a/libavcodec/hevc_mp4toannexb_bsf.c
+++ b/libavcodec/hevc_mp4toannexb_bsf.c
@@ -134,7 +134,7 @@ static int hevc_mp4toannexb_filter(AVBitStreamFilterContext 
*bsfc,
"The input looks like it is Annex B already\n");
 ctx->logged_nonmp4_warning = 1;
 }
-*poutbuf  = buf;
+*poutbuf  = (uint8_t *)buf;
 *poutbuf_size = buf_size;
 return 0;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avdevice/libdc1394: add const to suppress " assignment discards const qualifier from pointer target type" warnings

2015-09-20 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Sun 
Sep 20 22:11:59 2015 +0200| [f67170e81b79ffbb1a5aa3f218baf906afd136ba] | 
committer: Michael Niedermayer

avdevice/libdc1394: add const to suppress "assignment discards const qualifier 
from pointer target type" warnings

See: 
http://fate.ffmpeg.org/log.cgi?time=20150919100330&log=compile&slot=x86_64-archlinux-gcc-enableshared

Found-by: Ganesh Ajjanagadde 
Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f67170e81b79ffbb1a5aa3f218baf906afd136ba
---

 libavdevice/libdc1394.c |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavdevice/libdc1394.c b/libavdevice/libdc1394.c
index 6868e9c..d5bbc7c 100644
--- a/libavdevice/libdc1394.c
+++ b/libavdevice/libdc1394.c
@@ -121,12 +121,12 @@ static const AVClass libdc1394_class = {
 
 
 static inline int dc1394_read_common(AVFormatContext *c,
- struct dc1394_frame_format **select_fmt, 
struct dc1394_frame_rate **select_fps)
+ const struct dc1394_frame_format 
**select_fmt, const struct dc1394_frame_rate **select_fps)
 {
 dc1394_data* dc1394 = c->priv_data;
 AVStream* vst;
-struct dc1394_frame_format *fmt;
-struct dc1394_frame_rate *fps;
+const struct dc1394_frame_format *fmt;
+const struct dc1394_frame_rate *fps;
 enum AVPixelFormat pix_fmt;
 int width, height;
 AVRational framerate;
@@ -293,8 +293,8 @@ static int dc1394_v2_read_header(AVFormatContext *c)
 dc1394_data* dc1394 = c->priv_data;
 dc1394camera_list_t *list;
 int res, i;
-struct dc1394_frame_format *fmt = NULL;
-struct dc1394_frame_rate *fps = NULL;
+const struct dc1394_frame_format *fmt = NULL;
+const struct dc1394_frame_rate *fps = NULL;
 
 if (dc1394_read_common(c, &fmt, &fps) != 0)
return -1;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] swscale: fix ticket 4850

2015-09-20 Thread Pedro Arthur
ffmpeg | branch: master | Pedro Arthur  | Sun Sep 20 
18:03:49 2015 -0300| [77367f61b38dbdf17c31aa6a6b3edccb2ebf5354] | committer: 
Pedro Arthur

swscale: fix ticket 4850

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77367f61b38dbdf17c31aa6a6b3edccb2ebf5354
---

 libswscale/swscale.c |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index f4aa41b..346728d 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -526,8 +526,8 @@ static int swscale(SwsContext *c, const uint8_t *src[],
 #ifdef NEW_FILTER
 hasLumHoles = lastInLumBuf != firstLumSrcY - 1;
 if (hasLumHoles) {
-hout_slice->plane[0].sliceY = lastInLumBuf + 1;
-hout_slice->plane[3].sliceY = lastInLumBuf + 1;
+hout_slice->plane[0].sliceY = firstLumSrcY;
+hout_slice->plane[3].sliceY = firstLumSrcY;
 hout_slice->plane[0].sliceH =
 hout_slice->plane[3].sliceH = 0;
 }
@@ -538,8 +538,8 @@ static int swscale(SwsContext *c, const uint8_t *src[],
 #ifdef NEW_FILTER
 hasChrHoles = lastInChrBuf != firstChrSrcY - 1;
 if (hasChrHoles) {
-hout_slice->plane[1].sliceY = lastInChrBuf + 1;
-hout_slice->plane[2].sliceY = lastInChrBuf + 1;
+hout_slice->plane[1].sliceY = firstChrSrcY;
+hout_slice->plane[2].sliceY = firstChrSrcY;
 hout_slice->plane[1].sliceH =
 hout_slice->plane[2].sliceH = 0;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/snowenc: Remove unused new_picture field

2015-09-20 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Sun 
Sep 20 22:52:33 2015 +0200| [55b803e33ede35318f6afeadbe13fbb082eaaf20] | 
committer: Michael Niedermayer

avcodec/snowenc: Remove unused new_picture field

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=55b803e33ede35318f6afeadbe13fbb082eaaf20
---

 libavcodec/snow.h|1 -
 libavcodec/snowenc.c |1 -
 2 files changed, 2 deletions(-)

diff --git a/libavcodec/snow.h b/libavcodec/snow.h
index a09b622..bf744cf 100644
--- a/libavcodec/snow.h
+++ b/libavcodec/snow.h
@@ -121,7 +121,6 @@ typedef struct SnowContext{
 H264QpelContext h264qpel;
 MpegvideoEncDSPContext mpvencdsp;
 SnowDWTContext dwt;
-const AVFrame *new_picture;
 AVFrame *input_picture;  ///< new_picture with the internal 
linesizes
 AVFrame *current_picture;
 AVFrame *last_picture[MAX_REF_FRAMES];
diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
index 5e5dc35..99d8889 100644
--- a/libavcodec/snowenc.c
+++ b/libavcodec/snowenc.c
@@ -1584,7 +1584,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket 
*pkt,
 
 }
 emms_c();
-s->new_picture = pict;
 
 s->m.picture_number= avctx->frame_number;
 if(avctx->flags&AV_CODEC_FLAG_PASS2){

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avcodec/snowenc: Do not write into const AVFrame

2015-09-20 Thread Michael Niedermayer
ffmpeg | branch: master | Michael Niedermayer  | Sun 
Sep 20 22:55:15 2015 +0200| [01770bfda02a72dc4c721e5cbd66ffa47b37002d] | 
committer: Michael Niedermayer

avcodec/snowenc: Do not write into const AVFrame

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=01770bfda02a72dc4c721e5cbd66ffa47b37002d
---

 libavcodec/snowenc.c |9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
index 99d8889..1f22ad5 100644
--- a/libavcodec/snowenc.c
+++ b/libavcodec/snowenc.c
@@ -1557,7 +1557,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket 
*pkt,
 {
 SnowContext *s = avctx->priv_data;
 RangeCoder * const c= &s->c;
-AVFrame *pic = pict;
+AVFrame *pic;
 const int width= s->avctx->width;
 const int height= s->avctx->height;
 int level, orientation, plane_index, i, y, ret;
@@ -1584,6 +1584,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket 
*pkt,
 
 }
 emms_c();
+pic = s->input_picture;
+pic->pict_type = pict->pict_type;
+pic->quality = pict->quality;
 
 s->m.picture_number= avctx->frame_number;
 if(avctx->flags&AV_CODEC_FLAG_PASS2){
@@ -1844,8 +1847,8 @@ redo_frame:
 ff_snow_release_buffer(avctx);
 
 s->current_picture->coded_picture_number = avctx->frame_number;
-s->current_picture->pict_type = pict->pict_type;
-s->current_picture->quality = pict->quality;
+s->current_picture->pict_type = pic->pict_type;
+s->current_picture->quality = pic->quality;
 s->m.frame_bits = 8*(s->c.bytestream - s->c.bytestream_start);
 s->m.p_tex_bits = s->m.frame_bits - s->m.misc_bits - s->m.mv_bits;
 s->m.current_picture.f->display_picture_number =

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] mpjpeg: CRLF terminating a sequence of MIME headers should not cause an error

2015-09-20 Thread Alex Agranovsky
ffmpeg | branch: master | Alex Agranovsky  | Sat Sep 12 
19:04:26 2015 -0400| [53e8bef25a78457e4339e353568004f03b8a2396] | committer: 
Michael Niedermayer

mpjpeg: CRLF terminating a sequence of MIME headers should not cause an error

Signed-off-by: Michael Niedermayer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=53e8bef25a78457e4339e353568004f03b8a2396
---

 libavformat/mpjpegdec.c |   15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c
index 4b57fad..c76ea56 100644
--- a/libavformat/mpjpegdec.c
+++ b/libavformat/mpjpegdec.c
@@ -56,11 +56,20 @@ static void trim_right(char* p)
 static int split_tag_value(char **tag, char **value, char *line)
 {
 char *p = line;
+int  foundData = 0;
 
-while (*p != '\0' && *p != ':')
+*tag = NULL;
+*value = NULL;
+
+
+while (*p != '\0' && *p != ':') {
+if (!av_isspace(*p)) {
+foundData = 1;
+}
 p++;
+}
 if (*p != ':')
-return AVERROR_INVALIDDATA;
+return foundData ? AVERROR_INVALIDDATA : 0;
 
 *p   = '\0';
 *tag = line;
@@ -167,6 +176,8 @@ static int parse_multipart_header(AVIOContext *pb, void 
*log_ctx)
 ret = split_tag_value(&tag, &value, line);
 if (ret < 0)
 return ret;
+if (value==NULL || tag==NULL)
+break;
 
 if (!av_strcasecmp(tag, "Content-type")) {
 if (av_strcasecmp(value, "image/jpeg")) {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


Re: [FFmpeg-cvslog] configure: Reenable colorized warnings and check for tput's existence

2015-09-20 Thread James Darnley
On 2015-09-08 05:42, Timothy Gu wrote:
> ffmpeg | branch: master | Timothy Gu  | Mon Sep  7 
> 19:11:16 2015 -0700| [617d53f4c7e43b5df6f99b363b550ff7b0007c6e] | committer: 
> Timothy Gu
> 
> configure: Reenable colorized warnings and check for tput's existence
> 
> Untested.
> 
>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=617d53f4c7e43b5df6f99b363b550ff7b0007c6e
> ---
> 
>  configure |   10 +-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 8c1309f..cd0c22a 100755
> --- a/configure
> +++ b/configure
> @@ -416,6 +416,14 @@ EOF
>  }
>  
>  quotes='""'
> +if test -t 1 && which tput >/dev/null; then
   ^^

I think you need to silence errors here otherwise a shell can print to
stderr, as mine does:

> which: no tput in (... long path list removed ...)




signature.asc
Description: OpenPGP digital signature
___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: master | James Almer  | Sun Sep 20 23:20:43 
2015 -0300| [fd9ac48dc8aebcbd601af34336234d5102b36e21] | committer: James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fd9ac48dc8aebcbd601af34336234d5102b36e21
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index a6e1e55..99ba88a 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -984,8 +984,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: release/2.4 | James Almer  | Sun Sep 20 
23:20:43 2015 -0300| [30f45124778c2479e0a295df817b49edf7a571cf] | committer: 
James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 
(cherry picked from commit fd9ac48dc8aebcbd601af34336234d5102b36e21)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=30f45124778c2479e0a295df817b49edf7a571cf
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index 8d7555d..5ca100b 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -935,8 +935,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: release/2.6 | James Almer  | Sun Sep 20 
23:20:43 2015 -0300| [be9ec446a04ec0eef229cc3fe26dca7e0d8f966c] | committer: 
James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 
(cherry picked from commit fd9ac48dc8aebcbd601af34336234d5102b36e21)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=be9ec446a04ec0eef229cc3fe26dca7e0d8f966c
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index 6c9531b..795f594 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -948,8 +948,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: release/2.5 | James Almer  | Sun Sep 20 
23:20:43 2015 -0300| [628479b096fe4d74841e6c2904cc9646544424b1] | committer: 
James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 
(cherry picked from commit fd9ac48dc8aebcbd601af34336234d5102b36e21)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=628479b096fe4d74841e6c2904cc9646544424b1
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index dd19fcc..508d587 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -936,8 +936,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: release/2.8 | James Almer  | Sun Sep 20 
23:20:43 2015 -0300| [ddbb8d5edadba9b7954029bbf36690172e378626] | committer: 
James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 
(cherry picked from commit fd9ac48dc8aebcbd601af34336234d5102b36e21)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ddbb8d5edadba9b7954029bbf36690172e378626
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index 2b782e0..c620855 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -983,8 +983,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] doc: mention libavcodec can decode Opus natively

2015-09-20 Thread James Almer
ffmpeg | branch: release/2.7 | James Almer  | Sun Sep 20 
23:20:43 2015 -0300| [763c0d25b1f498b35518442d866fd90984b33050] | committer: 
James Almer

doc: mention libavcodec can decode Opus natively

Signed-off-by: James Almer 
(cherry picked from commit fd9ac48dc8aebcbd601af34336234d5102b36e21)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=763c0d25b1f498b35518442d866fd90984b33050
---

 doc/general.texi |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/general.texi b/doc/general.texi
index ba79503..88a8847 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -954,8 +954,8 @@ following image formats are supported:
 @item Musepack SV8   @tab @tab  X
 @item Nellymoser Asao@tab  X  @tab  X
 @item On2 AVC (Audio for Video Codec) @tab @tab  X
-@item Opus   @tab  E  @tab  E
-@tab supported through external library libopus
+@item Opus   @tab  E  @tab  X
+@tab encoding supported through external library libopus
 @item PCM A-law  @tab  X  @tab  X
 @item PCM mu-law @tab  X  @tab  X
 @item PCM signed 8-bit planar  @tab  X  @tab  X

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


Re: [FFmpeg-cvslog] [FFmpeg-devel] configure: Reenable colorized warnings and check for tput's existence

2015-09-20 Thread Ganesh Ajjanagadde
On Sun, Sep 20, 2015 at 9:29 PM, James Darnley  wrote:
> On 2015-09-08 05:42, Timothy Gu wrote:
>> ffmpeg | branch: master | Timothy Gu  | Mon Sep  7 
>> 19:11:16 2015 -0700| [617d53f4c7e43b5df6f99b363b550ff7b0007c6e] | committer: 
>> Timothy Gu
>>
>> configure: Reenable colorized warnings and check for tput's existence
>>
>> Untested.
>>
>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=617d53f4c7e43b5df6f99b363b550ff7b0007c6e
>> ---
>>
>>  configure |   10 +-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 8c1309f..cd0c22a 100755
>> --- a/configure
>> +++ b/configure
>> @@ -416,6 +416,14 @@ EOF
>>  }
>>
>>  quotes='""'
>> +if test -t 1 && which tput >/dev/null; then
>^^
>
> I think you need to silence errors here otherwise a shell can print to
> stderr, as mine does:
>
>> which: no tput in (... long path list removed ...)

Thanks, see patch.

>
>
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-de...@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog