Browse Source

make mpegts_get_pcr resync if it's not on a valid mpegts packet

tags/n0.9
elupus Michael Niedermayer 17 years ago
parent
commit
9fa47cb773
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      libavformat/mpegts.c

+ 6
- 0
libavformat/mpegts.c View File

@@ -1724,6 +1724,12 @@ static int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index,
return AV_NOPTS_VALUE;
if (avio_read(s->pb, buf, TS_PACKET_SIZE) != TS_PACKET_SIZE)
return AV_NOPTS_VALUE;
if (buf[0] != 0x47) {
if (mpegts_resync(s->pb) < 0)
return AV_NOPTS_VALUE;
pos = url_ftell(s->pb);
continue;
}
if ((pcr_pid < 0 || (AV_RB16(buf + 1) & 0x1fff) == pcr_pid) &&
parse_pcr(&timestamp, &pcr_l, buf) == 0) {
*ppos = pos;


Loading…
Cancel
Save