Skip to content

wire-protocol: Send buffer data in-line below a certain size#35

Open
wmanley wants to merge 4 commits intomasterfrom
small-data-inline
Open

wire-protocol: Send buffer data in-line below a certain size#35
wmanley wants to merge 4 commits intomasterfrom
small-data-inline

Conversation

@wmanley
Copy link
Copy Markdown
Owner

@wmanley wmanley commented Jan 8, 2021

Below a certain size it's faster to copy the data than it is to use mmap.
This will make pulsevideo more efficient for audio and encoded video data.

wtay and others added 4 commits January 8, 2021 14:26
Add caps property that allows the src to easily negotiate a format.
Here we make things match the GStreamer model a bit better.  Our payloader
payloads the caps too so before it's:

    video/x-raw,format=BGR

and after it's

    application/x-fd,payloaded-name=video/x-raw,format=BGR

and vice-versa for the depayloader.  We're now communicating the payloaded
caps over DBus rather than the payloaded ones.

This way we can set the caps on the socketsrc, rather than having them
applied after the payloader using a capsfilter.  They will travel
downstream synchronised with the data.

This fits better with the GStreamer model and will make implementing
fddepay as a `GstBaseParse` possible.  Without this we don't know how to
set caps on the fddepay srcpad and GstBaseParse throws an error.
We're looking to send small buffers directly over the socket, rather than
with FD payloading.  GstBaseParse is the appropriate base class for this
as it allows splitting and concatenating buffers.
Below a certain size it's faster to copy the data than it is to use `mmap`.
This will make pulsevideo more efficient for audio and encoded video data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants