Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-11-10 19:04:33 +0400
committerMichael Niedermayer <michaelni@gmx.at>2013-11-10 19:06:16 +0400
commit2fbc759d08cae97f9361e464a685a149c9d12c72 (patch)
treea4e210c2afe145eae4e21cb60c3e5738fcb934bb /libavformat/diracdec.c
parent023953e96425a5fdff6b3904332ec621bb676b34 (diff)
avformat/diracdec: check 2 chunks in probe
Fixes probetest failure Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/diracdec.c')
-rw-r--r--libavformat/diracdec.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/libavformat/diracdec.c b/libavformat/diracdec.c
index 6636ead30d..e061ba5e8e 100644
--- a/libavformat/diracdec.c
+++ b/libavformat/diracdec.c
@@ -25,10 +25,19 @@
static int dirac_probe(AVProbeData *p)
{
- if (AV_RL32(p->buf) == MKTAG('B', 'B', 'C', 'D'))
- return AVPROBE_SCORE_MAX;
- else
+ unsigned size;
+ if (AV_RL32(p->buf) != MKTAG('B', 'B', 'C', 'D'))
return 0;
+
+ size = AV_RB32(p->buf+5);
+ if (size < 13)
+ return 0;
+ if (size + 13LL > p->buf_size)
+ return AVPROBE_SCORE_MAX / 4;
+ if (AV_RL32(p->buf + size) != MKTAG('B', 'B', 'C', 'D'))
+ return 0;
+
+ return AVPROBE_SCORE_MAX;
}
FF_DEF_RAWVIDEO_DEMUXER(dirac, "raw Dirac", dirac_probe, NULL, AV_CODEC_ID_DIRAC)