Browse Source

avformat/mpegts: Fix probing of mpegts with invalid ASC

Fixes Ticket5566

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.1
Michael Niedermayer 9 years ago
parent
commit
e01b19dece
1 changed files with 10 additions and 7 deletions
  1. +10
    -7
      libavformat/mpegts.c

+ 10
- 7
libavformat/mpegts.c View File

@@ -542,13 +542,16 @@ static int analyze(const uint8_t *buf, int size, int packet_size,
memset(stat, 0, packet_size * sizeof(*stat));

for (i = 0; i < size - 3; i++) {
if (buf[i] == 0x47 &&
(!probe || (buf[i + 3] & 0x30))) {
int x = i % packet_size;
stat[x]++;
stat_all++;
if (stat[x] > best_score) {
best_score = stat[x];
if (buf[i] == 0x47) {
int pid = AV_RB16(buf+1) & 0x1FFF;
int asc = buf[i + 3] & 0x30;
if (!probe || pid == 0x1FFF || asc) {
int x = i % packet_size;
stat[x]++;
stat_all++;
if (stat[x] > best_score) {
best_score = stat[x];
}
}
}
}


Loading…
Cancel
Save