[FFmpeg-cvslog] avcodec/tscc2: Skip duplicate frames
Michael Niedermayer
git at videolan.org
Thu May 25 16:10:34 EEST 2017
ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Sun May 21 15:34:21 2017 +0200| [4dc3714c48e74e75a3a9c7d9fb52fd5917107508] | committer: Michael Niedermayer
avcodec/tscc2: Skip duplicate frames
This turns CFR duplicated frames into skiped frames
Fixes: Timeout
Fixes: 1719/clusterfuzz-testcase-minimized-6375090079924224
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4dc3714c48e74e75a3a9c7d9fb52fd5917107508
---
libavcodec/tscc2.c | 13 +++++--------
tests/ref/fate/tscc2-avi | 8 --------
2 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/libavcodec/tscc2.c b/libavcodec/tscc2.c
index f64c76507e..a8c7ee7996 100644
--- a/libavcodec/tscc2.c
+++ b/libavcodec/tscc2.c
@@ -235,18 +235,15 @@ static int tscc2_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
- if ((ret = ff_reget_buffer(avctx, c->pic)) < 0) {
- return ret;
- }
-
if (frame_type == 0) {
- *got_frame = 1;
- if ((ret = av_frame_ref(data, c->pic)) < 0)
- return ret;
-
+ // Skip duplicate frames
return buf_size;
}
+ if ((ret = ff_reget_buffer(avctx, c->pic)) < 0) {
+ return ret;
+ }
+
if (bytestream2_get_bytes_left(&gb) < 4) {
av_log(avctx, AV_LOG_ERROR, "Frame is too short\n");
return AVERROR_INVALIDDATA;
diff --git a/tests/ref/fate/tscc2-avi b/tests/ref/fate/tscc2-avi
index 6f0e8a53d3..09ed897337 100644
--- a/tests/ref/fate/tscc2-avi
+++ b/tests/ref/fate/tscc2-avi
@@ -5,33 +5,25 @@
#sar 0: 0/1
0, 0, 0, 1, 230400, 0x7a2103c0
0, 1, 1, 1, 230400, 0xd381c279
-0, 2, 2, 1, 230400, 0xd381c279
0, 3, 3, 1, 230400, 0x110aec27
0, 4, 4, 1, 230400, 0x4be67ee7
0, 5, 5, 1, 230400, 0xd87fe4b4
-0, 6, 6, 1, 230400, 0xd87fe4b4
0, 7, 7, 1, 230400, 0x9bc6a398
0, 8, 8, 1, 230400, 0xd67d92db
0, 9, 9, 1, 230400, 0x3df6559e
-0, 10, 10, 1, 230400, 0x3df6559e
0, 11, 11, 1, 230400, 0x2136ff25
0, 12, 12, 1, 230400, 0x94573fe6
0, 13, 13, 1, 230400, 0xbf67d3f5
-0, 14, 14, 1, 230400, 0xbf67d3f5
0, 15, 15, 1, 230400, 0x2592b5cf
0, 16, 16, 1, 230400, 0x5b23cd93
0, 17, 17, 1, 230400, 0x9b76d079
-0, 18, 18, 1, 230400, 0x9b76d079
0, 19, 19, 1, 230400, 0x771a017e
0, 20, 20, 1, 230400, 0xacfee1d0
0, 21, 21, 1, 230400, 0x6b9ff4eb
-0, 22, 22, 1, 230400, 0x6b9ff4eb
0, 23, 23, 1, 230400, 0xbaf643e1
0, 24, 24, 1, 230400, 0x052efe59
0, 25, 25, 1, 230400, 0xd751f901
-0, 26, 26, 1, 230400, 0xd751f901
0, 27, 27, 1, 230400, 0x6f94e11f
0, 28, 28, 1, 230400, 0x17eeabb9
0, 29, 29, 1, 230400, 0x3733a035
-0, 30, 30, 1, 230400, 0x3733a035
0, 31, 31, 1, 230400, 0xb0829f45
More information about the ffmpeg-cvslog
mailing list