tsdemux: Don't trigger a program change when falling back to ignore-pcr behaviour

Since commit a79a756b79 we could change to ignore-pcr automatically at 500ms
into a live stream when no PCR is seen by then. However the stream counting in
program change detection was wrongly considering ignore-pcr programs to have a
separate PCR PID, even though we are actually ignoring the PCR PID completely,
resulting in an erroneous program switch getting triggered from the different
stream count. This in turn would send an EOS and switch out the pads for what
actually is still the same program, while we intended to simply apply a
workaround for broken encoders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3089>
This commit is contained in:
Mart Raudsepp 2022-09-20 23:31:45 +03:00 committed by Tim-Philipp Müller
parent 66064568de
commit b19116b786

View file

@ -853,8 +853,8 @@ mpegts_base_is_same_program (MpegTSBase * base, MpegTSBaseProgram * oldprogram,
sawpcrpid = TRUE;
}
/* If the pcr is not shared with an existing stream, we'll have one extra stream */
if (!sawpcrpid)
/* If we have a PCR PID and the pcr is not shared with an existing stream, we'll have one extra stream */
if (!sawpcrpid && !base->ignore_pcr)
nbstreams += 1;
if (nbstreams != g_list_length (oldprogram->stream_list)) {