mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/dv: about 3 times faster probe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
dbb41f93c1
commit
76a47d66c4
@ -590,19 +590,21 @@ static int dv_probe(AVProbeData *p)
|
||||
if (p->buf_size < 5)
|
||||
return 0;
|
||||
|
||||
state = AV_RB32(p->buf);
|
||||
for (i = 4; i < p->buf_size; i++) {
|
||||
if ((state & 0xffffff7f) == 0x1f07003f)
|
||||
matches++;
|
||||
// any section header, also with seq/chan num != 0,
|
||||
// should appear around every 12000 bytes, at least 10 per frame
|
||||
if ((state & 0xff07ff7f) == 0x1f07003f)
|
||||
secondary_matches++;
|
||||
if (state == 0x003f0700 || state == 0xff3f0700)
|
||||
marker_pos = i;
|
||||
if (state == 0xff3f0701 && i - marker_pos == 80)
|
||||
matches++;
|
||||
state = (state << 8) | p->buf[i];
|
||||
for (i = 0; i < p->buf_size-4; i++) {
|
||||
unsigned state = AV_RB32(p->buf+i);
|
||||
if ((state & 0x0007f840) == 0x00070000) {
|
||||
// any section header, also with seq/chan num != 0,
|
||||
// should appear around every 12000 bytes, at least 10 per frame
|
||||
if ((state & 0xff07ff7f) == 0x1f07003f) {
|
||||
secondary_matches++;
|
||||
if ((state & 0xffffff7f) == 0x1f07003f)
|
||||
matches++;
|
||||
}
|
||||
if (state == 0x003f0700 || state == 0xff3f0700)
|
||||
marker_pos = i;
|
||||
if (state == 0xff3f0701 && i - marker_pos == 80)
|
||||
matches++;
|
||||
}
|
||||
}
|
||||
|
||||
if (matches && p->buf_size / matches < 1024 * 1024) {
|
||||
|
Loading…
Reference in New Issue
Block a user