|
|
|
@@ -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) |