<div dir="ltr"><div dir="ltr">Thanks Philippe, Sorry for the late follow up. I got side tracked. What's the best way to build and play with wpe in an uninstalled env? I use gst-build but when I try to buid wpewebkit it needs gstreamer. When I try to build wpewebkit inside gst-build env it fails. (1.16 branch)<div>Example error: /data/dev/gst-build/subprojects/gst-plugins-base/gst-libs/gst/audio/audio-info.h:139:1: error: ‘GST_API_IMPORT’ does not name a type; did you mean ‘GST_URI_NO_PORT’?</div> GST_AUDIO_API<div><br></div><div>What would be the best way? What I am missing?</div><div><br></div><div>Thanks<br>FredT</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 2, 2020 at 4:09 AM Philippe Normand <<a href="mailto:phil@base-art.net">phil@base-art.net</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">On Mon, 2020-06-01 at 08:29 -0700, Frederic Turmel wrote:<br>
> GPU:<br>
> 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620<br>
> (rev 07)<br>
> Subsystem: Lenovo UHD Graphics 620<br>
> Kernel driver in use: i915<br>
> Kernel modules: i915<br>
<br>
Ok that configuration should work.<br>
<br>
> I built master and 1.16 of gst-build the same way. I did not disable<br>
> wayland on purpose. Can you confirm the libs required for wayland?<br>
> <br>
<br>
Here on Debian bullseye:<br>
<br>
nm -D /usr/lib/x86_64-linux-gnu/libgstgl-1.0.so.0.1602.0 | grep<br>
gst_gl_display_wayland<br>
00000000000440b0 T gst_gl_display_wayland_get_type<br>
0000000000044110 T gst_gl_display_wayland_new<br>
0000000000044220 T gst_gl_display_wayland_new_with_display<br>
<br>
I suspect you might have gst-build libraries installed system-wide?<br>
I would recommend to use an uninstalled setup with gst-build, using<br>
gst-env.py.<br>
<br>
> Pipeline: LIBGL_ALWAYS_SOFTWARE=true GST_DEBUG=4 gst-launch-1.0 -v<br>
> wpesrc location="<a href="https://www.google.com" rel="noreferrer" target="_blank">https://www.google.com</a>" do-timestamp=1 ! video/x-<br>
> raw,width=1280,height=720,format=BGRA ! videoconvert ! glimagesink<br>
> sync=false async=false<br>
> Got this error in master: 0:00:00.506811911  9624 0x559767b4d400<br>
> FIXME                    bin gstbin.c:4359:gst_bin_query: implement<br>
> duration caching in GstBin again<br>
> 0:00:00.507116824  9624 0x559767d72e30 WARN               structure<br>
> gststructure.c:2006:priv_gst_structure_append_to_gstring: No value<br>
> transform to serialize field 'params' of type 'GstAllocationParams'<br>
> 0:00:00.507245184  9624 0x559767d72e30 INFO               structure<br>
> gststructure.c:2777:gst_structure_get_valist: Expected field 'gl-<br>
> allocation-params' in structure: GstBufferPoolConfig,<br>
> caps=(GstCaps)"video/x-raw\,\ format\=\(string\)BGRA\,\<br>
> width\=\(int\)1280\,\ height\=\(int\)720\,\<br>
> framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1",<br>
> size=(uint)3686400, min-buffers=(uint)1, max-buffers=(uint)0,<br>
> allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL,<br>
> options=(string)< GstBufferPoolOptionGLSyncMeta,<br>
> GstBufferPoolOptionGLTextureTarget2D, GstBufferPoolOptionVideoMeta,<br>
> GstBufferPoolOptionVideoGLTextureUploadMeta >;<br>
> 0:00:00.516988248  9624 0x559767d72e30 INFO                 basesrc<br>
> gstbasesrc.c:2857:gst_base_src_loop:<wpesrc0> pausing after<br>
> gst_base_src_get_range() = error<br>
> 0:00:00.517029747  9624 0x559767d72e30 WARN                 basesrc<br>
> gstbasesrc.c:3075:gst_base_src_loop:<wpesrc0> error: Internal data<br>
> stream error.<br>
> 0:00:00.517042325  9624 0x559767d72e30 WARN                 basesrc<br>
> gstbasesrc.c:3075:gst_base_src_loop:<wpesrc0> error: streaming<br>
> stopped, reason error (-5)<br>
> 0:00:00.517066065  9624 0x559767d72e30 INFO        GST_ERROR_SYSTEM<br>
> gstelement.c:2222:gst_element_message_full_with_details:<wpesrc0><br>
> posting message: Internal data stream error.<br>
> <br>
<br>
I'm not sure what's going on there. Is this with git master? Note that<br>
the support for software rendering in wpesrc is available only in git<br>
master and that requires a development version of WPEBackend-FDO<br>
(1.7.x).<br>
<br>
Also what's the point of forcing swrast in Mesa in that pipeline?<br>
Setting LIBGL_ALWAYS_SOFTWARE=true might have side-effects in gst-gl :)<br>
<br>
Can you try a simpler pipeline with a non-GL sink?<br>
LIBGL_ALWAYS_SOFTWARE=true gst-launch-1.0 wpesrc location="<br>
<a href="https://ddg.gg" rel="noreferrer" target="_blank">https://ddg.gg</a>" ! videoconvert ! queue ! gtksink<br>
<br>
Philippe<br>
<br>
> Attached full logs.<br>
> <br>
> On Mon, Jun 1, 2020 at 1:35 AM Philippe Normand <<a href="mailto:phil@base-art.net" target="_blank">phil@base-art.net</a>><br>
> wrote:<br>
> > Hi Frederic,<br>
> > <br>
> > On Sun, 2020-05-31 at 13:20 -0700, Frederic Turmel wrote:<br>
> > > Hi, I wanted to play with wpesrc element. Having issues and have<br>
> > some<br>
> > > questions. Build seems to be broken for 1.16.x<br>
> > > <br>
> > > Questions: <br>
> > > 1-Do you need wayland to use GL or we need to use weston. Any<br>
> > hint?<br>
> > <br>
> > Yes, in 1.16 Wayland is required.<br>
> > What's your GPU brand and driver being used?<br>
> > <br>
> > > 2-Hitting issue compiling for stable 1.16 branch. Master can<br>
> > compile<br>
> > > with the same env See below.<br>
> > > 3-When running with master and in software only mode, it works 1<br>
> > out<br>
> > > of 5. There seems to be a race condition.<br>
> > > <br>
> > > Got context from element 'wpesrc0': gst.gl.GLDisplay=context,<br>
> > > gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\<br>
> > gldisplayx11-0";<br>
> > > 0:00:00.433971380 23250 0x55db8aebacf0 WARN               <br>
> >  basesrc<br>
> > > gstbasesrc.c:3075:gst_base_src_loop:<wpesrc0> error: Internal<br>
> > data<br>
> > > stream error.<br>
> > > 0:00:00.434279847 23250 0x55db8aebacf0 WARN               <br>
> >  basesrc<br>
> > > gstbasesrc.c:3075:gst_base_src_loop:<wpesrc0> error: streaming<br>
> > > stopped, reason error (-5)<br>
> > > ERROR: from element /GstPipeline:pipeline0/GstWpeSrc:wpesrc0:<br>
> > > Internal data stream error<br>
> > > With more debugging seems to be related to:<br>
> > > GST_MESSAGE<br>
> > > gstelement.c:2191:gst_element_message_full_with_details:<wpesrc0><br>
> > > start<br>
> > > 0:00:01.310356869 23620 0x561a8f22e4a0 INFO       <br>
> > GST_ERROR_SYSTEM<br>
> > > gstelement.c:2222:gst_element_message_full_with_details:<wpesrc0><br>
> > > posting message: Internal data stream error.<br>
> > > 0:00:01.310396995 23620 0x561a8f22e4a0 WARN             <br>
> >  structure<br>
> > > gststructure.c:2006:priv_gst_structure_append_to_gstring: No<br>
> > value<br>
> > > transform to serialize field 'gerror' of type 'GError'<br>
> > > <br>
> > <br>
> > What's the pipeline for this error? ^^^<br>
> > <br>
> > > More details<br>
> > > Using ubuntu 18.04<br>
> > > I installed the latest stable dependency from <a href="http://webkit.org" rel="noreferrer" target="_blank">webkit.org</a><br>
> > > <br>
> > > Using gst-build with 1.16: I'm unable to build. getting this<br>
> > error:<br>
> > > git/gst-build/build/../subprojects/gst-plugins-<br>
> > > bad/ext/wpe/gstwpesrc.cpp:502: undefined reference to<br>
> > > `gst_gl_display_wayland_get_type'<br>
> > > <br>
> > <br>
> > This symbol should be in libgst-gl (AFAIK). Did you disable<br>
> > Wayland?<br>
> > <br>
> > > Using gst-build master: <br>
> > > Failing when running gl:<br>
> > > Got context from element 'wpesrc0': gst.gl.GLDisplay=context,<br>
> > > gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\<br>
> > gldisplayx11-0";<br>
> > > ** (gst-launch-1.0:22754): CRITICAL **: 13:08:05.161:<br>
> > > gst_egl_image_new_wrapped: assertion 'context != NULL' failed<br>
> > > <br>
> > <br>
> > WPE currently doesn't work on X11 environments. There's some on-<br>
> > going<br>
> > work in that direction though.<br>
> > <br>
> > Philippe<br>
> > <br>
> > > I'm able to run software only mode:<br>
> > > LIBGL_ALWAYS_SOFTWARE=true GST_DEBUG=3,wpesrc=7,wpe=7 gst-launch-<br>
> > 1.0<br>
> > > -v wpesrc location="<a href="http://cnn.com" rel="noreferrer" target="_blank">http://cnn.com</a>" ! video/x-<br>
> > > raw,width=1280,height=720,format=BGRA,framerate=\(fraction\)30/1<br>
> > !<br>
> > > videoconvert ! queue ! ximagesink sync=false async=false<br>
> > > <br>
> > > <br>
> > > FULL ERROR BLOB for 1.16 branch:<br>
> > > FAILED: subprojects/gst-plugins-bad/ext/wpe/libgstwpe.so <br>
> > > c++  -o subprojects/gst-plugins-bad/ext/wpe/libgstwpe.so<br>
> > > 'subprojects/gst-plugins-bad/ext/wpe/9fb9286@@gstwpe@sha/WPEThrea<br>
> > dedV<br>
> > > iew.cpp.o' 'subprojects/gst-plugins-bad/ext/wpe/9fb9286@@<br>
> > gstwpe@sha/g<br>
> > > stwpesrc.cpp.o' -Wl,--as-needed -Wl,--no-undefined -shared -fPIC<br>
> > > -Wl,--start-group -Wl,-soname,libgstwpe.so subprojects/gst-<br>
> > plugins-<br>
> > > base/gst-libs/gst/video/libgstvideo-1.0.so.0.1602.0<br>
> > > subprojects/gstreamer/libs/gst/base/libgstbase-1.0.so.0.1602.0<br>
> > > subprojects/gstreamer/gst/libgstreamer-1.0.so.0.1602.0<br>
> > > subprojects/orc/orc/liborc-0.4.so.0.29.0 subprojects/gst-plugins-<br>
> > > base/gst-libs/gst/gl/libgstgl-1.0.so.0.1602.0 /usr/lib/x86_64-<br>
> > linux-<br>
> > > gnu/libEGL.so /usr/local/lib/<a href="http://libWPEWebKit-1.0.so" rel="noreferrer" target="_blank">libWPEWebKit-1.0.so</a> /usr/lib/x86_64-<br>
> > > linux-gnu/<a href="http://libsoup-2.4.so" rel="noreferrer" target="_blank">libsoup-2.4.so</a> /usr/lib/x86_64-linux-gnu/<a href="http://libgio-2.0.so" rel="noreferrer" target="_blank">libgio-2.0.so</a><br>
> > > /usr/lib/x86_64-linux-gnu/<a href="http://libgobject-2.0.so" rel="noreferrer" target="_blank">libgobject-2.0.so</a> /usr/lib/x86_64-<br>
> > linux-<br>
> > > gnu/<a href="http://libglib-2.0.so" rel="noreferrer" target="_blank">libglib-2.0.so</a> /usr/local/lib/<a href="http://libwpe-1.0.so" rel="noreferrer" target="_blank">libwpe-1.0.so</a> /usr/lib/x86_64-<br>
> > > linux-gnu/libxkbcommon.so /usr/local/lib/<a href="http://libWPEBackend-fdo-1.0.so" rel="noreferrer" target="_blank">libWPEBackend-fdo-1.0.so</a><br>
> > > -Wl,--export-dynamic /usr/lib/x86_64-linux-gnu/<a href="http://libgmodule-2.0.so" rel="noreferrer" target="_blank">libgmodule-2.0.so</a><br>
> > > -pthread -lm /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-<br>
> > > linux-gnu/libX11-xcb.so /usr/lib/x86_64-linux-gnu/libxcb.so -Wl,<br>
> > > --end-group '-Wl,-rpath,$ORIGIN/../../../gst-plugins-base/gst-<br>
> > ><br>
> > libs/gst/video:$ORIGIN/../../../gstreamer/libs/gst/base:$ORIGIN/../<br>
> > ..<br>
> > > /../gstreamer/gst:$ORIGIN/../../../orc/orc:$ORIGIN/../../../gst-<br>
> > > plugins-base/gst-libs/gst/gl:$ORIGIN/../../../gst-plugins-<br>
> > base/gst-<br>
> > > libs/gst/allocators' -Wl,-rpath-link,/home/fturmel/git/gst-<br>
> > > build/build/subprojects/gst-plugins-base/gst-libs/gst/video -Wl,-<br>
> > > rpath-link,/home/fturmel/git/gst-<br>
> > > build/build/subprojects/gstreamer/libs/gst/base -Wl,-rpath-<br>
> > > link,/home/fturmel/git/gst-build/build/subprojects/gstreamer/gst<br>
> > > -Wl,-rpath-link,/home/fturmel/git/gst-<br>
> > build/build/subprojects/orc/orc <br>
> > > -Wl,-rpath-link,/home/fturmel/git/gst-<br>
> > build/build/subprojects/gst-<br>
> > > plugins-base/gst-libs/gst/gl -Wl,-rpath-<br>
> > link,/home/fturmel/git/gst-<br>
> > > build/build/subprojects/gst-plugins-base/gst-libs/gst/allocators<br>
> > > subprojects/gst-plugins-bad/ext/wpe/9fb9286@@gstwpe@sha/gstwpesrc<br>
> > .cpp<br>
> > > .o: In function `gst_wpe_src_change_state(_GstElement*,<br>
> > > GstStateChange)':<br>
> > > /home/fturmel/git/gst-build/build/../subprojects/gst-plugins-<br>
> > > bad/ext/wpe/gstwpesrc.cpp:502: undefined reference to<br>
> > > `gst_gl_display_wayland_get_type'<br>
> > > collect2: error: ld returned 1 exit status<br>
> > > _______________________________________________<br>
> > > gstreamer-devel mailing list<br>
> > > <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> > > <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
> > _______________________________________________<br>
> > gstreamer-devel mailing list<br>
> > <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> > <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="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">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div></div>