gstreamer/subprojects/gst-plugins-bad/gst
Sebastian Dröge 2e4315ab5c mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true
The wraparound handling code assumes that the PCR gets updated regularly for
being able to detect wraparounds. With ignore-pcr=true that was not the case and
it stayed initialized at 1h forever.

To avoid this problem, update the fake PCR whenever the PTS advanced by more
than 5s, and also detect wraparounds in these fake PCRs.

Problem can be reproduced with

  $ gst-launch-1.0 videotestsrc pattern=black ! video/x-raw,framerate=1/5 ! \
    x264enc speed-preset=ultrafast tune=zerolatency ! mpegtsmux ! \
    tsdemux ignore-pcr=true ! fakesink

which restarts timestamps at 0 after around 26h30m.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7763>
2024-10-29 17:04:09 +00:00
..
accurip meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
adpcmdec meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
adpcmenc meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
aiff meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
asfmux asfmux: fix potentially unaligned write on 32-bit ARM 2023-06-14 04:59:05 +00:00
audiobuffersplit Revert "audiobuffersplit: Update out_segment even without discont" 2024-02-15 15:37:11 +00:00
audiofxbad meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
audiolatency audiolatency: Fix event refcounting bug handling latency events 2023-08-06 08:00:56 +00:00
audiomixmatrix meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
audiovisualizers meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
autoconvert bad: Update plugins cache 2024-01-31 11:00:24 +00:00
bayer bayer2rgb: Support video/x-bayer 10/12/14/16 bit depths 2023-06-15 08:26:12 +00:00
camerabin2 camerabin: Correctly relink viewfinderbin_queue 2023-12-18 17:07:31 +00:00
codecalpha alphadecodebin: Explicitly pass 64 bit integers as such through varargs 2024-03-28 11:16:28 +00:00
codectimestamper codectimestamper: Fix gint wraparound in pts_compare_func 2024-10-25 10:18:56 +01:00
coloreffects meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
debugutils fpsdisplaysink: fix copy'n'paste-o in license header 2023-10-27 10:54:44 +00:00
dvbsubenc dvbsubenc: fixed some memory leaks and a crash 2024-04-17 14:23:13 +01:00
dvbsuboverlay video-filters: Fix passthrough with ANY caps feature 2023-10-03 21:13:00 +00:00
dvdspu dvdspu: avoid null dereference 2024-03-18 11:43:39 +01:00
faceoverlay meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
festival meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
fieldanalysis gst-plugins-bad: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
freeverb meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
frei0r meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
gaudieffects gstgaussblur: delete unused code 2023-12-04 18:54:31 +00:00
gdp meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
geometrictransform meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
id3tag gst-plugins-bad: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
insertbin insertbin/doc: add "Since" markers to pass CI 2023-11-17 01:09:49 +01:00
inter kate: remove plugin 2023-10-27 07:34:39 +00:00
interlace gst-plugins-bad: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
ivfparse meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
ivtc meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
jp2kdecimator gst-plugins-bad: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
jpegformat jpegparse: turn some bus warnings into object ones 2024-04-04 15:14:06 +01:00
librfb meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
midi midiparse: drop use of GSlice allocator 2023-02-03 17:48:10 +00:00
mpegdemux mpegpsdemux: Rework gap sending 2023-04-06 01:34:03 +00:00
mpegpsmux mpegpsmux: drop use of GSlice 2023-01-24 15:25:07 +00:00
mpegtsdemux mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true 2024-10-29 17:04:09 +00:00
mpegtsmux mpegtsmux: Fix refcounting issue when selecting the best pad 2024-09-17 16:34:32 +01:00
mse bad: Added W3C Media Source Extensions library 2023-11-19 13:48:43 +00:00
mxf mxfdemux: Store GstMXFDemuxEssenceTrack in their own fixed allocation 2023-11-10 14:38:40 +00:00
netsim netsim: drop use of GSlice 2023-01-24 15:25:07 +00:00
onvif rtponviftimestamp: make sure to set E and T bits on last buffer of lists 2024-03-08 03:47:38 +00:00
pcapparse pcapparse: Avoid unaligned memory access 2024-06-14 18:55:20 +01:00
pnm meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
proxy proxysink: Post EOS message on EOS event 2022-12-08 14:51:56 +00:00
rawparse meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
removesilence doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
rist ristsrc: Clean caps instead of unref 2024-03-29 19:04:52 +00:00
rtmp2 rtmp2: guard against calling gst_amf_node_get_type() with NULL 2024-06-28 10:25:37 +01:00
rtp rtpsrc: Give better names to internal elements 2023-04-28 16:00:47 +00:00
sdp sdpdemux: Add SDP message (aka session) attributes to the caps too 2024-02-09 14:54:29 +00:00
segmentclip meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
siren meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
smooth meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
speed meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
subenc meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
switchbin switchbin: Rework gst_switch_bin_get_allowed_caps() to limit path lock 2024-02-08 18:33:29 +00:00
timecode timecodestamper: Improve error handling and don't crash 2024-01-25 01:38:08 +00:00
transcode transcodebin: Fixes for upstream selectable support 2023-08-02 17:12:48 +00:00
unixfd unixfd: Close file descriptors on error 2024-04-27 10:41:46 +01:00
videofilters scenechange: fix memory leak 2024-10-15 08:59:36 +00:00
videoframe_audiolevel meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
videoparsers h265parse: Reject FD received before SPS 2024-08-02 14:54:30 +00:00
videosignal meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
vmnc meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
y4m y4mdec: Fix some debug log categories 2024-02-06 12:42:54 +00:00
meson.build bad: Added W3C Media Source Extensions library 2023-11-19 13:48:43 +00:00