fic: Properly handle skip frames
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
(cherry picked from commit f87a6e500b
)
This commit is contained in:
committed by
Reinhard Tartler
parent
23af29e882
commit
a643a47d41
@ -166,6 +166,10 @@ static int fic_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
if (memcmp(src, fic_header, 7))
|
if (memcmp(src, fic_header, 7))
|
||||||
av_log(avctx, AV_LOG_WARNING, "Invalid FIC Header.\n");
|
av_log(avctx, AV_LOG_WARNING, "Invalid FIC Header.\n");
|
||||||
|
|
||||||
|
/* Is it a skip frame? */
|
||||||
|
if (src[17])
|
||||||
|
goto skip;
|
||||||
|
|
||||||
nslices = src[13];
|
nslices = src[13];
|
||||||
if (!nslices) {
|
if (!nslices) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Zero slices found.\n");
|
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)
|
NULL, nslices, sizeof(ctx->slice_data[0])) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
skip:
|
||||||
*got_frame = 1;
|
*got_frame = 1;
|
||||||
if ((ret = av_frame_ref(data, ctx->frame)) < 0)
|
if ((ret = av_frame_ref(data, ctx->frame)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user