<div dir="ltr"><div dir="ltr">On Mon, Apr 20, 2020 at 10:45 AM Erik Rull <<a href="mailto:erik.rull@rdsoftware.de">erik.rull@rdsoftware.de</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I pipe an 8 bit greyscale video stream through gstreamer. To allow another<br>
process to access the gstreamer results, I use shmsrc / shmsink.<br>
But to get the data piped through properly, I have to push the format to<br>
video/x-raw,format=(string)BGRx, otherwise the transfer through shm doesn't seem<br>
to work properly.<br>
This cost a big pile of CPU power for the upconversion and wastes a lot of RAM<br>
(only embedded device).<br>
<br>
Any idea what could be wrong here?<br></blockquote><div><br></div><div>You shouldn't have to convert to BGRx to use shmsrc/shmsink, those elements don't even really have the concept of video, they're agnostic to it, they just see buffers that need to be sent. Can you share your sending and receiving pipeline?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">And - if you have alternative approaches how to connect two independently<br>
running gstreamer processes (same device), just let me know, I'd be happy to<br>
improve my approach here...<br></blockquote><div><br></div><div>Shared memory is zero-copy, so has the best performance. What kind of throughput are you using? And what platform?</div><div><br></div><div>-Josh</div></div></div>