<div dir="ltr"><div dir="auto">Hi yu,<div dir="auto"><br></div><div>I am doing some real-time computation on multiple synced video streams.</div><div><br></div><div>I am currently using OpenGL compute shaders to do this. Hence, the current frame of each stream is bound to a texture and passed to the shader. The shader also needs access to some extra information between invocations so I need to swap textures in and out between calls.  I want to stream the output of this shader to another machine which will load that information into an OpenGL texture and render it to the screen. I can't stream directly to the screen as I am using OpenGL to render a rudimentary GUI on top of this. I'm open to alternative solutions on this end of the pipeline. However, for other projects, I will need to stream into a texture and use that later so I thought it would be a good thing to learn now.<br></div><div><br></div><div>I've looked at the GStreamer docs for GstGLShader and I'm not sure how I would set something like that up. There don't seem to be any signals to change the bound textures between invocations. Also, I'm a total noob with GStreamer so this would be my first foray into the OpenGL plugin. Do you have anything closer to a user guide than the quick reference the docs and gst-inspect provide? I have a lot more questions and don't want to waste your time.<br></div><div><br></div><div>If the above is not possible I can modify my code so that the shader does not need to change the textures it has bound between invocations.</div><div><br></div><div>Thanks</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 15 Jun 2021, 20:43 Yu You, <<a href="mailto:youyu.youyu@gmail.com" target="_blank">youyu.youyu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">It is not clear what you are trying to do exactly. But you can use glshader for GLSL shadering and then use the same memory type (no need to gldownload etc.) to HW  encoder like NVEnc (AVC or HEVC); and then packtize the encoded byte stream using corresponding RTP pays. <div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto"><br></div><div dir="auto">Yu</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 14 Jun 2021, 15:40 Edward Anon via gstreamer-devel, <<a href="mailto:gstreamer-devel@lists.freedesktop.org" rel="noreferrer" target="_blank">gstreamer-devel@lists.freedesktop.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi all,</div><div><br></div><div>I want to stream an OpenGL texture over a network.</div><div><br></div><div>I'm struggling with getting the texture into a GStreamer pipeline. I've seen other users resort to using appsink and appsrc elements, but I want to keep the texture in the GPU and do encoding and decoding there.</div><div><br></div><div>I've looked at the website and the source (in gst-plugins-base for the OpenGL plugin documentation. However, there seems to be no documentation beyond pads and signals, making it very difficult to learn how to use the plugin.</div><div><br></div><div>Any pointers to relevant docs/resources would be much appreciated, and working code would be too good to be true ;)</div><div><br></div><div>Thanks!<br></div></div>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" rel="noreferrer noreferrer" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div>
</blockquote></div>