Skip to content
Snippets Groups Projects
Commit 9837d3b0 authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

avformat/asfdec_f: Parse ECC byte according to spec


This should not change anything as the spec requires specific values
for the fields, which where handled previously.

Ask for samples when these values do not match

Signed-off-by: default avatarMichael Niedermayer <michael@niedermayer.cc>
parent 3e35f8ef
No related branches found
No related tags found
No related merge requests found
......@@ -958,13 +958,13 @@ static int asf_get_packet(AVFormatContext *s, AVIOContext *pb)
int rsize = 8;
int c, d, e, off;
if (asf->uses_std_ecc >= 0) {
if (asf->uses_std_ecc > 0) {
// if we do not know packet size, allow skipping up to 32 kB
off = 32768;
if (asf->no_resync_search)
off = 3;
else if (s->packet_size > 0 && !asf->uses_std_ecc)
off = (avio_tell(pb) - s->internal->data_offset) % s->packet_size + 3;
// else if (s->packet_size > 0 && !asf->uses_std_ecc)
// off = (avio_tell(pb) - s->internal->data_offset) % s->packet_size + 3;
c = d = e = -1;
while (off-- > 0) {
......@@ -975,10 +975,6 @@ static int asf_get_packet(AVFormatContext *s, AVIOContext *pb)
break;
}
if (!asf->uses_std_ecc) {
asf->uses_std_ecc = (c == 0x82 && !d && !e) ? 1 : -1;
}
if (c != 0x82) {
/* This code allows handling of -EAGAIN at packet boundaries (i.e.
* if the packet sync code above triggers -EAGAIN). This does not
......@@ -1004,6 +1000,24 @@ static int asf_get_packet(AVFormatContext *s, AVIOContext *pb)
}
} else {
c = avio_r8(pb);
if (c & 0x80) {
rsize ++;
if (!(c & 0x60)) {
d = avio_r8(pb);
e = avio_r8(pb);
avio_seek(pb, (c & 0xF) - 2, SEEK_CUR);
rsize += c & 0xF;
}
if (c != 0x82)
avpriv_request_sample(s, "Invalid ECC byte\n");
if (!asf->uses_std_ecc)
asf->uses_std_ecc = (c == 0x82 && !d && !e) ? 1 : -1;
c = avio_r8(pb);
} else
asf->uses_std_ecc = -1;
d = avio_r8(pb);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment