Bao, Huang-Huang (d3bae727) at 15 Jun 17:29
ping @ryuukyu
Bao, Huang-Huang (d3bae727) at 14 Jun 07:36
pw: stream: Add bindings for command callback and trigger staffs
... and 8 more commits
Rebased and updated with !150 (merged) in mind, though the CI failed due to lack of permissions(see freedesktop/freedesktop#540).
Bao, Huang-Huang (cd16e1f0) at 07 Apr 10:21
This kind of multi-plane-in-single-memory-region is apparently a valid use-case and supported both by Gstreamer and several Wayland compositors/clients - and it seems to be used by libcamera (or the pw libcamera plugin)
🤷
Yeah, it's indeed valid, actually the only option if you want to export memory as DMA-BUF in some API like Vulkan, which all planes are referenced by a single DMA-BUF FD and you could still dup(2) the FD to make it conform with format planes.
Anyway, I am fine with this change so long as GStreamer can properly handles it, and this has no effect on sources have matching n_datas
set.
I added meta->n_planes = MIN(meta->n_planes, b->buffer->n_datas)
just to prevent the loop overflows meta arrays, which has max length of GST_VIDEO_MAX_PLANES
(meta->n_planes is derived from format and should always be valid). So this should at least be the line below if meta->n_planes
can not be altered.
for (i = 0; i < MIN(GST_VIDEO_MAX_PLANES, b->buffer->n_datas); i++) {
Also, the n_datas
in spa_buffer should denotes plane count, isn't that suggest either the format or n_datas
was incorrectly set if the number did not matches what format has given?
derive(Clone) would not impl Clone
for Sender<T>
where T
is not Clone
, despite Sender<T>
holds only Arc
and is safely cloneable.
So just manually impl Clone
for Sender
.
Bao, Huang-Huang (cd16e1f0) at 18 Feb 17:20
pw: channel: always impl Clone for Sender
Bao, Huang-Huang (abc47d16) at 18 Feb 17:19
pw: channel: always impl Clone for Sender
... and 7 more commits
This adds command callback and trigger process staffs.
spa_command is just another object pod so no extra binding is required.
pw_stream_trigger_process could return either 0 or async result, and the async result has no use in stream api so it's safe to just take the error.
Bao, Huang-Huang (76a42cf8) at 18 Feb 17:03
pw: stream: sync api
Bao, Huang-Huang (6607d8c8) at 07 Feb 15:33
!148 (merged) should fixes the serialization part. Though the deserialization of corrupted POD indeed need to return Err instead of panic.
Bao, Huang-Huang (4b60569c) at 06 Feb 06:36
The offset in GstVideoMeta point to location of merge-mapped buffer memories (see "gst_buffer_find_memory()") instead of raw memory location for each plane, make adjustment to comply this rule.
Also some cleanups.
Fixes 023577e3
Bao, Huang-Huang (38a8103c) at 06 Feb 03:14
gst: correct buffer & meta offset calculation
... and 4 more commits