<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">Le sam. 9 févr. 2019 19 h 22,  <<a href="mailto:mike@baseforsale.com">mike@baseforsale.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you for the information.  I'm looking into VivDirect path and will <br>
update with progress.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">In case this is useful, there is a patch abandoned by its author here, not sure it's related: <a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/476">https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/476</a></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On 2019-02-08 06:42, Nicolas Dufresne wrote:<br>
> Le vendredi 08 février 2019 à 10:02 +0000, Philippe Normand a écrit :<br>
>> Hi Mike,<br>
>> <br>
>> Thanks for your interest in WPE ;)<br>
>> <br>
>> On Thu, 2019-02-07 at 19:49 -0700, <a href="mailto:mike@baseforsale.com" target="_blank" rel="noreferrer">mike@baseforsale.com</a> wrote:<br>
>> > Hi,<br>
>> ><br>
>> > I'm attempting to get WPE working on an iMX6 and I've come across an<br>
>> > issue with gstreamer-gl.  I think it is an issue with the meta-<br>
>> > format<br>
>> > being incorrectly reported after it leaves glupload. Examining the<br>
>> > dot<br>
>> > files between the two streams below, the only difference is that the<br>
>> > format reported going into the colorConvertElement, for the pipeline<br>
>> > that plays, is I420.  On the pipeline that does not play the format<br>
>> > being reported is RGBA.  I'm assuming that glupload should just<br>
>> > transfer<br>
>> > the buffer but maintain the format and then glcolorconvert would<br>
>> > actually convert it.<br>
>> ><br>
>> ><br>
>> > This pipeline does not work and is representative of what WPE sets<br>
>> > up.<br>
>> > gst-launch-1.0 uridecodebin<br>
>> > uri=<br>
>> > <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm" rel="noreferrer noreferrer" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm</a><br>
>> ><br>
>> > ! glupload ! glcolorconvert ! 'video/x-raw(memory:GLMemory),<br>
>> > format=RGBA' ! glimagesink<br>
>> ><br>
>> <br>
>> Is there a chance you could try a GStreamer 1.15.x development<br>
>> snapshot? I believe the issue you're experiencing might be fixed with<br>
>> the patches from <a href="https://bugzilla.gnome.org/show_bug.cgi?id=783521" rel="noreferrer noreferrer" target="_blank">https://bugzilla.gnome.org/show_bug.cgi?id=783521</a><br>
> <br>
> Hi Philippe, those patches are meant for mainline linux, running<br>
> etnaviv (and some of the mesa patches are not upstream yet). But I see<br>
> for lower trace the VivFB is being used, which indicates a vendor<br>
> kernel. It remains that we have similar mechanism, VivDirect ? or<br>
> something that is a fast path for buffer importation, so whatever you<br>
> import will come out as RGBA. This have had quite low testing from what<br>
> I understood, hence might have bugs.<br>
> <br>
>> <br>
>> Philippe<br>
>> <br>
>> > Got context from element 'sink': gst.gl.GLDisplay=context,<br>
>> > gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayVivFB\)\<br>
>> > gldisplayvivfb0";ch-1.0 uridecodebin<br>
>> > uri=<br>
>> > <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.w0:00:00.798403126" rel="noreferrer noreferrer" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.w0:00:00.798403126</a><br>
>> ><br>
>> >   2956  0x178f0c0 WARN               structure<br>
>> > gststructure.c:1832:priv_gst_structure_append_to_gstring: No value<br>
>> > transform to serialize field 'session' of type 'SoupSession'<br>
>> > GST_DEBUgst-launch-1.0 uridecodebin uri=https:Got context from<br>
>> > element<br>
>> > 'source': gst.soup.session=context, session=(SoupSession)NULL,<br>
>> > force=(boolean)false;<br>
>> > 0:00:01.612460820  2956 0x69172780 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()ad !<br>
>> > [INFO]ntbitstreamMode 1, chromaInterleave 0, mapType 0,<br>
>> > tiled2LinearEnable 0ssion)NULL, ot@cbt7g-imx6:/Apps#<br>
>> > GST_DEgst-launch-1.0 uridecodebin<br>
>> > uri=<br>
>> > <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm" rel="noreferrer noreferrer" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm</a><br>
>> ><br>
>> > ! gl0:00:01.625965600  2956 0x68e10a30 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()  ot@cbt7g-imx6:/Apps#<br>
>> > GST_Dgst-launch-1.0 uridecodebin uri=https://www.f0:00:01.626970658<br>
>> > 2956 0x68e10a30 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > 0:00:01.718965973  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB ! glupload ! glc<br>
>> > 0:00:01.726362400  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using<br>
>> > <a href="http://RGBww.freedesktop.org/software/gstreamer-" rel="noreferrer noreferrer" target="_blank">RGBww.freedesktop.org/software/gstreamer-</a><br>
>> > sdk/data/media/sintel_trailer-480p.webm<br>
>> > ! glupload 0:00:01.726457405  2956 0x68e10a30 WARN<br>
>> > video-info video-info.c:463:gst_video_info_from_caps: invalid matrix<br>
>> > 4<br>
>> > for RGB format, using RGB              ot@cbt7g-imx6:/Apps#<br>
>> > GSgst-launch-1.0 uridecodebin uri=<br>
>> > https://www.freedesk0:00:01.728128169<br>
>> > 2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:01.728205506  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGBload ! glcolo<br>
>> > 0:00:01.728464521  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:01.728970884  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:01.729322571  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:01.730005944  2956 0x68e10a30 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:01.775663248  2956 0x68e10a30 ERROR                default<br>
>> > video-frame.c:175:gst_video_frame_map_id: invalid buffer size 622080<br>
>> > <<br>
>> > 1639680<br>
>> > 0:00:01.775980933  2956 0x68e10a30 ERROR            glimagesink<br>
>> > gstglimagesink.c:1630:prepare_next_buffer: Failed to map video frame.<br>
>> > 0:00:01.776059937  2956 0x68e10a30 WARN             glimagesink<br>
>> > gstglimagesink.c:1740:gst_glimage_sink_prepare:<sink> error: Failed<br>
>> > to<br>
>> > convert multiview video buffer<br>
>> > ERROR: from element<br>
>> > /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSi<br>
>> > nk:sink:<br>
>> > Failed to convert multiview video buffer<br>
>> > Additional debug info:<br>
>> > ../../../gst-plugins-base-1.14.4/ext/gl/gstglimagesink.c(1740):<br>
>> > gst_glimage_sink_prepare ():<br>
>> > /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSi<br>
>> > nk:sink<br>
>> > ERROR: pipeline doesn't want to preroll.<br>
>> > Setting pipeline to NULL ...<br>
>> > 0:00:01.795633068  2956 0x68e10a30 ERROR                default<br>
>> > video-frame.c:175:gst_video_frame_map_id: invalid buffer size 622080<br>
>> > <<br>
>> > 1639680<br>
>> > 0:00:01.795889083  2956 0x68e10a30 ERROR            glimagesink<br>
>> > gstglimagesink.c:1630:prepare_next_buffer: Failed to map video frame.<br>
>> > 0:00:01.796545454  2956 0x68e10a30 WARN             glimagesink<br>
>> > gstglimagesink.c:1740:gst_glimage_sink_prepare:<sink> error: Failed<br>
>> > to<br>
>> > convert multiview video buffer<br>
>> ><br>
>> > If place a capsfilter after glupload as follows this plays.  Although<br>
>> > it<br>
>> > is very choppy.<br>
>> ><br>
>> > gst-launch-1.0 uridecodebin<br>
>> > uri=<br>
>> > <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm" rel="noreferrer noreferrer" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm</a><br>
>> ><br>
>> > ! glupload ! 'video/x-raw(memory:GLMemory), format=I420' !<br>
>> > glcolorconvert ! 'video/x-raw(memory:GLMemory), format=RGBA' !<br>
>> > glimagesink<br>
>> ><br>
>> > Pipeline is PREROLLING ...<br>
>> > Got context from element 'sink': gst.gl.GLDisplay=context,<br>
>> > gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayVivFB\)\<br>
>> > gldisplayvivfb0";<br>
>> > 0:00:00.784881429  3038  0x203d0e0 WARN               structure<br>
>> > gststructure.c:1832:priv_gst_structure_append_to_gstring: No value<br>
>> > transform to serialize field 'session' of type 'SoupSession'<br>
>> > Got context from element 'source': gst.soup.session=context,<br>
>> > session=(SoupSession)NULL, force=(boolean)false;<br>
>> > 0:00:01.664324875  3038 0x69171b80 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > [INFO]     bitstreamMode 1, chromaInterleave 0, mapType 0,<br>
>> > tiled2LinearEnable 0<br>
>> > 0:00:01.676512565  3038 0x68e0fc30 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > 0:00:01.678046318  3038 0x68e0fc30 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > Pipeline is PREROLLED ...<br>
>> > Setting pipeline to PLAYING ...<br>
>> > New clock: GstSystemClock<br>
>> ><br>
>> ><br>
>> > Playing through cog via cog -P fdo<br>
>> > <a href="https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm" rel="noreferrer noreferrer" target="_blank">https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm</a><br>
>> ><br>
>> > 0:00:02.103917221  2985  0x16eb060 FIXME                default<br>
>> > gstutils.c:3981:gst_pad_create_stream_id_internal:<appsrc0:src><br>
>> > Creating<br>
>> > random stream-id, consider implementing a deterministic way of<br>
>> > creating<br>
>> > a stream-id<br>
>> > 0:00:02.220573905  2985  0x15b1200 FIXME                    bin<br>
>> > gstbin.c:4338:gst_bin_query: implement duration caching in GstBin<br>
>> > again<br>
>> > 0:00:02.548372019  2985  0x16f5fb0 WARN                    alsa<br>
>> > conf.c:5000:snd_config_expand: alsalib error: Unknown parameters<br>
>> > {AES0<br>
>> > 0x02 AES1 0x82 AES2 0x00 AES3 0x02}<br>
>> > 0:00:02.548545695  2985  0x16f5fb0 WARN                    alsa<br>
>> > pcm.c:2501:snd_pcm_open_noupdate: alsalib error: Unknown PCM<br>
>> > default:{AES0 0x02 AES1 0x82 AES2 0x00 AES3 0x02}<br>
>> > 0:00:02.752764062  2985 0x6fb0abb0 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > [INFO]     bitstreamMode 1, chromaInterleave 0, mapType 0,<br>
>> > tiled2LinearEnable 0<br>
>> > 0:00:03.192916613  2985  0x183f780 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > 0:00:03.217193003  2985  0x183f780 FIXME           videodecoder<br>
>> > gstvideodecoder.c:933:gst_video_decoder_drain_out:<imxvpudecoder0><br>
>> > Sub-class should implement drain()<br>
>> > 0:00:04.002508326  2985 0x6e70e950 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:04.004410435  2985 0x6e70e950 WARN                glwindow<br>
>> > gstglwindow.c:293:gst_gl_window_new: Could not create window. user<br>
>> > specified (null), creating dummy window<br>
>> > 0:00:04.027153405  2mxc_vpu 2040000.vpu_fsl: VPU interrupt received.<br>
>> > 985  0x15b1200 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:04.028060123  2985 0x6e70e950 WARN              video-info<br>
>> > video-info.c:463:gst_video_info_from_caps: invalid matrix 4 for RGB<br>
>> > format, using RGB<br>
>> > 0:00:04.037512332  2985 0x6e70e950 ERROR                default<br>
>> > video-frame.c:175:gst_video_frame_map_id: invalid buffer size 622080<br>
>> > <<br>
>> > 1639680<br>
>> ><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > gstreamer-devel mailing list<br>
>> > <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
>> > <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>> <br>
>> _______________________________________________<br>
>> gstreamer-devel mailing list<br>
>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
> <br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div></div></div>