pipewire/src/gst
Charles 17e61256c5 gst: skip invalid crop metadata in pipewiresrc
META_VideoCrop is present on every buffer negotiated through the
adapter, even when the producer never sets a meaningful crop
region. Before commit c634ef961, gst_buffer_get_video_crop_meta
returned NULL on new GstBuffers so the zero values were never
applied. After that commit, gst_buffer_add_video_crop_meta always
succeeds, and an invalid crop produces black frames.

Without this, the following produces black frames,

Producer:

gst-launch-1.0 videotestsrc is-live=true ! \
  video/x-raw,format=I420,width=1280,height=720,framerate=24/1 ! \
  pipewiresink mode=provide \
  stream-properties="properties,media.class=Video/Source,media.role=Camera" \
  client-name=VirtualCam

Consumer:

gst-launch-1.0 pipewiresrc path=<id> ! videoconvert ! autovideosink
2026-04-21 21:01:50 +01: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 leak in sink_update_params 2025-07-08 13:07:44 +02:00
gstpipewiresink.h gst: sink: update clock before every trigger process 2025-05-08 18:57:44 +05:30
gstpipewiresrc.c gst: skip invalid crop metadata in pipewiresrc 2026-04-21 21:01:50 +01:00
gstpipewiresrc.h pipewiresrc: Use clock time difference to update last_buffer time 2026-03-03 22:52:52 +01: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