<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body>
<div class="moz-cite-prefix">Hi,<br>
<br>
By default a 'video/x-raw(memory:GLMemory)' caps without the
texture-target field is equivalent to texture-target=2D as that
was the default before we differentiated the different OpenGL
texture targets. Now elements should be able to negotiate the
differences between them correctly however there may be bugs.<br>
<br>
The GLMemory output from omxh264dec is highly dependant on the
platform you are running on and may or may not work correctly. I
know that it used to work on the RPi and have not tested any other
omx platform myself.<br>
<br>
The first step to debugging this would be to enable GStreamer
debug logging to get an idea of what may be wrong.<br>
<br>
Cheers<br>
-Matt<br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 22/11/19 3:10 am, Milian Wolff
wrote:<br>
</div>
<blockquote type="cite" cite="mid:8200988.DV6Wv0CJbv@agathebauer">
<pre class="moz-quote-pre" wrap="">Hey all,
on a Raspberry Pi 3b+ gst-inspect-1.0 shows the following src for omxh264dec:
```
video/x-raw(memory:GLMemory)
format: RGBA
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
```
Note that this is missing a texture-target specification. What kind of memory
is this, and how can I leverage it further down? I would like to efficiently
change video frames using an OpenGL filter. If we take gleffects-twirl as an
example, it expects the following as sink:
```
video/x-raw(memory:GLMemory):
format: RGBA
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
texture-target: 2D
```
How can I connect the two together? If I try, to add the filter directly after
the decoder in a pipeline, I get:
```
ERROR: from element /GstPipeline:pipeline0/GstOMXH264Dec-
omxh264dec:omxh264dec-omxh264dec0: Internal data stream error.
Additional debug info:
../../gst-omx-1.16.1/omx/gstomxvideodec.c(1927): gst_omx_video_dec_loop (): /
GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
stream stopped, reason not-negotiated
```
Can someone sched some light on this? How can one post-process the GLMemory in
a gl video filter? Is the missing texture-target a bug in omxh264dec, or can I
somehow make the raw GLMemory a texture? Or does this mean the frame lives in
some other form of non-texture memory that can be displayed, but not otherwise
accessed by OpenGL for video filter purposes?
Thanks
PS: In case you are wondering what we are trying to achieve on a higher level:
rpicamsrc -> h264 -> omxh264dec -> glmemory -> custom gl filter to add a non-
static overlay to every frame -> tee to display sink and then also a h264-
encoded avi record sink
</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
</blockquote>
<p><br>
</p>
</body>
</html>