diff mbox series

[FFmpeg-devel,2/6] avformat/mpegts: never discard PAT pid

Message ID 20201228224929.21299-2-cus@passwd.hu
State Accepted
Commit 5ea37923a8aaa3f670c1455c783c10d3142f4a71
Headers show
Series [FFmpeg-devel,1/6] avformat/utils: do not overwrite already existing program with defaults in av_new_program | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Marton Balint Dec. 28, 2020, 10:49 p.m. UTC
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>
---
 libavformat/mpegts.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff mbox series

Patch

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);
         }
     }