From f87a6e500bcdaede22a123b81a2a46779cf7b71a Mon Sep 17 00:00:00 2001 From: Derek Buitenhuis Date: Fri, 7 Mar 2014 14:31:53 +0000 Subject: fic: Properly handle skip frames Signed-off-by: Derek Buitenhuis --- libavcodec/fic.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libavcodec/fic.c') diff --git a/libavcodec/fic.c b/libavcodec/fic.c index 9a3bc3eb9c..df034371e0 100644 --- a/libavcodec/fic.c +++ b/libavcodec/fic.c @@ -166,6 +166,10 @@ static int fic_decode_frame(AVCodecContext *avctx, void *data, if (memcmp(src, fic_header, 7)) av_log(avctx, AV_LOG_WARNING, "Invalid FIC Header.\n"); + /* Is it a skip frame? */ + if (src[17]) + goto skip; + nslices = src[13]; if (!nslices) { av_log(avctx, AV_LOG_ERROR, "Zero slices found.\n"); @@ -245,6 +249,7 @@ static int fic_decode_frame(AVCodecContext *avctx, void *data, NULL, nslices, sizeof(ctx->slice_data[0])) < 0) return ret; +skip: *got_frame = 1; if ((ret = av_frame_ref(data, ctx->frame)) < 0) return ret; -- cgit v1.2.3