mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-02-05 04:06:37 -05:00
pipewiresrc: Fix video crop metadata not being set
Since commita1f33a99dfchanged buffer handling to create new GstBuffers instead of reusing pool buffers, the video crop metadata was silently lost. The code used gst_buffer_get_video_crop_meta() which returns NULL on a fresh buffer, so the crop values from PipeWire were never applied. Change to gst_buffer_add_video_crop_meta() to actually attach the metadata to the buffer. Also remove the now-obsolete call in gst_pipewire_pool_wrap_buffer. This was discovered when using the XDG Desktop Portal's RemoteDesktop interface: the full desktop was being delivered instead of just the selected window, because the crop region metadata was not being propagated to the GStreamer buffer. Fixes:a1f33a99df("gst: dequeue a shared buffer instead of original pool buffer"), from merge request !1258 CC: @jameshilliard
This commit is contained in:
parent
56a4ab5234
commit
c634ef9610
2 changed files with 1 additions and 3 deletions
|
|
@ -209,8 +209,6 @@ void gst_pipewire_pool_wrap_buffer (GstPipeWirePool *pool, struct pw_buffer *b)
|
|||
data->b = b;
|
||||
data->buf = buf;
|
||||
data->crop = spa_buffer_find_meta_data (b->buffer, SPA_META_VideoCrop, sizeof(*data->crop));
|
||||
if (data->crop)
|
||||
gst_buffer_add_video_crop_meta(buf);
|
||||
data->videotransform =
|
||||
spa_buffer_find_meta_data (b->buffer, SPA_META_VideoTransform, sizeof(*data->videotransform));
|
||||
data->cursor = spa_buffer_find_meta_data (b->buffer, SPA_META_Cursor, sizeof(*data->cursor));
|
||||
|
|
|
|||
|
|
@ -781,7 +781,7 @@ static GstBuffer *dequeue_buffer(GstPipeWireSrc *pwsrc)
|
|||
|
||||
crop = data->crop;
|
||||
if (crop) {
|
||||
GstVideoCropMeta *meta = gst_buffer_get_video_crop_meta(buf);
|
||||
GstVideoCropMeta *meta = gst_buffer_add_video_crop_meta(buf);
|
||||
if (meta) {
|
||||
meta->x = crop->region.position.x;
|
||||
meta->y = crop->region.position.y;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue