Commit 76a47d66 authored by Michael Niedermayer's avatar Michael Niedermayer

avformat/dv: about 3 times faster probe

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent dbb41f93
...@@ -590,19 +590,21 @@ static int dv_probe(AVProbeData *p) ...@@ -590,19 +590,21 @@ static int dv_probe(AVProbeData *p)
if (p->buf_size < 5) if (p->buf_size < 5)
return 0; return 0;
state = AV_RB32(p->buf); for (i = 0; i < p->buf_size-4; i++) {
for (i = 4; i < p->buf_size; i++) { unsigned state = AV_RB32(p->buf+i);
if ((state & 0xffffff7f) == 0x1f07003f) if ((state & 0x0007f840) == 0x00070000) {
matches++; // any section header, also with seq/chan num != 0,
// any section header, also with seq/chan num != 0, // should appear around every 12000 bytes, at least 10 per frame
// should appear around every 12000 bytes, at least 10 per frame if ((state & 0xff07ff7f) == 0x1f07003f) {
if ((state & 0xff07ff7f) == 0x1f07003f) secondary_matches++;
secondary_matches++; if ((state & 0xffffff7f) == 0x1f07003f)
if (state == 0x003f0700 || state == 0xff3f0700) matches++;
marker_pos = i; }
if (state == 0xff3f0701 && i - marker_pos == 80) if (state == 0x003f0700 || state == 0xff3f0700)
matches++; marker_pos = i;
state = (state << 8) | p->buf[i]; if (state == 0xff3f0701 && i - marker_pos == 80)
matches++;
}
} }
if (matches && p->buf_size / matches < 1024 * 1024) { if (matches && p->buf_size / matches < 1024 * 1024) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment