Does `shmsrc` / `shmsink` have a "stable" protocol?
Greg Kennedy
kennedy.greg at gmail.com
Sun Sep 17 18:18:26 UTC 2023
I am trying to write an app that inserts frames into an external
gstreamer pipeline, but without marshalling through a socket or
container format. I hit upon the idea of sharing the framebuffer via
shm IPC, avoiding a copy entirely.
So I considered writing a plugin for this, but it occurred to me that
there is already shmsrc in plugins-bad, and it does exactly what I
would want: getting frames from shared mem and pushing them into a
pipeline, plus supporting other gstreamer features like changing caps
midstream.
Normally of course shmsrc needs a matching shmsink; my question is
somewhat of a hack but I am curious if this could work:
* Modify my app to "look like" an shmsink - exposing framebuffer and
control info just like shmsink would
* Run a pipeline with shmsrc reading from my app's masquerading interface
I am curious how "stable" the interface is between shmsrc / shmsink.
If it changes frequently, this will be fragile - but if it's
well-defined, then I should be able to do it, and maybe it could be
documented (or spun off into a header) so others can do the same.
Thoughts?
More information about the gstreamer-devel
mailing list