Does `shmsrc` / `shmsink` have a "stable" protocol?
Greg Kennedy via gstreamer-devel <[email protected]>
| Newsgroups | gmane.comp.video.gstreamer.devel |
|---|---|
| Message-ID | <CAN1+P_0ZYDTKY4f7UMoVdgyyCbqa7y-smeZh_mtY9yyaAt2FiA@mail.gmail.com> |
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?