avfilter/src_movie: Check that the pixel format hasnt changed

Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-03-18 03:57:41 +01:00
parent aa86cccd11
commit 48f7d5f0cf
1 changed files with 10 additions and 0 deletions

View File

@ -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, 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)); 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); ret = ff_filter_frame(outlink, movie->frame);
movie->frame = NULL; movie->frame = NULL;