1
0
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:
elupus 2008-08-27 20:07:11 +02:00 committed by Michael Niedermayer
parent 2130d2f594
commit 880e83827f

View File

@ -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(&timestamp, &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