[FFmpeg-cvslog] avcodec/roqvideoenc: use AV_OPT_TYPE_BOOL for quake3_compat option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:17:57 
2015 +0200| [7434b9f66f42fda88a8eb988831cfc0c6d942f8e] | committer: Clément 
Bœsch

avcodec/roqvideoenc: use AV_OPT_TYPE_BOOL for quake3_compat option

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

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

diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c
index 72fc2d7..b6ed1f9 100644
--- a/libavcodec/roqvideoenc.c
+++ b/libavcodec/roqvideoenc.c
@@ -1127,7 +1127,7 @@ static int roq_encode_frame(AVCodecContext *avctx, 
AVPacket *pkt,
 #define OFFSET(x) offsetof(RoqContext, x)
 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
-{ "quake3_compat", "Whether to respect known limitations in Quake 3 
decoder", OFFSET(quake3_compat), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
+{ "quake3_compat", "Whether to respect known limitations in Quake 3 
decoder", OFFSET(quake3_compat), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VE },
 { NULL },
 };
 

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


[FFmpeg-cvslog] avcodec/pgssubdec: use AV_OPT_TYPE_BOOL for forced_subs_only option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:16:08 
2015 +0200| [8e22becbc7ed7ceeab3f2cebee326c9bd30085e9] | committer: Clément 
Bœsch

avcodec/pgssubdec: use AV_OPT_TYPE_BOOL for forced_subs_only option

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

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

diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c
index 0d307f5..50fc5b6 100644
--- a/libavcodec/pgssubdec.c
+++ b/libavcodec/pgssubdec.c
@@ -675,7 +675,7 @@ static int decode(AVCodecContext *avctx, void *data, int 
*data_size,
 #define OFFSET(x) offsetof(PGSSubContext, x)
 #define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
 static const AVOption options[] = {
-{"forced_subs_only", "Only show forced subtitles", 
OFFSET(forced_subs_only), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, SD},
+{"forced_subs_only", "Only show forced subtitles", 
OFFSET(forced_subs_only), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, SD},
 { NULL },
 };
 

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


[FFmpeg-cvslog] avfilter/vf_framerate: calculate delta from scaled pts instead of unscaled

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Thu Sep 10 15:39:35 
2015 +| [349970a67a1911cd522ee133daa7476b6301e323] | committer: Paul B Mahol

avfilter/vf_framerate: calculate delta from scaled pts instead of unscaled

Signed-off-by: Paul B Mahol 

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

 libavfilter/vf_framerate.c |   19 +++
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index ccd6647..f4ff481 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -476,28 +476,23 @@ static void set_work_frame_pts(AVFilterContext *ctx)
 average_srce_pts_delta = s->average_srce_pts_dest_delta;
 ff_dlog(ctx, "set_work_frame_pts() initial average srce pts:%"PRId64"\n", 
average_srce_pts_delta);
 
+set_srce_frame_dest_pts(ctx);
+
 // calculate the PTS delta
-if ((pts = (s->srce[s->next]->pts - s->srce[s->crnt]->pts))) {
+if ((pts = (s->srce_pts_dest[s->next] - s->srce_pts_dest[s->crnt]))) {
 average_srce_pts_delta = 
average_srce_pts_delta?((average_srce_pts_delta+pts)>>1):pts;
-} else if (s->srce[s->prev] && (pts = (s->srce[s->crnt]->pts - 
s->srce[s->prev]->pts))) {
+} else if (s->srce[s->prev] && (pts = (s->srce_pts_dest[s->crnt] - 
s->srce_pts_dest[s->prev]))) {
 average_srce_pts_delta = 
average_srce_pts_delta?((average_srce_pts_delta+pts)>>1):pts;
 }
 
-s->average_srce_pts_dest_delta = av_rescale_q(average_srce_pts_delta, 
s->srce_time_base, s->dest_time_base);
+s->average_srce_pts_dest_delta = average_srce_pts_delta;
 ff_dlog(ctx, "set_work_frame_pts() average srce pts:%"PRId64"\n", 
average_srce_pts_delta);
 ff_dlog(ctx, "set_work_frame_pts() average srce pts:%"PRId64" at dest time 
base:%u/%u\n",
 s->average_srce_pts_dest_delta, s->dest_time_base.num, 
s->dest_time_base.den);
 
-set_srce_frame_dest_pts(ctx);
-
 if (ctx->inputs[0] && !s->average_dest_pts_delta) {
-int64_t d = av_q2d(av_inv_q(av_mul_q(s->srce_time_base, 
s->dest_frame_rate)));
-if (d == 0) { // FIXME
-av_log(ctx, AV_LOG_WARNING, "Buggy path reached, use settb filter 
before this filter!\n");
-d = av_q2d(av_mul_q(ctx->inputs[0]->time_base, 
s->dest_frame_rate));
-}
-s->average_dest_pts_delta = av_rescale_q(d, s->srce_time_base, 
s->dest_time_base);
-ff_dlog(ctx, "set_frame_pts() average output pts from input 
timebase\n");
+int64_t d = av_q2d(av_inv_q(av_mul_q(s->dest_time_base, 
s->dest_frame_rate)));
+s->average_dest_pts_delta = d;
 ff_dlog(ctx, "set_work_frame_pts() average dest pts 
delta:%"PRId64"\n", s->average_dest_pts_delta);
 }
 

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


[FFmpeg-cvslog] avfilter/vf_framerate: highbit depth support

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Mon Sep  7 18:30:22 
2015 +| [2b77034565993e8c0bd8902127e7b2e1a000fa86] | committer: Paul B Mahol

avfilter/vf_framerate: highbit depth support

Signed-off-by: Paul B Mahol 

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

 libavfilter/vf_framerate.c |  280 +---
 1 file changed, 211 insertions(+), 69 deletions(-)

diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index 5c9da19..ccd6647 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -72,6 +72,12 @@ typedef struct FrameRateContext {
 AVFrame *srce[N_SRCE];  ///< buffered source frames
 int64_t srce_pts_dest[N_SRCE];  ///< pts for source frames scaled to 
output timebase
 int64_t pts;///< pts of frame we are working on
+
+int (*blend_frames)(AVFilterContext *ctx, float interpolate,
+AVFrame *copy_src1, AVFrame *copy_src2);
+int max;
+int bitdepth;
+AVFrame *work;
 } FrameRateContext;
 
 #define OFFSET(x) offsetof(FrameRateContext, x)
@@ -114,6 +120,58 @@ static void next_source(AVFilterContext *ctx)
 s->srce[s->frst] = NULL;
 }
 
+static av_always_inline int64_t sad_8x8_16(const uint16_t *src1, ptrdiff_t 
stride1,
+   const uint16_t *src2, ptrdiff_t 
stride2)
+{
+int sum = 0;
+int x, y;
+
+for (y = 0; y < 8; y++) {
+for (x = 0; x < 8; x++)
+sum += FFABS(src1[x] - src2[x]);
+src1 += stride1;
+src2 += stride2;
+}
+return sum;
+}
+
+static double get_scene_score16(AVFilterContext *ctx, AVFrame *crnt, AVFrame 
*next)
+{
+FrameRateContext *s = ctx->priv;
+double ret = 0;
+
+ff_dlog(ctx, "get_scene_score16()\n");
+
+if (crnt &&
+crnt->height == next->height &&
+crnt->width  == next->width) {
+int x, y;
+int64_t sad;
+double mafd, diff;
+const uint16_t *p1 = (const uint16_t *)crnt->data[0];
+const uint16_t *p2 = (const uint16_t *)next->data[0];
+const int p1_linesize = crnt->linesize[0] / 2;
+const int p2_linesize = next->linesize[0] / 2;
+
+ff_dlog(ctx, "get_scene_score16() process\n");
+
+for (sad = y = 0; y < crnt->height; y += 8) {
+for (x = 0; x < p1_linesize; x += 8) {
+sad += sad_8x8_16(p1 + y * p1_linesize + x,
+  p1_linesize,
+  p2 + y * p2_linesize + x,
+  p2_linesize);
+}
+}
+mafd = sad / (crnt->height * crnt->width * 3);
+diff = fabs(mafd - s->prev_mafd);
+ret  = av_clipf(FFMIN(mafd, diff), 0, 100.0);
+s->prev_mafd = mafd;
+}
+ff_dlog(ctx, "get_scene_score16() result is:%f\n", ret);
+return ret;
+}
+
 static double get_scene_score(AVFilterContext *ctx, AVFrame *crnt, AVFrame 
*next)
 {
 FrameRateContext *s = ctx->priv;
@@ -152,13 +210,143 @@ static double get_scene_score(AVFilterContext *ctx, 
AVFrame *crnt, AVFrame *next
 return ret;
 }
 
-static int process_work_frame(AVFilterContext *ctx, int stop)
+static int blend_frames16(AVFilterContext *ctx, float interpolate,
+  AVFrame *copy_src1, AVFrame *copy_src2)
+{
+FrameRateContext *s = ctx->priv;
+AVFilterLink *outlink = ctx->outputs[0];
+double interpolate_scene_score = 0;
+
+if ((s->flags & FRAMERATE_FLAG_SCD) && copy_src2) {
+interpolate_scene_score = get_scene_score16(ctx, copy_src1, copy_src2);
+ff_dlog(ctx, "blend_frames16() interpolate scene score:%f\n", 
interpolate_scene_score);
+}
+// decide if the shot-change detection allows us to blend two frames
+if (interpolate_scene_score < s->scene_score && copy_src2) {
+uint16_t src2_factor = FFABS(interpolate) * (1 << (s->bitdepth - 8));
+uint16_t src1_factor = s->max - src2_factor;
+const int half = s->max / 2;
+const int uv = (s->max + 1) * half;
+const int shift = s->bitdepth;
+int plane, line, pixel;
+
+// get work-space for output frame
+s->work = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+if (!s->work)
+return AVERROR(ENOMEM);
+
+av_frame_copy_props(s->work, s->srce[s->crnt]);
+
+ff_dlog(ctx, "blend_frames16() INTERPOLATE to create work frame\n");
+for (plane = 0; plane < 4 && copy_src1->data[plane] && 
copy_src2->data[plane]; plane++) {
+int cpy_line_width = s->line_size[plane];
+const uint16_t *cpy_src1_data = (const uint16_t 
*)copy_src1->data[plane];
+int cpy_src1_line_size = copy_src1->linesize[plane] / 2;
+const uint16_t *cpy_src2_data = (const uint16_t 
*)copy_src2->data[plane];
+int 

[FFmpeg-cvslog] avfilter/vf_framerate: fix frame leak at uninit

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Sat Sep 12 02:34:52 
2015 +| [6a074cfa1514c37c4ce51874ea473719f72813b6] | committer: Paul B Mahol

avfilter/vf_framerate: fix frame leak at uninit

Reported-by: Andres Noetzli
Signed-off-by: Paul B Mahol 

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

 libavfilter/vf_framerate.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index 1072e2d..687b9a5 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -526,7 +526,7 @@ static av_cold void uninit(AVFilterContext *ctx)
 FrameRateContext *s = ctx->priv;
 int i;
 
-for (i = s->frst + 1; i > s->last; i++) {
+for (i = s->frst + 1; i < s->last; i++) {
 if (s->srce[i] && (s->srce[i] != s->srce[i + 1]))
 av_frame_free(>srce[i]);
 }

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


[FFmpeg-cvslog] avfilter/vf_framerate: unbreak flushing

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Fri Sep 11 10:09:33 
2015 +| [16f08b7a0918ec93d377bfd151e6551da4c3b38f] | committer: Paul B Mahol

avfilter/vf_framerate: unbreak flushing

Signed-off-by: Paul B Mahol 

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

 libavfilter/vf_framerate.c |5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index f4ff481..1072e2d 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -666,9 +666,12 @@ static int request_frame(AVFilterLink *outlink)
 // if there is no "next" frame AND we are not in flush then get one from 
our input filter
 if (!s->srce[s->frst] && !s->flush) {
 ff_dlog(ctx, "request_frame() call source's request_frame()\n");
-if ((val = ff_request_frame(outlink->src->inputs[0])) < 0) {
+val = ff_request_frame(outlink->src->inputs[0]);
+if (val < 0 && (val != AVERROR_EOF)) {
 ff_dlog(ctx, "request_frame() source's request_frame() returned 
error:%d\n", val);
 return val;
+} else if (val == AVERROR_EOF) {
+s->flush = 1;
 }
 ff_dlog(ctx, "request_frame() source's request_frame() returned:%d\n", 
val);
 return 0;

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


[FFmpeg-cvslog] avdevice/v4l2: use AV_OPT_TYPE_BOOL for use_libv4l2 option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:14:59 
2015 +0200| [5cae43e718e5226f3ef4cc3132ca83695a7a5cf4] | committer: Clément 
Bœsch

avdevice/v4l2: use AV_OPT_TYPE_BOOL for use_libv4l2 option

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

 libavdevice/v4l2.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 2b38a00..9e8ba1e 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -1112,7 +1112,7 @@ static const AVOption options[] = {
 { "default",  "use timestamps from the kernel",
   OFFSET(ts_mode),  AV_OPT_TYPE_CONST,  {.i64 = V4L_TS_DEFAULT  }, 0, 2, 
DEC, "timestamps" },
 { "abs",  "use absolute timestamps (wall clock)",  
   OFFSET(ts_mode),  AV_OPT_TYPE_CONST,  {.i64 = V4L_TS_ABS  }, 0, 2, 
DEC, "timestamps" },
 { "mono2abs", "force conversion from monotonic to absolute 
timestamps",   OFFSET(ts_mode),  AV_OPT_TYPE_CONST,  {.i64 = 
V4L_TS_MONO2ABS }, 0, 2, DEC, "timestamps" },
-{ "use_libv4l2",  "use libv4l2 (v4l-utils) conversion functions",  
   OFFSET(use_libv4l2),  AV_OPT_TYPE_INT,{.i64 = 0}, 0, 1, DEC },
+{ "use_libv4l2",  "use libv4l2 (v4l-utils) conversion functions",  
   OFFSET(use_libv4l2),  AV_OPT_TYPE_BOOL,   {.i64 = 0}, 0, 1, DEC },
 { NULL },
 };
 

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


[FFmpeg-cvslog] avfilter/treble: use AV_OPT_TYPE_BOOL for csg option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:17:05 
2015 +0200| [1e2c23f06c9c66c3063af70c1f32a893db084c3a] | committer: Clément 
Bœsch

avfilter/treble: use AV_OPT_TYPE_BOOL for csg option

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

 libavfilter/af_biquads.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index 118a0c0..b910687 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -534,7 +534,7 @@ static const AVOption bandpass_options[] = {
 {"s", "slope", 0, AV_OPT_TYPE_CONST, {.i64=SLOPE}, 0, 0, FLAGS, 
"width_type"},
 {"width", "set band-width", OFFSET(width), AV_OPT_TYPE_DOUBLE, {.dbl=0.5}, 
0, 999, FLAGS},
 {"w", "set band-width", OFFSET(width), AV_OPT_TYPE_DOUBLE, {.dbl=0.5}, 
0, 999, FLAGS},
-{"csg",   "use constant skirt gain", OFFSET(csg), AV_OPT_TYPE_INT, 
{.i64=0}, 0, 1, FLAGS},
+{"csg",   "use constant skirt gain", OFFSET(csg), AV_OPT_TYPE_BOOL, 
{.i64=0}, 0, 1, FLAGS},
 {NULL}
 };
 

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


[FFmpeg-cvslog] avcodec/textdec: use AV_OPT_TYPE_BOOL for keep_ass_markup option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:11:36 
2015 +0200| [7a256133ffe895f59fa66bae8132beee6efce153] | committer: Clément 
Bœsch

avcodec/textdec: use AV_OPT_TYPE_BOOL for keep_ass_markup option

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

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

diff --git a/libavcodec/textdec.c b/libavcodec/textdec.c
index c9f02a2..a6c8722 100644
--- a/libavcodec/textdec.c
+++ b/libavcodec/textdec.c
@@ -37,7 +37,7 @@ typedef struct {
 #define OFFSET(x) offsetof(TextContext, x)
 #define SD AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_DECODING_PARAM
 static const AVOption options[] = {
-{ "keep_ass_markup", "Set if ASS tags must be escaped", 
OFFSET(keep_ass_markup), AV_OPT_TYPE_INT,{.i64=0}, 0, 1, .flags=SD },
+{ "keep_ass_markup", "Set if ASS tags must be escaped", 
OFFSET(keep_ass_markup), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, .flags=SD },
 { NULL }
 };
 

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


[FFmpeg-cvslog] avformat/mov: use AV_OPT_TYPE_BOOL for export_{all, xmp} options

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:20:39 
2015 +0200| [a84613b4c2a514bafa7e1d4b87f5fdf47ea85914] | committer: Clément 
Bœsch

avformat/mov: use AV_OPT_TYPE_BOOL for export_{all,xmp} options

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

 libavformat/mov.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 471b6ca..c57aaeb 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -4736,9 +4736,9 @@ static const AVOption mov_options[] = {
 {"pts", "pts", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_MFRA_PTS}, 0, 0,
 FLAGS, "use_mfra_for" },
 { "export_all", "Export unrecognized metadata entries", OFFSET(export_all),
-AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, .flags = FLAGS },
+AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = FLAGS },
 { "export_xmp", "Export full XMP metadata", OFFSET(export_xmp),
-AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, .flags = FLAGS },
+AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = FLAGS },
 { "activation_bytes", "Secret bytes for Audible AAX files", 
OFFSET(activation_bytes),
 AV_OPT_TYPE_BINARY, .flags = AV_OPT_FLAG_DECODING_PARAM },
 { "audible_fixed_key", // extracted from libAAX_SDK.so and AAXSDKWin.dll 
files!

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


[FFmpeg-cvslog] avdevice/caca: small trivial macros adjustments

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:06:15 
2015 +0200| [2c364ef82dcc196b1b016cff16887280e8a64fa9] | committer: Clément 
Bœsch

avdevice/caca: small trivial macros adjustments

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

 libavdevice/caca.c |   18 ++
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/libavdevice/caca.c b/libavdevice/caca.c
index 574b7f3..14775d2 100644
--- a/libavdevice/caca.c
+++ b/libavdevice/caca.c
@@ -73,7 +73,7 @@ static void list_drivers(CACAContext *c)
 }
 
 #define DEFINE_LIST_DITHER(thing, thing_str) \
-static void list_dither_## thing(CACAContext *c) \
+static void list_dither_## thing(CACAContext *c) \
 {\
 const char *const *thing = caca_get_dither_## thing ##_list(c->dither);  \
 int i;   \
@@ -150,13 +150,15 @@ static int caca_write_header(AVFormatContext *s)
 goto fail;
 }
 
-#define CHECK_DITHER_OPT(opt)   \
-if (caca_set_dither_##opt(c->dither, c->opt) < 0)  {\
-ret = AVERROR(errno);   \
-av_log(s, AV_LOG_ERROR, "Failed to set value '%s' for option '%s'\n", \
-   c->opt, #opt);   \
-goto fail;  \
-}
+#define CHECK_DITHER_OPT(opt) do { 
 \
+if (caca_set_dither_##opt(c->dither, c->opt) < 0)  {   
 \
+ret = AVERROR(errno);  
 \
+av_log(s, AV_LOG_ERROR, "Failed to set value '%s' for option '%s'\n",  
 \
+   c->opt, #opt);  
 \
+goto fail; 
 \
+}  
 \
+} while (0)
+
 CHECK_DITHER_OPT(algorithm);
 CHECK_DITHER_OPT(antialias);
 CHECK_DITHER_OPT(charset);

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


[FFmpeg-cvslog] ffprobe: use AV_OPT_TYPE_BOOL for writers options

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:01:39 
2015 +0200| [306ff409887ccc959ab882cfb3826ef4fc5eb952] | committer: Clément 
Bœsch

ffprobe: use AV_OPT_TYPE_BOOL for writers options

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

 ffprobe.c |   44 ++--
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/ffprobe.c b/ffprobe.c
index 4328b61..ac03689 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -807,10 +807,10 @@ typedef struct DefaultContext {
 #define OFFSET(x) offsetof(DefaultContext, x)
 
 static const AVOption default_options[] = {
-{ "noprint_wrappers", "do not print headers and footers", 
OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
-{ "nw",   "do not print headers and footers", 
OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
-{ "nokey",  "force no key printing", OFFSET(nokey),  
AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
-{ "nk", "force no key printing", OFFSET(nokey),  
AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
+{ "noprint_wrappers", "do not print headers and footers", 
OFFSET(noprint_wrappers), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
+{ "nw",   "do not print headers and footers", 
OFFSET(noprint_wrappers), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
+{ "nokey",  "force no key printing", OFFSET(nokey),  
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
+{ "nk", "force no key printing", OFFSET(nokey),  
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 },
 {NULL},
 };
 
@@ -963,12 +963,12 @@ typedef struct CompactContext {
 static const AVOption compact_options[]= {
 {"item_sep", "set item separator",OFFSET(item_sep_str),
AV_OPT_TYPE_STRING, {.str="|"},  CHAR_MIN, CHAR_MAX },
 {"s","set item separator",OFFSET(item_sep_str),
AV_OPT_TYPE_STRING, {.str="|"},  CHAR_MIN, CHAR_MAX },
-{"nokey","force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_INT,{.i64=0},0,1},
-{"nk",   "force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_INT,{.i64=0},0,1},
+{"nokey","force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_BOOL,   {.i64=0},0,1},
+{"nk",   "force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_BOOL,   {.i64=0},0,1},
 {"escape",   "set escape mode",   OFFSET(escape_mode_str), 
AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
 {"e","set escape mode",   OFFSET(escape_mode_str), 
AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
-{"print_section", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_INT,{.i64=1},0,1},
-{"p", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_INT,{.i64=1},0,1},
+{"print_section", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
+{"p", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
 {NULL},
 };
 
@@ -1079,12 +1079,12 @@ static const Writer compact_writer = {
 static const AVOption csv_options[] = {
 {"item_sep", "set item separator",OFFSET(item_sep_str),
AV_OPT_TYPE_STRING, {.str=","},  CHAR_MIN, CHAR_MAX },
 {"s","set item separator",OFFSET(item_sep_str),
AV_OPT_TYPE_STRING, {.str=","},  CHAR_MIN, CHAR_MAX },
-{"nokey","force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_INT,{.i64=1},0,1},
-{"nk",   "force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_INT,{.i64=1},0,1},
+{"nokey","force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
+{"nk",   "force no key printing", OFFSET(nokey),   
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
 {"escape",   "set escape mode",   OFFSET(escape_mode_str), 
AV_OPT_TYPE_STRING, {.str="csv"}, CHAR_MIN, CHAR_MAX },
 {"e","set escape mode",   OFFSET(escape_mode_str), 
AV_OPT_TYPE_STRING, {.str="csv"}, CHAR_MIN, CHAR_MAX },
-{"print_section", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_INT,{.i64=1},0,1},
-{"p", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_INT,{.i64=1},0,1},
+{"print_section", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
+{"p", "print section name", OFFSET(print_section), 
AV_OPT_TYPE_BOOL,   {.i64=1},0,1},
 {NULL},
 };
 
@@ -1117,8 +1117,8 @@ typedef struct FlatContext {
 static const AVOption flat_options[]= {
 {"sep_char", "set 

[FFmpeg-cvslog] avcodec/libx264: use AV_OPT_TYPE_BOOL for fastfirstpass option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:10:14 
2015 +0200| [51cec6c306455655621fd7069af6d2b6deefef1e] | committer: Clément 
Bœsch

avcodec/libx264: use AV_OPT_TYPE_BOOL for fastfirstpass option

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

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

diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index a54743e..58fcfb0 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -817,7 +817,7 @@ static const AVOption options[] = {
 { "preset","Set the encoding preset (cf. x264 --fullhelp)",   
OFFSET(preset),AV_OPT_TYPE_STRING, { .str = "medium" }, 0, 0, VE},
 { "tune",  "Tune the encoding params (cf. x264 --fullhelp)",  
OFFSET(tune),  AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE},
 { "profile",   "Set profile restrictions (cf. x264 --fullhelp) ", 
OFFSET(profile),   AV_OPT_TYPE_STRING, { 0 }, 0, 0, VE},
-{ "fastfirstpass", "Use fast settings when encoding first pass",  
OFFSET(fastfirstpass), AV_OPT_TYPE_INT,{ .i64 = 1 }, 0, 1, VE},
+{ "fastfirstpass", "Use fast settings when encoding first pass",  
OFFSET(fastfirstpass), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VE},
 {"level", "Specify level (as defined by Annex A)", OFFSET(level), 
AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, VE},
 {"passlogfile", "Filename for 2 pass stats", OFFSET(stats), 
AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, VE},
 {"wpredp", "Weighted prediction for P-frames", OFFSET(wpredp), 
AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, VE},

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


[FFmpeg-cvslog] avcodec/h264: use AV_OPT_TYPE_BOOL for is_avc option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:08:22 
2015 +0200| [411c32386ad56bd3da7e875140bed2b035ca2619] | committer: Clément 
Bœsch

avcodec/h264: use AV_OPT_TYPE_BOOL for is_avc option

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

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

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 907943e..b797893 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1947,7 +1947,7 @@ static av_cold int h264_decode_end(AVCodecContext *avctx)
 #define OFFSET(x) offsetof(H264Context, x)
 #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
 static const AVOption h264_options[] = {
-{"is_avc", "is avc", offsetof(H264Context, is_avc), AV_OPT_TYPE_INT, {.i64 
= 0}, 0, 1, 0},
+{"is_avc", "is avc", offsetof(H264Context, is_avc), AV_OPT_TYPE_BOOL, 
{.i64 = 0}, 0, 1, 0},
 {"nal_length_size", "nal_length_size", offsetof(H264Context, 
nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0},
 { "enable_er", "Enable error resilience on damaged frames (unsafe)", 
OFFSET(enable_er), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VD },
 { NULL },

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


[FFmpeg-cvslog] avdevice/caca: remove space before ':' (English typo, cosmetics)

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 21:06:12 
2015 +0200| [79f0f1a80bd03bd66fbf52cbff0892aba68b155a] | committer: Clément 
Bœsch

avdevice/caca: remove space before ':' (English typo, cosmetics)

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

 libavdevice/caca.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavdevice/caca.c b/libavdevice/caca.c
index 56cf0d1..574b7f3 100644
--- a/libavdevice/caca.c
+++ b/libavdevice/caca.c
@@ -69,7 +69,7 @@ static void list_drivers(CACAContext *c)
 
 av_log(c->ctx, AV_LOG_INFO, "Available drivers:\n");
 for (i = 0; drivers[i]; i += 2)
-av_log(c->ctx, AV_LOG_INFO, "%s : %s\n", drivers[i], drivers[i + 1]);
+av_log(c->ctx, AV_LOG_INFO, "%s: %s\n", drivers[i], drivers[i + 1]);
 }
 
 #define DEFINE_LIST_DITHER(thing, thing_str) \
@@ -80,7 +80,7 @@ static void list_dither_## thing(CACAContext *c)  
   \
  \
 av_log(c->ctx, AV_LOG_INFO, "Available %s:\n", thing_str);   \
 for (i = 0; thing[i]; i += 2)\
-av_log(c->ctx, AV_LOG_INFO, "%s : %s\n", thing[i], thing[i + 1]);\
+av_log(c->ctx, AV_LOG_INFO, "%s: %s\n", thing[i], thing[i + 1]); \
 }
 
 DEFINE_LIST_DITHER(color, "colors");

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


[FFmpeg-cvslog] avdevice/caca: use AV_OPT_TYPE_BOOL for list_drivers option

2015-09-12 Thread Clément Bœsch
ffmpeg | branch: master | Clément Bœsch  | Fri Sep 11 20:47:03 
2015 +0200| [9d0a6ede30e65f9f72a4d2cecd0d27a855eabba8] | committer: Clément 
Bœsch

avdevice/caca: use AV_OPT_TYPE_BOOL for list_drivers option

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

 libavdevice/caca.c |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/libavdevice/caca.c b/libavdevice/caca.c
index ff54940..56cf0d1 100644
--- a/libavdevice/caca.c
+++ b/libavdevice/caca.c
@@ -208,9 +208,7 @@ static const AVOption options[] = {
 { "antialias","set antialias method",OFFSET(antialias), 
AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
 { "charset",  "set charset used to render output", OFFSET(charset), 
AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
 { "color","set color used to render output",   OFFSET(color),   
AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
-{ "list_drivers", "list available drivers",  OFFSET(list_drivers), 
AV_OPT_TYPE_INT, {.i64=0}, 0, 1, ENC, "list_drivers" },
-{ "true", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, ENC, 
"list_drivers" },
-{ "false",NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, ENC, 
"list_drivers" },
+{ "list_drivers", "list available drivers",  OFFSET(list_drivers), 
AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, ENC },
 { "list_dither", "list available dither options", OFFSET(list_dither), 
AV_OPT_TYPE_STRING, {.dbl=0}, 0, 1, ENC, "list_dither" },
 { "algorithms",   NULL, 0, AV_OPT_TYPE_CONST, {.str = "algorithms"}, 0, 0, 
ENC, "list_dither" },
 { "antialiases",  NULL, 0, AV_OPT_TYPE_CONST, {.str = "antialiases"},0, 0, 
ENC, "list_dither" },

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


[FFmpeg-cvslog] avfilter: add ocr filter

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Wed Sep  9 13:43:35 
2015 +| [1bf7bd194bc084309abbdd0b412e70ed1961b851] | committer: Paul B Mahol

avfilter: add ocr filter

Signed-off-by: Paul B Mahol 

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

 Changelog|1 +
 configure|4 ++
 doc/filters.texi |   24 
 libavfilter/Makefile |1 +
 libavfilter/allfilters.c |1 +
 libavfilter/version.h|2 +-
 libavfilter/vf_ocr.c |  151 ++
 7 files changed, 183 insertions(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index d538c42..24d1f05 100644
--- a/Changelog
+++ b/Changelog
@@ -4,6 +4,7 @@ releases are sorted from youngest to oldest.
 version :
 - DXV decoding
 - extrastereo filter
+- ocr filter
 
 
 version 2.8:
diff --git a/configure b/configure
index 7c808c2..da18e70 100755
--- a/configure
+++ b/configure
@@ -246,6 +246,7 @@ External library support:
   --enable-libspeexenable Speex de/encoding via libspeex [no]
   --enable-libssh  enable SFTP protocol via libssh [no]
   --enable-libstagefright-h264  enable H.264 decoding via libstagefright [no]
+  --enable-libtesseractenable Tesseract, needed for ocr filter [no]
   --enable-libtheora   enable Theora encoding via libtheora [no]
   --enable-libtwolame  enable MP2 encoding via libtwolame [no]
   --enable-libutvideo  enable Ut Video encoding and decoding via 
libutvideo [no]
@@ -1409,6 +1410,7 @@ EXTERNAL_LIBRARY_LIST="
 libspeex
 libssh
 libstagefright_h264
+libtesseract
 libtheora
 libtwolame
 libutvideo
@@ -2774,6 +2776,7 @@ mptestsrc_filter_deps="gpl"
 negate_filter_deps="lut_filter"
 perspective_filter_deps="gpl"
 pp7_filter_deps="gpl"
+ocr_filter_deps="libtesseract"
 ocv_filter_deps="libopencv"
 owdenoise_filter_deps="gpl"
 pan_filter_deps="swresample"
@@ -5275,6 +5278,7 @@ enabled libspeex  && require_pkg_config speex 
speex/speex.h speex_decode
 enabled libstagefright_h264 && require_cpp libstagefright_h264 
"binder/ProcessState.h media/stagefright/MetaData.h
 media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h 
media/stagefright/MediaDefs.h
 media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" 
android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
+enabled libtesseract  && require_pkg_config tesseract tesseract/capi.h 
TessBaseAPICreate
 enabled libtheora && require libtheora theora/theoraenc.h th_info_init 
-ltheoraenc -ltheoradec -logg
 enabled libtwolame&& require libtwolame twolame.h twolame_init 
-ltwolame &&
  { check_lib twolame.h 
twolame_encode_buffer_float32_interleaved -ltwolame ||
diff --git a/doc/filters.texi b/doc/filters.texi
index 0b5d898..930129c 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -7485,6 +7485,30 @@ noise=alls=20:allf=t+u
 
 Pass the video source unchanged to the output.
 
+@section ocr
+Optical Character Recognition
+
+This filter uses Tesseract for optical character recognition.
+
+It accepts the following options:
+
+@table @option
+@item datapath
+Set datapath to tesseract data. Default is to use whatever was
+set at installation.
+
+@item language
+Set language, default is "eng".
+
+@item whitelist
+Set character whitelist.
+
+@item blacklist
+Set character blacklist.
+@end table
+
+The filter exports recognized text as the frame metadata @code{lavfi.ocr.text}.
+
 @section ocv
 
 Apply a video transform using libopencv.
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 11a8646..d3e282f 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -169,6 +169,7 @@ OBJS-$(CONFIG_NEGATE_FILTER) += vf_lut.o
 OBJS-$(CONFIG_NOFORMAT_FILTER)   += vf_format.o
 OBJS-$(CONFIG_NOISE_FILTER)  += vf_noise.o
 OBJS-$(CONFIG_NULL_FILTER)   += vf_null.o
+OBJS-$(CONFIG_OCR_FILTER)+= vf_ocr.o
 OBJS-$(CONFIG_OCV_FILTER)+= vf_libopencv.o
 OBJS-$(CONFIG_OPENCL)+= deshake_opencl.o 
unsharp_opencl.o
 OBJS-$(CONFIG_OVERLAY_FILTER)+= vf_overlay.o dualinput.o 
framesync.o
diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
index 9df2d53..639e473 100644
--- a/libavfilter/allfilters.c
+++ b/libavfilter/allfilters.c
@@ -191,6 +191,7 @@ void avfilter_register_all(void)
 REGISTER_FILTER(NOFORMAT,   noformat,   vf);
 REGISTER_FILTER(NOISE,  noise,  vf);
 REGISTER_FILTER(NULL,   null,   vf);
+REGISTER_FILTER(OCR,ocr,vf);
 REGISTER_FILTER(OCV,ocv,vf);
 REGISTER_FILTER(OVERLAY,overlay,vf);
 REGISTER_FILTER(OWDENOISE,  owdenoise,  vf);
diff --git 

Re: [FFmpeg-cvslog] [ffmpeg-web] branch master updated. f151c3e web/news: announce FFmpeg 2.8

2015-09-12 Thread Michael Niedermayer
On Thu, Sep 10, 2015 at 02:03:33PM -0800, Lou Logan wrote:
> On Thu, Sep 10, 2015, at 01:46 PM, ffmpeg-cvslog@ffmpeg.org wrote:
> [...]
> > href="https://raw.githubusercontent.com/FFmpeg/FFmpeg/release/2.8/Changelog;>changelog
> > +for a list of the most important changes.
> 
> Why was this link used instead of:
> 

the pull request used
https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog
i changed that to release/2.8 but yes it should be n2.8
feel free to change it

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch


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


[FFmpeg-cvslog] avfilter: use ff_all_channel_counts() instead of ff_all_channel_layouts()

2015-09-12 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Fri Sep 11 18:51:10 
2015 +| [494b792441622b9a3530b3cdf0a6609228a8945f] | committer: Paul B Mahol

avfilter: use ff_all_channel_counts() instead of ff_all_channel_layouts()

Fixes playback of some files with ffplay.

Signed-off-by: Paul B Mahol 

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

 libavfilter/af_adelay.c|2 +-
 libavfilter/af_aecho.c |2 +-
 libavfilter/af_afade.c |2 +-
 libavfilter/af_aphaser.c   |2 +-
 libavfilter/af_astats.c|2 +-
 libavfilter/af_biquads.c   |2 +-
 libavfilter/af_chorus.c|2 +-
 libavfilter/af_compand.c   |2 +-
 libavfilter/af_dcshift.c   |2 +-
 libavfilter/af_dynaudnorm.c|2 +-
 libavfilter/af_flanger.c   |2 +-
 libavfilter/af_ladspa.c|2 +-
 libavfilter/af_sidechaincompress.c |2 +-
 libavfilter/af_silenceremove.c |2 +-
 libavfilter/f_reverse.c|2 +-
 15 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c
index ca141ce..6bae446 100644
--- a/libavfilter/af_adelay.c
+++ b/libavfilter/af_adelay.c
@@ -66,7 +66,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_aecho.c b/libavfilter/af_aecho.c
index 8e7a39e..7e7a9d5 100644
--- a/libavfilter/af_aecho.c
+++ b/libavfilter/af_aecho.c
@@ -160,7 +160,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index c35978f..7168eba 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -70,7 +70,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_aphaser.c b/libavfilter/af_aphaser.c
index 13fe901..33ecb1a 100644
--- a/libavfilter/af_aphaser.c
+++ b/libavfilter/af_aphaser.c
@@ -96,7 +96,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c
index fa7278e..f385d2e 100644
--- a/libavfilter/af_astats.c
+++ b/libavfilter/af_astats.c
@@ -74,7 +74,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index b910687..b5b258f 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -144,7 +144,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_chorus.c b/libavfilter/af_chorus.c
index 93fb36b..2bdaca3 100644
--- a/libavfilter/af_chorus.c
+++ b/libavfilter/af_chorus.c
@@ -162,7 +162,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_compand.c b/libavfilter/af_compand.c
index 610787f..6724121 100644
--- a/libavfilter/af_compand.c
+++ b/libavfilter/af_compand.c
@@ -109,7 +109,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 return AVERROR(ENOMEM);
 ret = ff_set_common_channel_layouts(ctx, layouts);
diff --git a/libavfilter/af_dcshift.c b/libavfilter/af_dcshift.c
index eb98156..7332c12 100644
--- a/libavfilter/af_dcshift.c
+++ b/libavfilter/af_dcshift.c
@@ -61,7 +61,7 @@ static int query_formats(AVFilterContext *ctx)
 };
 int ret;
 
-layouts = ff_all_channel_layouts();
+layouts = ff_all_channel_counts();
 if (!layouts)
 

[FFmpeg-cvslog] ADPCM: Bump THP channel limit to 14

2015-09-12 Thread Rodger Combs
ffmpeg | branch: master | Rodger Combs  | Fri Sep 11 
09:04:23 2015 -0500| [3f9fa2d0b58b142b165d4a8eaa61d7e837a76838] | committer: 
Michael Niedermayer

ADPCM: Bump THP channel limit to 14

Reviewed-by: Paul B Mahol 
Signed-off-by: Michael Niedermayer 

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

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

diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 52d0d44..ba38041 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -84,7 +84,7 @@ static const int swf_index_tables[4][16] = {
 /* end of tables */
 
 typedef struct ADPCMDecodeContext {
-ADPCMChannelStatus status[10];
+ADPCMChannelStatus status[14];
 int vqa_version;/**< VQA version. Used for ADPCM_IMA_WS */
 int has_status;
 } ADPCMDecodeContext;
@@ -109,7 +109,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
 break;
 case AV_CODEC_ID_ADPCM_THP:
 case AV_CODEC_ID_ADPCM_THP_LE:
-max_channels = 10;
+max_channels = 14;
 break;
 }
 if (avctx->channels < min_channels || avctx->channels > max_channels) {
@@ -1431,7 +1431,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void 
*data,
 case AV_CODEC_ID_ADPCM_THP:
 case AV_CODEC_ID_ADPCM_THP_LE:
 {
-int table[10][16];
+int table[14][16];
 int ch;
 
 #define THP_GET16(g) \

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


[FFmpeg-cvslog] avformat/mpjpegdec: Allow mpjpeg headers parsing to succeed upon EOF, if required headers are present

2015-09-12 Thread Alex Agranovsky
ffmpeg | branch: master | Alex Agranovsky  | Sat Sep 12 
20:34:14 2015 -0400| [276ab7c148b98ac44017ff39a8e525a1516a440e] | committer: 
Michael Niedermayer

avformat/mpjpegdec: Allow mpjpeg headers parsing to succeed upon EOF, if 
required headers are present

Signed-off-by: Michael Niedermayer 

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

 libavformat/mpjpegdec.c |5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c
index b8281fc..b94d088 100644
--- a/libavformat/mpjpegdec.c
+++ b/libavformat/mpjpegdec.c
@@ -164,8 +164,11 @@ static int parse_multipart_header(AVFormatContext *s)
 char *tag, *value;
 
 ret = get_line(s->pb, line, sizeof(line));
-if (ret < 0)
+if (ret < 0) {
+if (ret==AVERROR_EOF)
+break;
 return ret;
+}
 
 if (line[0] == '\0')
 break;

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


[FFmpeg-cvslog] Merge commit 'e336c51e6ffcdb93fbcf3c6153d378400608526b'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
12:54:25 2015 +0200| [ba42096d9acb73cc9b74685bf822a3180d96bab5] | committer: 
Hendrik Leppkes

Merge commit 'e336c51e6ffcdb93fbcf3c6153d378400608526b'

* commit 'e336c51e6ffcdb93fbcf3c6153d378400608526b':
  pixdesc: Consistently order components

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] pixdesc: Consistently order components

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Wed Sep  9 
12:56:48 2015 +0200| [e336c51e6ffcdb93fbcf3c6153d378400608526b] | committer: 
Luca Barbato

pixdesc: Consistently order components

Ensure that the components are ordered consistently, ie. always
RGB(A) and YUV(A). This allows to identify a specific plane on a given
pixel format without hard-coding knowledge of the plane order.

Signed-off-by: Luca Barbato 

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

 libavutil/pixdesc.c |  100 +--
 1 file changed, 50 insertions(+), 50 deletions(-)

diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 5cd7b32..7989c4a 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -160,8 +160,8 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_h = 0,
 .comp = {
 { 0, 2, 0, 0, 8, 1, 7, 1 },/* Y */
-{ 0, 4, 1, 0, 8, 3, 7, 2 },/* V */
 { 0, 4, 3, 0, 8, 3, 7, 4 },/* U */
+{ 0, 4, 1, 0, 8, 3, 7, 2 },/* V */
 },
 },
 [AV_PIX_FMT_RGB24] = {
@@ -182,9 +182,9 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 3, 0, 0, 8, 2, 7, 1 },/* B */
-{ 0, 3, 1, 0, 8, 2, 7, 2 },/* G */
 { 0, 3, 2, 0, 8, 2, 7, 3 },/* R */
+{ 0, 3, 1, 0, 8, 2, 7, 2 },/* G */
+{ 0, 3, 0, 0, 8, 2, 7, 1 },/* B */
 },
 .flags = AV_PIX_FMT_FLAG_RGB,
 },
@@ -351,9 +351,9 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 1, 0, 6, 2, 0, 1, 1 },/* B */
-{ 0, 1, 0, 3, 3, 0, 2, 1 },/* G */
 { 0, 1, 0, 0, 3, 0, 2, 1 },/* R */
+{ 0, 1, 0, 3, 3, 0, 2, 1 },/* G */
+{ 0, 1, 0, 6, 2, 0, 1, 1 },/* B */
 },
 .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
 },
@@ -363,9 +363,9 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 4, 0, 0, 1, 3, 0, 1 },/* B */
-{ 0, 4, 1, 0, 2, 3, 1, 2 },/* G */
 { 0, 4, 3, 0, 1, 3, 0, 4 },/* R */
+{ 0, 4, 1, 0, 2, 3, 1, 2 },/* G */
+{ 0, 4, 0, 0, 1, 3, 0, 1 },/* B */
 },
 .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB,
 },
@@ -375,9 +375,9 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 1, 0, 3, 1, 0, 0, 1 },/* B */
-{ 0, 1, 0, 1, 2, 0, 1, 1 },/* G */
 { 0, 1, 0, 0, 1, 0, 0, 1 },/* R */
+{ 0, 1, 0, 1, 2, 0, 1, 1 },/* G */
+{ 0, 1, 0, 3, 1, 0, 0, 1 },/* B */
 },
 .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
 },
@@ -436,8 +436,8 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_h = 1,
 .comp = {
 { 0, 1, 0, 0, 8, 0, 7, 1 },/* Y */
-{ 1, 2, 0, 0, 8, 1, 7, 1 },/* V */
 { 1, 2, 1, 0, 8, 1, 7, 2 },/* U */
+{ 1, 2, 0, 0, 8, 1, 7, 1 },/* V */
 },
 .flags = AV_PIX_FMT_FLAG_PLANAR,
 },
@@ -447,10 +447,10 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 4, 0, 0, 8, 3, 7, 1 },/* A */
 { 0, 4, 1, 0, 8, 3, 7, 2 },/* R */
 { 0, 4, 2, 0, 8, 3, 7, 3 },/* G */
 { 0, 4, 3, 0, 8, 3, 7, 4 },/* B */
+{ 0, 4, 0, 0, 8, 3, 7, 1 },/* A */
 },
 .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
 },
@@ -473,10 +473,10 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 .log2_chroma_w = 0,
 .log2_chroma_h = 0,
 .comp = {
-{ 0, 4, 0, 0, 8, 3, 7, 1 },/* A */
-{ 0, 4, 1, 0, 8, 3, 7, 2 },/* B */
-{ 0, 4, 2, 0, 8, 3, 7, 3 },/* G */
 { 0, 4, 3, 0, 8, 3, 7, 4 },/* R */
+{ 0, 4, 2, 0, 8, 3, 7, 3 },/* G */
+{ 0, 4, 1, 0, 8, 3, 7, 2 },/* B */
+{ 0, 4, 0, 0, 8, 3, 7, 1 },/* A */
 },
 .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
 },
@@ 

[FFmpeg-cvslog] pixdesc: Document the component order

2015-09-12 Thread Luca Barbato
ffmpeg | branch: master | Luca Barbato  | Thu Sep 10 
05:02:47 2015 +0200| [7b02cb29d9d60cdd5ef321043d11d02023e7dc8f] | committer: 
Luca Barbato

pixdesc: Document the component order

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

 libavutil/pixdesc.h |7 +++
 1 file changed, 7 insertions(+)

diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
index ea84fd3..fe06d94 100644
--- a/libavutil/pixdesc.h
+++ b/libavutil/pixdesc.h
@@ -108,6 +108,13 @@ typedef struct AVPixFmtDescriptor {
  * Parameters that describe how pixels are packed. If the format
  * has chroma components, they must be stored in comp[1] and
  * comp[2].
+ * If the format is RGB-like, the first component is R, followed
+ * by G and B.
+ *
+ * If the format is YUV-like, the first component is Y, followed
+ * by U and V.
+ *
+ * If present, the Alpha channel is always the last component.
  */
 AVComponentDescriptor comp[4];
 

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


[FFmpeg-cvslog] Merge commit '7b02cb29d9d60cdd5ef321043d11d02023e7dc8f'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:03:04 2015 +0200| [eadf6cb2c4e80304d9e18672bf5f5359a676deb2] | committer: 
Hendrik Leppkes

Merge commit '7b02cb29d9d60cdd5ef321043d11d02023e7dc8f'

* commit '7b02cb29d9d60cdd5ef321043d11d02023e7dc8f':
  pixdesc: Document the component order

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit '9b5a4a9cce3042558e107ae1ed30d9bf3d867a35'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:14:26 2015 +0200| [c0746716215b0feb8d64ca819af5ee780087984a] | committer: 
Hendrik Leppkes

Merge commit '9b5a4a9cce3042558e107ae1ed30d9bf3d867a35'

* commit '9b5a4a9cce3042558e107ae1ed30d9bf3d867a35':
  mmvideo: Make sure the rle does not write over the frame boundaries

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] mmvideo: Make sure the rle does not write over the frame boundaries

2015-09-12 Thread Luca Barbato
ffmpeg | branch: master | Luca Barbato  | Thu Sep 10 
14:46:05 2015 +0200| [9b5a4a9cce3042558e107ae1ed30d9bf3d867a35] | committer: 
Luca Barbato

mmvideo: Make sure the rle does not write over the frame boundaries

Bug-Id: 887
CC: libav-sta...@libav.org

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

 libavcodec/mmvideo.c |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavcodec/mmvideo.c b/libavcodec/mmvideo.c
index f8adcdd..0736630 100644
--- a/libavcodec/mmvideo.c
+++ b/libavcodec/mmvideo.c
@@ -99,7 +99,8 @@ static int mm_decode_intra(MmContext * s, int half_horiz, int 
half_vert)
 while (bytestream2_get_bytes_left(>gb) > 0) {
 int run_length, color;
 
-if (y >= s->avctx->height)
+// writes one more line when half_vert is true
+if (y >= s->avctx->height + !!half_vert)
 return 0;
 
 color = bytestream2_get_byte(>gb);
@@ -113,6 +114,9 @@ static int mm_decode_intra(MmContext * s, int half_horiz, 
int half_vert)
 if (half_horiz)
 run_length *=2;
 
+if (s->avctx->width - x < run_length)
+return AVERROR_INVALIDDATA;
+
 if (color) {
 memset(s->frame->data[0] + y*s->frame->linesize[0] + x, color, 
run_length);
 if (half_vert)

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


[FFmpeg-cvslog] jpeg2000: Do not warn about known and skippable markers

2015-09-12 Thread Luca Barbato
ffmpeg | branch: master | Luca Barbato  | Fri Sep 11 
03:00:36 2015 +0200| [db53a2306f62f05faa67e6f3c60ee55a9b8e4776] | committer: 
Luca Barbato

jpeg2000: Do not warn about known and skippable markers

Matches the openjpeg behaviour.

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

 libavcodec/jpeg2000dec.c |4 
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 6946975..f5d5daf 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1290,6 +1290,10 @@ static int 
jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
 properties = s->tile[s->curtileno].properties;
 }
 break;
+case JPEG2000_PLT:
+// the PLT marker is ignored
+case JPEG2000_PLM:
+// the PLM marker is ignored
 case JPEG2000_COM:
 // the comment is ignored
 bytestream2_skip(>g, len - 2);

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


[FFmpeg-cvslog] Merge commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:16:13 2015 +0200| [6e611a18390690375a60392061fb6177ef24c7a8] | committer: 
Hendrik Leppkes

Merge commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776'

* commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776':
  jpeg2000: Do not warn about known and skippable markers

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] pixdesc: Add missing alpha flag for yuva420p9be

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Wed Sep  9 
12:56:49 2015 +0200| [c7ed26ad6035793c7212c17545b0ded18b72db69] | committer: 
Luca Barbato

pixdesc: Add missing alpha flag for yuva420p9be

Signed-off-by: Luca Barbato 

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

 libavutil/pixdesc.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 7989c4a..029291a 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -588,7 +588,7 @@ static const AVPixFmtDescriptor 
av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
 { 2, 2, 0, 0, 9, 1, 8, 1 },/* V */
 { 3, 2, 0, 0, 9, 1, 8, 1 },/* A */
 },
-.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
+.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
AV_PIX_FMT_FLAG_ALPHA,
 },
 [AV_PIX_FMT_YUVA420P9LE] = {
 .name = "yuva420p9le",

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


[FFmpeg-cvslog] vp9: re-initialize internal buffers on bpp change also.

2015-09-12 Thread Ronald S. Bultje
ffmpeg | branch: master | Ronald S. Bultje  | Fri Sep 11 
13:24:48 2015 -0400| [2563a33856eb597c9d53b4c7cab07b6f18417740] | committer: 
Ronald S. Bultje

vp9: re-initialize internal buffers on bpp change also.

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

 libavcodec/vp9.c |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index fcdd6e1..c605c08 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -4319,7 +4319,8 @@ static int 
vp9_decode_update_thread_context(AVCodecContext *dst, const AVCodecCo
 
 // detect size changes in other threads
 if (s->intra_pred_data[0] &&
-(!ssrc->intra_pred_data[0] || s->cols != ssrc->cols || s->rows != 
ssrc->rows)) {
+(!ssrc->intra_pred_data[0] || s->cols != ssrc->cols ||
+ s->rows != ssrc->rows || s->bpp != ssrc->bpp)) {
 free_buffers(s);
 }
 

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


[FFmpeg-cvslog] vp9: Fix emu[] edge overflow conditions for >8bpp/non-420.

2015-09-12 Thread Ronald S. Bultje
ffmpeg | branch: master | Ronald S. Bultje  | Fri Sep 11 
13:59:17 2015 -0400| [a30a8beeb3dc44b666d0e1aefbd823752f321ac1] | committer: 
Ronald S. Bultje

vp9: Fix emu[] edge overflow conditions for >8bpp/non-420.

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

 libavcodec/vp9.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index c605c08..a357a5f 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -3301,9 +3301,9 @@ static void decode_b(AVCodecContext *ctx, int row, int 
col,
 // emulated overhangs if the stride of the target buffer can't hold. This
 // makes it possible to support emu-edge and so on even if we have large 
block
 // overhangs
-emu[0] = (col + w4) * 8 > f->linesize[0] ||
+emu[0] = (col + w4) * 8 * bytesperpixel > f->linesize[0] ||
  (row + h4) > s->rows;
-emu[1] = (col + w4) * 4 > f->linesize[1] ||
+emu[1] = ((col + w4) * 8 >> s->ss_h) * bytesperpixel > f->linesize[1] ||
  (row + h4) > s->rows;
 if (emu[0]) {
 s->dst[0] = s->tmp_y;

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


[FFmpeg-cvslog] ogg: Do not try to use the parser if it is not present

2015-09-12 Thread Luca Barbato
ffmpeg | branch: master | Luca Barbato  | Thu Sep 10 
14:11:43 2015 +0200| [41ed749fe987e60b0485fa721ad869590651324d] | committer: 
Luca Barbato

ogg: Do not try to use the parser if it is not present

Bug-Id: 886
CC: libav-sta...@libav.org

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

 libavformat/oggparsevorbis.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index aac0f0e..519a0a7 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -364,6 +364,9 @@ static int vorbis_packet(AVFormatContext *s, int idx)
 struct oggvorbis_private *priv = os->private;
 int duration;
 
+if (!priv->vp)
+return AVERROR_INVALIDDATA;
+
 /* first packet handling
  * here we parse the duration of each packet in the first page and compare
  * the total duration to the page granule to find the encoder delay and

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


[FFmpeg-cvslog] Merge commit '41ed749fe987e60b0485fa721ad869590651324d'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:05:01 2015 +0200| [09c15eac3e8c394531edf4aa8f4fd880e77d07e6] | committer: 
Hendrik Leppkes

Merge commit '41ed749fe987e60b0485fa721ad869590651324d'

* commit '41ed749fe987e60b0485fa721ad869590651324d':
  ogg: Do not try to use the parser if it is not present

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit '5788623d29c3e806a7879210986110aced758dc2'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:25:38 2015 +0200| [84d04a0dfa05d170d54585aec8d1ad19cca12410] | committer: 
Hendrik Leppkes

Merge commit '5788623d29c3e806a7879210986110aced758dc2'

* commit '5788623d29c3e806a7879210986110aced758dc2':
  jpeg2000: Split codeblock decoding from the main tile decoding

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] jpeg2000: Split codeblock decoding from the main tile decoding

2015-09-12 Thread Luca Barbato
ffmpeg | branch: master | Luca Barbato  | Fri Sep 11 
18:19:39 2015 +0200| [5788623d29c3e806a7879210986110aced758dc2] | committer: 
Luca Barbato

jpeg2000: Split codeblock decoding from the main tile decoding

That loop is completely stand-alone.

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

 libavcodec/jpeg2000dec.c |   19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index f5d5daf..2aea844 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1060,14 +1060,12 @@ static inline void mct_decode(Jpeg2000DecoderContext 
*s, Jpeg2000Tile *tile)
 s->dsp.mct_decode[tile->codsty[0].transform](src[0], src[1], src[2], 
csize);
 }
 
-static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile,
-AVFrame *picture)
+static void tile_codeblocks(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile)
 {
+Jpeg2000T1Context t1;
+
 int compno, reslevelno, bandno;
-int x, y;
 
-uint8_t *line;
-Jpeg2000T1Context t1;
 /* Loop on tile components */
 
 for (compno = 0; compno < s->ncomponents; compno++) {
@@ -1116,6 +1114,17 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext 
*s, Jpeg2000Tile *tile,
 /* inverse DWT */
 ff_dwt_decode(>dwt, codsty->transform == FF_DWT97 ? 
(void*)comp->f_data : (void*)comp->i_data);
 } /*end comp */
+}
+
+static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile,
+AVFrame *picture)
+{
+int compno;
+int x, y;
+
+uint8_t *line;
+
+tile_codeblocks(s, tile);
 
 /* inverse MCT transformation */
 if (tile->codsty[0].mct)

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


[FFmpeg-cvslog] lavc: allow asynchronous decoders to return correct pkt_dts values

2015-09-12 Thread wm4
ffmpeg | branch: master | wm4  | Fri Sep 11 18:36:56 
2015 +0200| [87a051f97633010f71dfc1d23d806856499bf231] | committer: Luca Barbato

lavc: allow asynchronous decoders to return correct pkt_dts values

The generic code in utils.c sets the AVFrame.pkt_dts field from the
packet it was supposedly decoded. This does not have to be true for a
fully asynchronous decoder like mmaldec. It could be overwritten with an
incorrect value. Even if the decoder doesn't determine the DTS (but sets
it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
utils.c.

Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
utils.c won't overwrite the field. The decoders are expected to set this
field (even if they only set it to AV_NOPTS_VALUE).

Signed-off-by: Luca Barbato 

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

 libavcodec/internal.h |8 +++-
 libavcodec/mmaldec.c  |1 +
 libavcodec/utils.c|3 ++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index fc90632..500511d 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -46,7 +46,13 @@
  * all.
  */
 #define FF_CODEC_CAP_INIT_CLEANUP   (1 << 1)
-
+/**
+ * Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set
+ * AVFrame.pkt_dts manually. If the flag is set, utils.c won't overwrite
+ * this field. If it's unset, utils.c tries to guess the pkt_dts field
+ * from the input AVPacket.
+ */
+#define FF_CODEC_CAP_SETS_PKT_DTS   (1 << 2)
 
 #ifdef DEBUG
 #   define ff_dlog(ctx, ...) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__)
diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index f4bf921..a23a97f 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -792,6 +792,7 @@ AVCodec ff_h264_mmal_decoder = {
 .flush  = ffmmal_flush,
 .priv_class = _class,
 .capabilities   = AV_CODEC_CAP_DELAY,
+.caps_internal  = FF_CODEC_CAP_SETS_PKT_DTS,
 .pix_fmts   = (const enum AVPixelFormat[]) { AV_PIX_FMT_MMAL,
  AV_PIX_FMT_YUV420P,
  AV_PIX_FMT_NONE},
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 1d718b2..a94e4a6 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1482,7 +1482,8 @@ int attribute_align_arg 
avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
 else {
 ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
avpkt);
-picture->pkt_dts = avpkt->dts;
+if (!(avctx->codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS))
+picture->pkt_dts = avpkt->dts;
 /* get_buffer is supposed to set frame parameters */
 if (!(avctx->codec->capabilities & AV_CODEC_CAP_DR1)) {
 picture->sample_aspect_ratio = avctx->sample_aspect_ratio;

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


[FFmpeg-cvslog] mmaldec: fix pkt_dts determination

2015-09-12 Thread wm4
ffmpeg | branch: master | wm4  | Tue Sep  8 19:42:26 
2015 +0200| [99404597201911de90cff2ef85f2d44176d39147] | committer: Luca Barbato

mmaldec: fix pkt_dts determination

This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.

It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.

Signed-off-by: Luca Barbato 

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

 libavcodec/mmaldec.c |6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index a23a97f..1099129 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -621,10 +621,8 @@ static int ffmal_copy_frame(AVCodecContext *avctx,  
AVFrame *frame,
 }
 }
 
-if (buffer->pts != MMAL_TIME_UNKNOWN) {
-frame->pkt_pts = buffer->pts;
-frame->pts = buffer->pts;
-}
+frame->pkt_pts = buffer->pts == MMAL_TIME_UNKNOWN ? AV_NOPTS_VALUE : 
buffer->pts;
+frame->pkt_dts = AV_NOPTS_VALUE;
 
 done:
 return ret;

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


[FFmpeg-cvslog] Merge commit '6b652c0273d79f2e0c52ad91450bd0737cf3c8a6'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:29:16 2015 +0200| [45ae2997858d408b140d0f785dbb0f09369b7367] | committer: 
Hendrik Leppkes

Merge commit '6b652c0273d79f2e0c52ad91450bd0737cf3c8a6'

* commit '6b652c0273d79f2e0c52ad91450bd0737cf3c8a6':
  mmaldec: fix problems with flush logic

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit '87a051f97633010f71dfc1d23d806856499bf231'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:30:33 2015 +0200| [264ff3dd2e5c0ca9963809730cb95614251b39d5] | committer: 
Hendrik Leppkes

Merge commit '87a051f97633010f71dfc1d23d806856499bf231'

* commit '87a051f97633010f71dfc1d23d806856499bf231':
  lavc: allow asynchronous decoders to return correct pkt_dts values

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] mmaldec: hack against buffering problems on broken input

2015-09-12 Thread wm4
ffmpeg | branch: master | wm4  | Tue Sep  8 19:42:22 
2015 +0200| [b84675d63aaede8f6944b901250a10456c5477e6] | committer: Luca Barbato

mmaldec: hack against buffering problems on broken input

I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.

Signed-off-by: Luca Barbato 

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

 libavcodec/mmaldec.c |   15 ---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index 64e5da6..374bd2f 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -644,12 +644,21 @@ static int ffmmal_read_frame(AVCodecContext *avctx, 
AVFrame *frame, int *got_fra
 // We also wait if we sent eos, but didn't receive it yet (think of 
decoding
 // stream with a very low number of frames).
 if (ctx->frames_output || ctx->packets_sent > MAX_DELAYED_FRAMES || 
ctx->eos_sent) {
-buffer = mmal_queue_wait(ctx->queue_decoded_frames);
+// MMAL will ignore broken input packets, which means the frame we
+// expect here may never arrive. Dealing with this correctly is
+// complicated, so here's a hack to avoid that it freezes forever
+// in this unlikely situation.
+buffer = mmal_queue_timedwait(ctx->queue_decoded_frames, 100);
+if (!buffer) {
+av_log(avctx, AV_LOG_ERROR, "Did not get output frame from 
MMAL.\n");
+ret = AVERROR_UNKNOWN;
+goto done;
+}
 } else {
 buffer = mmal_queue_get(ctx->queue_decoded_frames);
+if (!buffer)
+goto done;
 }
-if (!buffer)
-goto done;
 
 ctx->eos_received |= !!(buffer->flags & MMAL_BUFFER_HEADER_FLAG_EOS);
 if (ctx->eos_received)

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


[FFmpeg-cvslog] Merge commit 'b84675d63aaede8f6944b901250a10456c5477e6'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:29:10 2015 +0200| [886f0f5ff1e467f81063d7d9e46afdea4f3ceae0] | committer: 
Hendrik Leppkes

Merge commit 'b84675d63aaede8f6944b901250a10456c5477e6'

* commit 'b84675d63aaede8f6944b901250a10456c5477e6':
  mmaldec: hack against buffering problems on broken input

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] mmaldec: fix problems with flush logic

2015-09-12 Thread wm4
ffmpeg | branch: master | wm4  | Tue Sep  8 19:42:23 
2015 +0200| [6b652c0273d79f2e0c52ad91450bd0737cf3c8a6] | committer: Luca Barbato

mmaldec: fix problems with flush logic

Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.

Signed-off-by: Luca Barbato 

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

 libavcodec/mmaldec.c |   13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index 374bd2f..5692f50 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -447,8 +447,6 @@ static int ffmmal_add_packet(AVCodecContext *avctx, 
AVPacket *avpkt)
 uint8_t *start;
 int ret = 0;
 
-ctx->packets_sent++;
-
 if (avpkt->size) {
 if (ctx->bsfc) {
 uint8_t *tmp_data;
@@ -474,6 +472,14 @@ static int ffmmal_add_packet(AVCodecContext *avctx, 
AVPacket *avpkt)
 }
 size = buf->size;
 data = buf->data;
+ctx->packets_sent++;
+} else {
+if (!ctx->packets_sent) {
+// Short-cut the flush logic to avoid upsetting MMAL.
+ctx->eos_sent = 1;
+ctx->eos_received = 1;
+goto done;
+}
 }
 
 start = data;
@@ -643,7 +649,8 @@ static int ffmmal_read_frame(AVCodecContext *avctx, AVFrame 
*frame, int *got_fra
 // excessive buffering.
 // We also wait if we sent eos, but didn't receive it yet (think of 
decoding
 // stream with a very low number of frames).
-if (ctx->frames_output || ctx->packets_sent > MAX_DELAYED_FRAMES || 
ctx->eos_sent) {
+if (ctx->frames_output || ctx->packets_sent > MAX_DELAYED_FRAMES ||
+(ctx->packets_sent && ctx->eos_sent)) {
 // MMAL will ignore broken input packets, which means the frame we
 // expect here may never arrive. Dealing with this correctly is
 // complicated, so here's a hack to avoid that it freezes forever

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


[FFmpeg-cvslog] Merge commit '1e0b8bf0b3b3b4247fb21e9839af342ae879607c'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:31:22 2015 +0200| [33be39efe31326dc787efc54f5077e4c4b97896c] | committer: 
Hendrik Leppkes

Merge commit '1e0b8bf0b3b3b4247fb21e9839af342ae879607c'

* commit '1e0b8bf0b3b3b4247fb21e9839af342ae879607c':
  travis: fix dependencies

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:29:29 2015 +0200| [30fb54c23f520c4bd1f6563ea1821de96b8f4a17] | committer: 
Hendrik Leppkes

Merge commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb'

* commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb':
  mmaldec: disable timestamp interpolation

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit '99404597201911de90cff2ef85f2d44176d39147'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
13:30:41 2015 +0200| [e75b2e9c4b91ba9056768e343956d37169445685] | committer: 
Hendrik Leppkes

Merge commit '99404597201911de90cff2ef85f2d44176d39147'

* commit '99404597201911de90cff2ef85f2d44176d39147':
  mmaldec: fix pkt_dts determination

Merged-by: Hendrik Leppkes 

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



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


Re: [FFmpeg-cvslog] aacenc_tns: readjust values for new TNS decision making

2015-09-12 Thread Robert Krüger
On Sat, Sep 12, 2015 at 2:19 PM, Rostislav Pehlivanov 
wrote:

> ffmpeg | branch: master | Rostislav Pehlivanov  |
> Sat Sep 12 13:15:02 2015 +0100| [3381d92671092779d40b2b7b55a595ac2fe5d474]
> | committer: Rostislav Pehlivanov
>
> aacenc_tns: readjust values for new TNS decision making
>
> Since TNS was fixed with the recent commits retweak the values
> so it's more frequently used.
> Still not enabled by default yet, though it's possible that it
> will be made enabled by default in the near future.
>

sorry, a bit off-topic but how is this enabled now? I didn't find anything
in the docs.
___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] aacenc_tns: redo coefficient quantization and decision making

2015-09-12 Thread Rostislav Pehlivanov
ffmpeg | branch: master | Rostislav Pehlivanov  | Sat Sep 
12 13:04:27 2015 +0100| [a83a8d70681a7093ff4bd8232b8f75fed3d6af48] | committer: 
Rostislav Pehlivanov

aacenc_tns: redo coefficient quantization and decision making

This finally (and again) gets rid of basically everything the
specifications say about how TNS should be done. The main
problem used to be that a single filter was used for all
coefficients which despite being explicitly recommended by
the specifications usually sounds wrong, therefore it's
a corner case in the current TNS implementation.

This commit also changes the coefficient bit size, as apparently
it's better to use lower precision in case the windows are eight
short. This is apparently what fdk_aac uses, looking at the bit
stream and makes sense. Also the order when 8 SHORT windows happen
is important as 7 was too much and according to PSNR was worse
while 5 is just about correct.

Signed-off-by: Rostislav Pehlivanov 

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

 libavcodec/aacenc_tns.c |   60 +++
 libavcodec/aacenc_tns.h |3 +++
 2 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/libavcodec/aacenc_tns.c b/libavcodec/aacenc_tns.c
index 637b813..da353d6 100644
--- a/libavcodec/aacenc_tns.c
+++ b/libavcodec/aacenc_tns.c
@@ -67,20 +67,6 @@ void ff_aac_encode_tns_info(AACEncContext *s, 
SingleChannelElement *sce)
 }
 }
 
-static inline void quantize_coefs(double *coef, int *idx, float *lpc, int 
order)
-{
-int i;
-uint8_t u_coef;
-const float *quant_arr = tns_tmp2_map[TNS_Q_BITS == 4];
-const double iqfac_p = ((1 << (TNS_Q_BITS-1)) - 0.5)/(M_PI/2.0);
-const double iqfac_m = ((1 << (TNS_Q_BITS-1)) + 0.5)/(M_PI/2.0);
-for (i = 0; i < order; i++) {
-idx[i] = ceilf(asin(coef[i])*((coef[i] >= 0) ? iqfac_p : iqfac_m));
-u_coef = (idx[i])&(~(~0<tns;
 int w, w2, g, count = 0;
 const int mmm = FFMIN(sce->ics.tns_max_bands, sce->ics.max_sfb);
 const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
-const int order = is8 ? 7 : s->profile == FF_PROFILE_AAC_LOW ? 12 : 
TNS_MAX_ORDER;
+const int c_bits = is8 ? TNS_Q_BITS_SHORT == 4 : TNS_Q_BITS == 4;
 
 int sfb_start = av_clip(tns_min_sfb[is8][s->samplerate_index], 0, mmm);
 int sfb_end   = av_clip(sce->ics.num_swb, 0, mmm);
 
 for (w = 0; w < sce->ics.num_windows; w++) {
-float e_ratio = 0.0f, threshold = 0.0f, spread = 0.0f, en[2] = {0.0, 
0.0f};
-double gain = 0.0f, coefs[MAX_LPC_ORDER] = {0};
+int use_tns;
+int order = is8 ? 5 : s->profile == FF_PROFILE_AAC_LOW ? 12 : 
TNS_MAX_ORDER;
 int coef_start = w*sce->ics.num_swb + sce->ics.swb_offset[sfb_start];
 int coef_len = sce->ics.swb_offset[sfb_end] - 
sce->ics.swb_offset[sfb_start];
+float e_ratio = 0.0f, threshold = 0.0f, spread = 0.0f, en[2] = {0.0, 
0.0f};
+double gain = 0.0f, coefs[MAX_LPC_ORDER] = {0};
 
 for (g = 0;  g < sce->ics.num_swb; g++) {
 if (w*16+g < sfb_start || w*16+g > sfb_end)
@@ -149,22 +154,26 @@ void ff_aac_search_for_tns(AACEncContext *s, 
SingleChannelElement *sce)
 else
 en[0] += band->energy;
 threshold += band->threshold;
-spread += band->spread;
+spread+= band->spread;
 }
 }
 
 if (coef_len <= 0 || (sfb_end - sfb_start) <= 0)
 continue;
-else
-e_ratio = en[0]/en[1];
 
 /* LPC */
 gain = ff_lpc_calc_ref_coefs_f(>lpc, >coeffs[coef_start],
coef_len, order, coefs);
 
-if (gain > TNS_GAIN_THRESHOLD_LOW && gain < TNS_GAIN_THRESHOLD_HIGH &&
-(en[0]+en[1]) > TNS_GAIN_THRESHOLD_LOW*threshold &&
-spread < TNS_SPREAD_THRESHOLD && order) {
+if (!order || gain < TNS_GAIN_THRESHOLD_LOW || gain > 
TNS_GAIN_THRESHOLD_HIGH)
+use_tns = 0;
+else if 

[FFmpeg-cvslog] aacenc_tns: encode coefficients directly and reenable compression

2015-09-12 Thread Rostislav Pehlivanov
ffmpeg | branch: master | Rostislav Pehlivanov  | Sat Sep 
12 13:10:28 2015 +0100| [7b7866387bab1d343d17d49b5470dd93a649a61b] | committer: 
Rostislav Pehlivanov

aacenc_tns: encode coefficients directly and reenable compression

This commit was made possible with the earlier commits since the
new quantization method basically means we're working always with
unsigned values. The specifications mention to use compression when
the first 2 bits are identical but they didn't mention if this should
happen before or after the conversion to signed values. Actually
they said nothing about conversion to signed values.

With this commit, coefficient compression usually always happens
which saves a lot of space, especially at extremely low bitrates
and doesn't change the quality at all.

Signed-off-by: Rostislav Pehlivanov 

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

 libavcodec/aacenc_tns.c |   33 +
 1 file changed, 25 insertions(+), 8 deletions(-)

diff --git a/libavcodec/aacenc_tns.c b/libavcodec/aacenc_tns.c
index da353d6..8e0a00f 100644
--- a/libavcodec/aacenc_tns.c
+++ b/libavcodec/aacenc_tns.c
@@ -31,17 +31,34 @@
 #include "aacenc_utils.h"
 #include "aacenc_quantization.h"
 
+/*
+ * Shifts the values as well if compression is possible.
+ */
+static inline int compress_coeffs(int *coef, int order, int c_bits)
+{
+int i, res = 0;
+const int low_idx   = c_bits ?  4 : 2;
+const int shift_val = c_bits ?  8 : 4;
+const int high_idx  = c_bits ? 11 : 5;
+for (i = 0; i < order; i++)
+if (coef[i] < low_idx && coef[i] > high_idx)
+res++;
+if (res == order)
+for (i = 0; i < order; i++)
+coef[i] -= (coef[i] > high_idx) ? shift_val : 0;
+return res == order;
+}
+
 /**
  * Encode TNS data.
  * Coefficient compression saves a single bit per coefficient.
  */
 void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce)
 {
-uint8_t u_coef;
-const uint8_t coef_res = TNS_Q_BITS == 4;
 int i, w, filt, coef_len, coef_compress = 0;
 const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
 TemporalNoiseShaping *tns = >tns;
+const int c_bits = is8 ? TNS_Q_BITS_SHORT == 4 : TNS_Q_BITS == 4;
 
 if (!sce->tns.present)
 return;
@@ -49,18 +66,18 @@ void ff_aac_encode_tns_info(AACEncContext *s, 
SingleChannelElement *sce)
 for (i = 0; i < sce->ics.num_windows; i++) {
 put_bits(>pb, 2 - is8, sce->tns.n_filt[i]);
 if (tns->n_filt[i]) {
-put_bits(>pb, 1, coef_res);
+put_bits(>pb, 1, c_bits);
 for (filt = 0; filt < tns->n_filt[i]; filt++) {
 put_bits(>pb, 6 - 2 * is8, tns->length[i][filt]);
 put_bits(>pb, 5 - 2 * is8, tns->order[i][filt]);
 if (tns->order[i][filt]) {
+coef_compress = compress_coeffs(tns->coef_idx[i][filt],
+tns->order[i][filt], 
c_bits);
 put_bits(>pb, 1, !!tns->direction[i][filt]);
 put_bits(>pb, 1, !!coef_compress);
-coef_len = coef_res + 3 - coef_compress;
-for (w = 0; w < tns->order[i][filt]; w++) {
-u_coef = (tns->coef_idx[i][filt][w])&(~(~0<pb, coef_len, u_coef);
-}
+coef_len = c_bits + 3 - coef_compress;
+for (w = 0; w < tns->order[i][filt]; w++)
+put_bits(>pb, coef_len, tns->coef_idx[i][filt][w]);
 }
 }
 }

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


[FFmpeg-cvslog] aacenc_tns: readjust values for new TNS decision making

2015-09-12 Thread Rostislav Pehlivanov
ffmpeg | branch: master | Rostislav Pehlivanov  | Sat Sep 
12 13:15:02 2015 +0100| [3381d92671092779d40b2b7b55a595ac2fe5d474] | committer: 
Rostislav Pehlivanov

aacenc_tns: readjust values for new TNS decision making

Since TNS was fixed with the recent commits retweak the values
so it's more frequently used.
Still not enabled by default yet, though it's possible that it
will be made enabled by default in the near future.

Signed-off-by: Rostislav Pehlivanov 

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

 libavcodec/aacenc_tns.h |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/aacenc_tns.h b/libavcodec/aacenc_tns.h
index 46e4794..a7c119f 100644
--- a/libavcodec/aacenc_tns.h
+++ b/libavcodec/aacenc_tns.h
@@ -37,8 +37,8 @@
 #define TNS_Q_BITS_SHORT 3
 
 /* TNS will only be used if the LPC gain is within these margins */
-#define TNS_GAIN_THRESHOLD_LOW  1.395f
-#define TNS_GAIN_THRESHOLD_HIGH 11.19f
+#define TNS_GAIN_THRESHOLD_LOW  1.437f
+#define TNS_GAIN_THRESHOLD_HIGH 21.19f
 
 /* If the energy ratio between the low SFBs vs the high SFBs is not between
  * those two values, use 2 filters instead */
@@ -46,7 +46,7 @@
 #define TNS_E_RATIO_HIGH 1.23
 
 /* Do not use TNS if the psy band spread is below this value */
-#define TNS_SPREAD_THRESHOLD 37.081512f
+#define TNS_SPREAD_THRESHOLD 0.5f
 
 void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce);
 void ff_aac_apply_tns(AACEncContext *s, SingleChannelElement *sce);

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


[FFmpeg-cvslog] fate: readjust AAC encoder TNS test

2015-09-12 Thread Rostislav Pehlivanov
ffmpeg | branch: master | Rostislav Pehlivanov  | Sat Sep 
12 13:17:04 2015 +0100| [1e75bee3d6031b39a11c69719fdd24871c109f9d] | committer: 
Rostislav Pehlivanov

fate: readjust AAC encoder TNS test

The recent commits change the value slightly. Even though it's
within the threshold it's better to risk as little as possible
especially when different systems, processors, FPUs and compilers
are involved.

Signed-off-by: Rostislav Pehlivanov 

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

 tests/fate/aac.mak |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak
index 2f533e2..1c815dd 100644
--- a/tests/fate/aac.mak
+++ b/tests/fate/aac.mak
@@ -172,7 +172,7 @@ fate-aac-tns-encode: CMD = enc_dec_pcm adts wav s16le 
$(TARGET_SAMPLES)/audio-re
 fate-aac-tns-encode: CMP = stddev
 fate-aac-tns-encode: REF = 
$(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
 fate-aac-tns-encode: CMP_SHIFT = -4096
-fate-aac-tns-encode: CMP_TARGET = 648.50
+fate-aac-tns-encode: CMP_TARGET = 648.80
 fate-aac-tns-encode: FUZZ = 2.8
 fate-aac-tns-encode: SIZE_TOLERANCE = 3560
 

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


[FFmpeg-cvslog] avformat/avienc: add muxer option "write_channel_mask"

2015-09-12 Thread Tobias Rapp
ffmpeg | branch: master | Tobias Rapp  | Thu Sep 10 
14:04:18 2015 +0200| [141637002767d47154bffaf1463edcfd9445a5ee] | committer: 
Michael Niedermayer

avformat/avienc: add muxer option "write_channel_mask"

Allow writing an empty channel mask into the wave format header. Useful
if the input file contains an unknown channel layout.

Signed-off-by: Michael Niedermayer 

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

 libavformat/avienc.c  |   23 +--
 libavformat/riff.h|5 +
 libavformat/riffenc.c |5 +++--
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index a79f156..649961d 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -34,6 +34,7 @@
 #include "libavutil/dict.h"
 #include "libavutil/avassert.h"
 #include "libavutil/timestamp.h"
+#include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "libavcodec/raw.h"
 
@@ -58,9 +59,11 @@ typedef struct AVIIndex {
 } AVIIndex;
 
 typedef struct AVIContext {
+const AVClass *class;
 int64_t riff_start, movi_list, odml_list;
 int64_t frames_hdr_all;
 int riff_id;
+int write_channel_mask;
 } AVIContext;
 
 typedef struct AVIStream {
@@ -339,7 +342,7 @@ static int avi_write_header(AVFormatContext *s)
 ff_end_tag(pb, strh);
 
 if (enc->codec_type != AVMEDIA_TYPE_DATA) {
-int ret;
+int ret, flags;
 enum AVPixelFormat pix_fmt;
 
 strf = ff_start_tag(pb, "strf");
@@ -367,7 +370,8 @@ static int avi_write_header(AVFormatContext *s)
   av_get_pix_fmt_name(enc->pix_fmt));
 break;
 case AVMEDIA_TYPE_AUDIO:
-if ((ret = ff_put_wav_header(pb, enc, 0)) < 0)
+flags = (avi->write_channel_mask == 0) ? 
FF_PUT_WAV_HEADER_SKIP_CHANNELMASK : 0;
+if ((ret = ff_put_wav_header(pb, enc, flags)) < 0)
 return ret;
 break;
 default:
@@ -782,6 +786,20 @@ static int avi_write_trailer(AVFormatContext *s)
 return res;
 }
 
+#define OFFSET(x) offsetof(AVIContext, x)
+#define ENC AV_OPT_FLAG_ENCODING_PARAM
+static const AVOption options[] = {
+{ "write_channel_mask", "write channel mask into wave format header", 
OFFSET(write_channel_mask), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, ENC },
+{ NULL },
+};
+
+static const AVClass avi_muxer_class = {
+.class_name = "AVI muxer",
+.item_name  = av_default_item_name,
+.option = options,
+.version= LIBAVUTIL_VERSION_INT,
+};
+
 AVOutputFormat ff_avi_muxer = {
 .name   = "avi",
 .long_name  = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
@@ -796,4 +814,5 @@ AVOutputFormat ff_avi_muxer = {
 .codec_tag  = (const AVCodecTag * const []) {
 ff_codec_bmp_tags, ff_codec_wav_tags, 0
 },
+.priv_class = _muxer_class,
 };
diff --git a/libavformat/riff.h b/libavformat/riff.h
index 399c527..d6d91ef 100644
--- a/libavformat/riff.h
+++ b/libavformat/riff.h
@@ -53,6 +53,11 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc, 
const AVCodecTag *t
 #define FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX0x0001
 
 /**
+ * Tell ff_put_wav_header() to write an empty channel mask.
+ */
+#define FF_PUT_WAV_HEADER_SKIP_CHANNELMASK  0x0002
+
+/**
  * Write WAVEFORMAT header structure.
  *
  * @param flags a combination of FF_PUT_WAV_HEADER_* constants
diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
index 85c953f..ceb27f2 100644
--- a/libavformat/riffenc.c
+++ b/libavformat/riffenc.c
@@ -168,8 +168,9 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc, 
int flags)
 }
 /* write WAVEFORMATEXTENSIBLE extensions */
 if (waveformatextensible) {
-int write_channel_mask = enc->strict_std_compliance < 
FF_COMPLIANCE_NORMAL ||
- enc->channel_layout < 0x4;
+int write_channel_mask = !(flags & FF_PUT_WAV_HEADER_SKIP_CHANNELMASK) 
&&
+ (enc->strict_std_compliance < 
FF_COMPLIANCE_NORMAL ||
+  enc->channel_layout < 0x4);
 /* 22 is WAVEFORMATEXTENSIBLE size */
 avio_wl16(pb, riff_extradata - riff_extradata_start + 22);
 /* ValidBitsPerSample || SamplesPerBlock || Reserved */

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


[FFmpeg-cvslog] lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video

2015-09-12 Thread Hendrik Schreiber
ffmpeg | branch: master | Hendrik Schreiber  | Thu Sep 10 
13:27:05 2015 +0200| [1b2412f50185447da4212f65f06e8d72a6daf06e] | committer: 
Vittorio Giovara

lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video

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

 libavcodec/Makefile |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 7b105cc..5cdef9c 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -713,7 +713,7 @@ OBJS-$(CONFIG_MJPEG_PARSER)+= mjpeg_parser.o
 OBJS-$(CONFIG_MLP_PARSER)  += mlp_parser.o mlp.o
 OBJS-$(CONFIG_MPEG4VIDEO_PARSER)   += mpeg4video_parser.o h263.o \
   mpeg4videodec.o mpeg4video.o \
-  ituh263dec.o h263dec.o
+  ituh263dec.o h263dec.o h263data.o
 OBJS-$(CONFIG_MPEGAUDIO_PARSER)+= mpegaudio_parser.o \
   mpegaudiodecheader.o mpegaudiodata.o
 OBJS-$(CONFIG_MPEGVIDEO_PARSER)+= mpegvideo_parser.o\

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


[FFmpeg-cvslog] Merge commit 'c0a49077ea4ff3a0ad30b9e33f1bb06ba9112aaa'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
15:18:05 2015 +0200| [de969904b18b438120be8b5bf99a351aa55db545] | committer: 
Hendrik Leppkes

Merge commit 'c0a49077ea4ff3a0ad30b9e33f1bb06ba9112aaa'

* commit 'c0a49077ea4ff3a0ad30b9e33f1bb06ba9112aaa':
  asfdec: add more checks for size left in asf packet buffer

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] Merge commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
15:16:57 2015 +0200| [95f92b2513342d3122320de6f80ebf8e55a91728] | committer: 
Hendrik Leppkes

Merge commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b'

* commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b':
  lavc: Sanitize header inclusion guards

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] lavc: Sanitize header inclusion guards

2015-09-12 Thread Vittorio Giovara
ffmpeg | branch: master | Vittorio Giovara  | Thu 
Sep 10 20:26:09 2015 +0200| [f00f6d538dcbaa122eb5e2784f41f4a299296b7b] | 
committer: Vittorio Giovara

lavc: Sanitize header inclusion guards

Fix typos, add missing comments, and remove stray lines.

Signed-off-by: Vittorio Giovara 

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

 libavcodec/dct32.h |2 +-
 libavcodec/hqxdsp.h|1 -
 libavcodec/mpegutils.h |2 +-
 libavcodec/pngdsp.h|2 +-
 libavcodec/twinvq.h|2 +-
 libavcodec/wma_freqs.h |2 +-
 6 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/libavcodec/dct32.h b/libavcodec/dct32.h
index 110338d..8bf6880 100644
--- a/libavcodec/dct32.h
+++ b/libavcodec/dct32.h
@@ -22,4 +22,4 @@
 void ff_dct32_float(float *dst, const float *src);
 void ff_dct32_fixed(int *dst, const int *src);
 
-#endif
+#endif /* AVCODEC_DCT32_H */
diff --git a/libavcodec/hqxdsp.h b/libavcodec/hqxdsp.h
index 163c1f8..2cd2a8e 100644
--- a/libavcodec/hqxdsp.h
+++ b/libavcodec/hqxdsp.h
@@ -37,4 +37,3 @@ typedef struct HQXDSPContext {
 void ff_hqxdsp_init(HQXDSPContext *c);
 
 #endif /* AVCODEC_HQXDSP_H */
-
diff --git a/libavcodec/mpegutils.h b/libavcodec/mpegutils.h
index 5c503fb..9b5a576 100644
--- a/libavcodec/mpegutils.h
+++ b/libavcodec/mpegutils.h
@@ -132,4 +132,4 @@ void ff_draw_horiz_band(AVCodecContext *avctx, AVFrame 
*cur, AVFrame *last,
 int y, int h, int picture_structure, int first_field,
 int low_delay);
 
-#endif /* AVCODEC_PICTTYPE_H */
+#endif /* AVCODEC_MPEGUTILS_H */
diff --git a/libavcodec/pngdsp.h b/libavcodec/pngdsp.h
index 98d29a8..607fe64 100644
--- a/libavcodec/pngdsp.h
+++ b/libavcodec/pngdsp.h
@@ -37,4 +37,4 @@ typedef struct PNGDSPContext {
 void ff_pngdsp_init(PNGDSPContext *dsp);
 void ff_pngdsp_init_x86(PNGDSPContext *dsp);
 
-#endif /* AVCDODEC_PNGDSP_H */
+#endif /* AVCODEC_PNGDSP_H */
diff --git a/libavcodec/twinvq.h b/libavcodec/twinvq.h
index 3148069..3dc0ab4 100644
--- a/libavcodec/twinvq.h
+++ b/libavcodec/twinvq.h
@@ -200,4 +200,4 @@ int ff_twinvq_decode_frame(AVCodecContext *avctx, void 
*data,
 int ff_twinvq_decode_close(AVCodecContext *avctx);
 int ff_twinvq_decode_init(AVCodecContext *avctx);
 
-#endif /* AVCODEC_TWINVQ_DATA_H */
+#endif /* AVCODEC_TWINVQ_H */
diff --git a/libavcodec/wma_freqs.h b/libavcodec/wma_freqs.h
index 415c83b..d40ab65 100644
--- a/libavcodec/wma_freqs.h
+++ b/libavcodec/wma_freqs.h
@@ -23,4 +23,4 @@
 
 extern const uint16_t ff_wma_critical_freqs[25];
 
-#endif /* AVCODEC_WMA_FREQS */
+#endif /* AVCODEC_WMA_FREQS_H */

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


[FFmpeg-cvslog] lavc: Enable side data only packets by default

2015-09-12 Thread Vittorio Giovara
ffmpeg | branch: master | Vittorio Giovara  | Fri 
Sep 11 17:47:29 2015 +0200| [6064f697a321174232a3fad351afb21150c3e9e5] | 
committer: Vittorio Giovara

lavc: Enable side data only packets by default

Deprecate the now unused option, but temporarily retain the capability
to disable the now default behaviour.

Mention this change in the AVPacket documentation.

Signed-off-by: Vittorio Giovara 

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

 avconv.c   |1 -
 libavcodec/avcodec.h   |   18 ++
 libavcodec/flacenc.c   |6 ++
 libavcodec/options_table.h |4 +++-
 libavcodec/version.h   |3 +++
 5 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/avconv.c b/avconv.c
index deaa40b..75b00f1 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1595,7 +1595,6 @@ static int init_output_stream(OutputStream *ost, char 
*error, int error_len)
 }
 if (!av_dict_get(ost->encoder_opts, "threads", NULL, 0))
 av_dict_set(>encoder_opts, "threads", "auto", 0);
-av_dict_set(>encoder_opts, "side_data_only_packets", "1", 0);
 
 if ((ret = avcodec_open2(ost->enc_ctx, codec, >encoder_opts)) < 
0) {
 if (ret == AVERROR_EXPERIMENTAL)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 9b38655..8a073d4 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1140,7 +1140,9 @@ typedef struct AVPacketSideData {
  * then passed to muxers.
  *
  * For video, it should typically contain one compressed frame. For audio it 
may
- * contain several compressed frames.
+ * contain several compressed frames. Encoders are allowed to output empty
+ * packets, with no compressed data, containing only side data
+ * (e.g. to update some stream parameters at the end of encoding).
  *
  * AVPacket is one of the few structs in Libav, whose size is a part of public
  * ABI. Thus it may be allocated on stack and no new fields can be added to it
@@ -2867,20 +2869,20 @@ typedef struct AVCodecContext {
  */
 uint64_t vbv_delay;
 
+#if FF_API_SIDEDATA_ONLY_PKT
 /**
- * Encoding only. Allow encoders to output packets that do not contain any
- * encoded data, only side data.
+ * Encoding only and set by default. Allow encoders to output packets
+ * that do not contain any encoded data, only side data.
  *
  * Some encoders need to output such packets, e.g. to update some stream
  * parameters at the end of encoding.
  *
- * All callers are strongly recommended to set this option to 1 and update
- * their code to deal with such packets, since this behaviour may become
- * always enabled in the future (then this option will be deprecated and
- * later removed). To avoid ABI issues when this happens, the callers 
should
- * use AVOptions to set this field.
+ * @deprecated this field disables the default behaviour and
+ * it is kept only for compatibility.
  */
+attribute_deprecated
 int side_data_only_packets;
+#endif
 
 /**
  * Audio only. The number of "priming" samples (padding) inserted by the
diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
index c4c60ee..58961b8 100644
--- a/libavcodec/flacenc.c
+++ b/libavcodec/flacenc.c
@@ -1214,7 +1214,13 @@ static int flac_encode_frame(AVCodecContext *avctx, 
AVPacket *avpkt,
 av_md5_final(s->md5ctx, s->md5sum);
 write_streaminfo(s, avctx->extradata);
 
+#if FF_API_SIDEDATA_ONLY_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
 if (avctx->side_data_only_packets && !s->flushed) {
+FF_ENABLE_DEPRECATION_WARNINGS
+#else
+if (!s->flushed) {
+#endif
 uint8_t *side_data = av_packet_new_side_data(avpkt, 
AV_PKT_DATA_NEW_EXTRADATA,
  
avctx->extradata_size);
 if (!side_data)
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 9fec8e4..b6e1468 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -473,7 +473,9 @@ static const AVOption avcodec_options[] = {
 {"fltp", "32-bit float planar",   0, AV_OPT_TYPE_CONST, {.i64 = 
AV_SAMPLE_FMT_FLTP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
 {"dblp", "64-bit double planar",  0, AV_OPT_TYPE_CONST, {.i64 = 
AV_SAMPLE_FMT_DBLP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
 {"refcounted_frames", NULL, OFFSET(refcounted_frames), AV_OPT_TYPE_INT, {.i64 
= 0}, 0, 1, A|V|D },
-{"side_data_only_packets", NULL, OFFSET(side_data_only_packets), 
AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, A|V|E },
+#if FF_API_SIDEDATA_ONLY_PKT
+{"side_data_only_packets", NULL, OFFSET(side_data_only_packets), 
AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, A|V|E },
+#endif
 {NULL},
 };
 
diff --git a/libavcodec/version.h b/libavcodec/version.h
index eefc3a9..45b99ca 100644
--- a/libavcodec/version.h
+++ 

[FFmpeg-cvslog] Merge commit '6064f697a321174232a3fad351afb21150c3e9e5'

2015-09-12 Thread Hendrik Leppkes
ffmpeg | branch: master | Hendrik Leppkes  | Sat Sep 12 
15:12:05 2015 +0200| [580c4fc98a213ff56ec95f95c30dde81cb7ef46c] | committer: 
Hendrik Leppkes

Merge commit '6064f697a321174232a3fad351afb21150c3e9e5'

* commit '6064f697a321174232a3fad351afb21150c3e9e5':
  lavc: Enable side data only packets by default

Merged-by: Hendrik Leppkes 

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



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


[FFmpeg-cvslog] configure: fix build on mingw64 target with msys2

2015-09-12 Thread Peter Belkner
ffmpeg | branch: master | Peter Belkner  | Sat Sep 12 
15:23:52 2015 +0200| [1d2beb686ed4782611295bfd318cfa400677576a] | committer: 
Hendrik Leppkes

configure: fix build on mingw64 target with msys2

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

 configure |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 9d1d84d..7c808c2 100755
--- a/configure
+++ b/configure
@@ -3297,7 +3297,7 @@ fi
 
 exesuf() {
 case $1 in
-mingw32*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo 
.exe ;;
+
mingw32*|mingw64*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo 
.exe ;;
 esac
 }
 
@@ -4342,7 +4342,7 @@ case $target_os in
 enabled_any pic shared x86_64 ||
 { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
 ;;
-mingw32*)
+mingw32*|mingw64*)
 if test $target_os = "mingw32ce"; then
 disable network
 else

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