summaryrefslogtreecommitdiff
path: root/libavcodec/fic.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-08 00:20:56 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-08 00:21:22 +0100
commit6eb08783a97821e731e249d70bbb39eefabbf17f (patch)
tree27120773d190b9c827c50077fefc5aaf8cb320f2 /libavcodec/fic.c
parentfabf69f37abe1560c85d6483f75849014da2971e (diff)
parentf87a6e500bcdaede22a123b81a2a46779cf7b71a (diff)
downloadffmpeg-6eb08783a97821e731e249d70bbb39eefabbf17f.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: fic: Properly handle skip frames Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/fic.c')
-rw-r--r--libavcodec/fic.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/fic.c b/libavcodec/fic.c
index cb8da1a2e2..63faef2687 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");
@@ -246,6 +250,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;