|
|
|
@ -474,12 +474,30 @@ static int dv_read_close(AVFormatContext *s) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int dv_probe(AVProbeData *p) |
|
|
|
|
{ |
|
|
|
|
unsigned state; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
if (p->buf_size < 5) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
state = AV_RB32(p->buf); |
|
|
|
|
for (i = 4; i < p->buf_size; i++) { |
|
|
|
|
if ((state & 0xffffff7f) == 0x1f07003f) |
|
|
|
|
return AVPROBE_SCORE_MAX*3/4; // not max to avoid dv in mov to match
|
|
|
|
|
state = (state << 8) | p->buf[i]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if CONFIG_DV_DEMUXER |
|
|
|
|
AVInputFormat dv_demuxer = { |
|
|
|
|
"dv", |
|
|
|
|
NULL_IF_CONFIG_SMALL("DV video format"), |
|
|
|
|
sizeof(RawDVContext), |
|
|
|
|
NULL, |
|
|
|
|
dv_probe, |
|
|
|
|
dv_read_header, |
|
|
|
|
dv_read_packet, |
|
|
|
|
dv_read_close, |
|
|
|
|