[FFmpeg-cvslog] avfilter/src_movie: Check that the pixel format hasnt changed

Michael Niedermayer git at videolan.org
Tue Mar 18 13:25:07 CET 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Mar 18 03:57:41 2014 +0100| [48f7d5f0cfd246642f8e3d695152ceb69d27852f] | committer: Michael Niedermayer

avfilter/src_movie: Check that the pixel format hasnt changed

Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavfilter/src_movie.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index a1bb843..82bcc56 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -540,6 +540,16 @@ static int movie_push_frame(AVFilterContext *ctx, unsigned out_id)
     av_dlog(ctx, "movie_push_frame(): file:'%s' %s\n", movie->file_name,
             describe_frame_to_str((char[1024]){0}, 1024, movie->frame, frame_type, outlink));
 
+    if (st->st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+        if (movie->frame->format != outlink->format) {
+            av_log(ctx, AV_LOG_ERROR, "Format changed %s -> %s, discarding frame\n",
+                av_get_pix_fmt_name(outlink->format),
+                av_get_pix_fmt_name(movie->frame->format)
+                );
+            av_frame_free(&movie->frame);
+            return 0;
+        }
+    }
     ret = ff_filter_frame(outlink, movie->frame);
     movie->frame = NULL;
 



More information about the ffmpeg-cvslog mailing list