mirror of https://git.ffmpeg.org/ffmpeg.git
Use all 32 bits of the timestamp when calculating flv duration.
At the moment, duration is mainly set from the metadata packet. If that is not available, the fallback is checking the low 24 bits of the last packet. This is not enough for files over 4,6 hours in length, so read all 32 bits instead. patch by Martin Storsjö, martin martin st Originally committed as revision 19791 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
35c433d671
commit
b126dee964
|
@ -369,7 +369,9 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
size= get_be32(s->pb);
|
||||
url_fseek(s->pb, fsize-3-size, SEEK_SET);
|
||||
if(size == get_be24(s->pb) + 11){
|
||||
s->duration= get_be24(s->pb) * (int64_t)AV_TIME_BASE / 1000;
|
||||
uint32_t ts = get_be24(s->pb);
|
||||
ts |= get_byte(s->pb) << 24;
|
||||
s->duration = ts * (int64_t)AV_TIME_BASE / 1000;
|
||||
}
|
||||
url_fseek(s->pb, pos, SEEK_SET);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue