mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
respect the maximum position mpegts_get_pcr is allowed to seek to
This commit is contained in:
parent
2130d2f594
commit
880e83827f
@ -1719,19 +1719,19 @@ static int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
|
||||
uint8_t buf[TS_PACKET_SIZE];
|
||||
int pcr_l, pcr_pid = ((PESContext*)s->streams[stream_index]->priv_data)->pcr_pid;
|
||||
pos = ((*ppos + ts->raw_packet_size - 1 - ts->pos47) / ts->raw_packet_size) * ts->raw_packet_size + ts->pos47;
|
||||
for(;;) {
|
||||
while(pos < pos_limit) {
|
||||
avio_seek(s->pb, pos, SEEK_SET);
|
||||
if (avio_read(s->pb, buf, TS_PACKET_SIZE) != TS_PACKET_SIZE)
|
||||
return AV_NOPTS_VALUE;
|
||||
if ((pcr_pid < 0 || (AV_RB16(buf + 1) & 0x1fff) == pcr_pid) &&
|
||||
parse_pcr(×tamp, &pcr_l, buf) == 0) {
|
||||
break;
|
||||
*ppos = pos;
|
||||
return timestamp;
|
||||
}
|
||||
pos += ts->raw_packet_size;
|
||||
}
|
||||
*ppos = pos;
|
||||
|
||||
return timestamp;
|
||||
return AV_NOPTS_VALUE;
|
||||
}
|
||||
|
||||
#ifdef USE_SYNCPOINT_SEARCH
|
||||
|
Loading…
Reference in New Issue
Block a user