mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-12 10:29:39 +00:00
Favor chunk size over hitting the correct position after reading the chunk size in asf.
Fixes issue1923 Originally committed as revision 23040 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
cf13f204cc
commit
cb0061d453
@ -204,9 +204,10 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||
get_byte(pb);
|
||||
memset(&asf->asfid2avid, -1, sizeof(asf->asfid2avid));
|
||||
for(;;) {
|
||||
uint64_t gpos= url_ftell(pb);
|
||||
get_guid(pb, &g);
|
||||
gsize = get_le64(pb);
|
||||
dprintf(s, "%08"PRIx64": ", url_ftell(pb) - 24);
|
||||
dprintf(s, "%08"PRIx64": ", gpos);
|
||||
print_guid(&g);
|
||||
dprintf(s, " size=0x%"PRIx64"\n", gsize);
|
||||
if (!guidcmp(&g, &ff_asf_data_header)) {
|
||||
@ -584,8 +585,10 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||
av_log(s, AV_LOG_WARNING, "Digital signature detected, decoding will likely fail!\n");
|
||||
}
|
||||
}
|
||||
url_fseek(pb, gsize - 24, SEEK_CUR);
|
||||
}
|
||||
if(url_ftell(pb) != gpos + gsize)
|
||||
av_log(s, AV_LOG_DEBUG, "gpos mismatch our pos=%"PRIu64", end=%"PRIu64"\n", url_ftell(pb)-gpos, gsize);
|
||||
url_fseek(pb, gpos + gsize, SEEK_SET);
|
||||
}
|
||||
get_guid(pb, &g);
|
||||
get_le64(pb);
|
||||
|
Loading…
Reference in New Issue
Block a user