pipewire/src/gst
Stefan Klug 4c421391d5 gst/pipewiresrc: Improve base_time handling
It can not generically assumed that the gstreamer clock (and therefore
the base_time) is based on CLOCK_MONOTONIC.

It was tried to use the logic provided by
GstBaseSrc::gst_base_src_do_sync() in commit 004206db37
("gst/pipewiresrc: Let GstBaseSrc handle pseudo-live calculations").
This has the downside, that a potential jitter on the first buffer is
included in the calculated time offset. In gstreamer pipelines with
multiple pipewiresrc elements and big jitter on the first buffer the
streams will stay out of sync.

Improve that by checking if the gstreamer clock is provided by pipewire
and therefore known to be CLOCK_MONOTONIC or if it is provided by
gstreamer and we need to manually calculate the base_time.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
2026-04-22 14:54:52 +02:00
..
.editorconfig add .editorconfig files 2019-02-13 11:19:21 +01:00
gstpipewire.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
gstpipewireclock.c gst: Use gst_util_uint64_scale instead of scale_int 2025-10-30 16:46:58 +00:00
gstpipewireclock.h gst: use G_DECLARE_FINAL_TYPE for all classes 2024-06-11 12:51:51 +00:00
gstpipewirecore.c gst: core: Fixup connection error handling 2025-01-12 11:42:29 +00:00
gstpipewirecore.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
gstpipewiredeviceprovider.c gst: deviceprovider: unregister pw_core event hooks 2025-12-25 14:57:21 +01:00
gstpipewiredeviceprovider.h gst: deviceprovider: Signal default devices 2024-09-11 13:14:26 +00:00
gstpipewireformat.c audio: don't use SPA_AUDIO_MAX_CHANNELS in some places 2025-10-20 18:31:17 +02:00
gstpipewireformat.h gst: Add helper to fixate DMA_DRM caps 2024-05-29 19:05:53 +02:00
gstpipewirepool.c gst: pool: fix buffer release race condition 2026-02-09 09:25:36 +00:00
gstpipewirepool.h gst: pipewiresrc: Expose cursor position as a ROI meta 2025-07-11 11:57:59 -04:00
gstpipewiresink.c gst: fix crop height typo in pipewiresink do_send_buffer 2026-04-21 20:19:24 +01:00
gstpipewiresink.h gst: sink: update clock before every trigger process 2025-05-08 18:57:44 +05:30
gstpipewiresrc.c gst/pipewiresrc: Improve base_time handling 2026-04-22 14:54:52 +02:00
gstpipewiresrc.h gst/pipewiresrc: Improve base_time handling 2026-04-22 14:54:52 +02:00
gstpipewirestream.c gst: add rate control to the sink 2024-12-03 12:11:47 +01:00
gstpipewirestream.h gst: sink: update clock before every trigger process 2025-05-08 18:57:44 +05:30
meson.build gst: add rate control to the sink 2024-12-03 12:11:47 +01:00