summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2020-12-27 17:35:36 +0100
committerMarton Balint <cus@passwd.hu>2021-01-09 22:38:12 +0100
commit5ea37923a8aaa3f670c1455c783c10d3142f4a71 (patch)
tree3441f9a26b39b83ff50e60c763cfaf174e14ae62 /libavformat/mpegts.c
parent9298e8eb61f6c796aaf7c6e14e59f345318d2753 (diff)
avformat/mpegts: never discard PAT pid
PID 0 was removed from the pid list when then PMT was parsed, it is better to explictly avoid it from being discarded instead of keeing it in the list of every program. Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r--libavformat/mpegts.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index efff5130de..3712dad1c8 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -380,6 +380,9 @@ static int discard_pid(MpegTSContext *ts, unsigned int pid)
int used = 0, discarded = 0;
struct Program *p;
+ if (pid == PAT_PID)
+ return 0;
+
/* If none of the programs have .discard=AVDISCARD_ALL then there's
* no way we have to discard this packet */
for (k = 0; k < ts->stream->nb_programs; k++)
@@ -2543,7 +2546,6 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
if (!ts->pids[pmt_pid])
mpegts_open_section_filter(ts, pmt_pid, pmt_cb, ts, 1);
add_pat_entry(ts, sid);
- add_pid_to_pmt(ts, sid, 0); // add pat pid to program
add_pid_to_pmt(ts, sid, pmt_pid);
}
}