gstreamer/subprojects/gst-plugins-bad/gst
Sebastian Dröge 493f8e440a 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/7588>
2024-10-24 15:09:15 +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 baseautoconvert: correct mistake in printing log 2024-08-08 15:19:50 +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-27 17:05:33 +00:00
codectimestamper codectimestamper: never set DTS to NONE 2024-06-13 16:25:57 +00:00
coloreffects meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
debugutils common: Stop using GQuark-based GstStructure field name API 2024-09-26 19:21:29 +03:00
dvbsubenc dvbsubenc: fixed some memory leaks and a crash 2024-04-17 11:37:49 +00:00
dvbsuboverlay video-filters: Fix passthrough with ANY caps feature 2023-10-03 21:13:00 +00:00
dvdspu dvdspu: use multiple minimal sized PGS overlay rectangles 2024-05-13 08:37:51 +00: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 common: Use more efficient versions of GstCapsFeatures API where possible 2024-09-26 19:26:18 +03: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: fix incorrect reading of transform in app14 marker 2024-08-15 13:33:47 +00: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 gst: Move GstQueueArray as GstVecDeque to core 2024-05-06 18:25:42 +00:00
mpegtsdemux mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true 2024-10-24 15:09:15 +00:00
mpegtsmux mpegtsmux: Use gst_aggregator_push_src_event() for pushing downstream events 2024-09-19 17:08:45 +03:00
mse bad: Added W3C Media Source Extensions library 2023-11-19 13:48:43 +00:00
mxf mxftypes: Add support for a few additional fields 2024-10-09 21:34:06 +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-07 14:02:33 +00:00
pcapparse pcapparse: Avoid unaligned memory access 2024-06-14 10:32:54 -05: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-23 10:31:57 +01:00
rtmp2 rtmp2: Add llnw auth support to rtmp client 2024-08-26 15:02:01 +00: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: Add running-time source mode 2024-08-23 18:37:16 +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-26 18:52:19 +00:00
videofilters scenechange: fix memory leak 2024-10-15 04:20:01 +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 h264parse: Wait for SEI before exposing src caps 2024-10-02 20:33:13 +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