wpesrc

The wpesrc element is used to produce a video texture representing a web page rendered off-screen by WPE.

Starting from WPEBackend-FDO 1.6.x, software rendering support is available. This features allows wpesrc to be used on machines without GPU, and/or for testing purpose. To enable it, set the LIBGL_ALWAYS_SOFTWARE=true environment variable and make sure video/x-raw, format=BGRA caps are negotiated by the wpesrc element.

Example launch lines

Show the GStreamer website homepage

gst-launch-1.0 -v wpesrc location="https://gstreamer.freedesktop.org" ! queue ! glimagesink

Save the first 50 video frames generated for the GStreamer website as PNG files in /tmp

LIBGL_ALWAYS_SOFTWARE=true gst-launch-1.0 -v wpesrc num-buffers=50 location="https://gstreamer.freedesktop.org" ! videoconvert ! pngenc ! multifilesink location=/tmp/snapshot-%05d.png

Show the GStreamer website homepage as played with GstPlayer in a GTK+ window

gst-play-1.0 --videosink gtkglsink wpe://https://gstreamer.freedesktop.org

The web:// URI protocol is also supported, as an alias to wpe://. Since: 1.20

Composite WPE with a video stream in a single OpenGL scene

gst-launch-1.0  glvideomixer name=m sink_1::zorder=0 ! glimagesink wpesrc location="file:///home/phil/Downloads/plunk/index.html" draw-background=0 ! m. videotestsrc ! queue ! glupload ! glcolorconvert ! m.

Composite WPE with a video stream, sink_0 pad properties have to match the video dimensions

gst-launch-1.0 glvideomixer name=m sink_1::zorder=0 sink_0::height=818 sink_0::width=1920 ! gtkglsink wpesrc location="file:///home/phil/Downloads/plunk/index.html" draw-background=0 ! m. uridecodebin uri="http://192.168.1.44/Sintel.2010.1080p.mkv" name=d d. ! queue ! glupload ! glcolorconvert ! m.

Additionally, any audio stream created by WPE is exposed as "sometimes" audio source pads.

This source also relays GStreamer bus messages from the GStreamer pipelines running inside the web pages as element custom messages which structure is called WpeForwarded and has the following fields:

  • message: The original GstMessage
  • wpesrc-original-src-name: Name of the original element posting the message
  • wpesrc-original-src-type: Name of the GType of the original element posting the message
  • wpesrc-original-src-path: Path of the original element positing the message

Note: This feature will be disabled if you disable the tracer subsystem.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──wpesrc

Implemented interfaces

Factory details

Authors: – Philippe Normand , Žan Doberšek

Classification:Source/Video/Audio

Rank – none

Plugin – wpe

Package – gst-plugins-bad

Pad Templates

audio_%u

Each audio stream in the renderer web page will expose the and audio_%u GstPad.

audio/x-raw:
         format: F32LE
           rate: [ 1, 2147483647 ]
       channels: [ 1, 2147483647 ]
         layout: interleaved
audio/x-raw:
         format: F64LE
           rate: [ 1, 2147483647 ]
       channels: [ 1, 2147483647 ]
         layout: interleaved
audio/x-raw:
         format: S16LE
           rate: [ 1, 2147483647 ]
       channels: [ 1, 2147483647 ]
         layout: interleaved

Presencesometimes

Directionsrc

Object typeGstPad


src

video/x-raw(memory:GLMemory):
         format: RGBA
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
pixel-aspect-ratio: 1/1
 texture-target: 2D
video/x-raw:
         format: BGRA

Presencealways

Directionsrc

Object typeGstPad


video

video/x-raw(memory:GLMemory):
         format: RGBA
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
pixel-aspect-ratio: 1/1
 texture-target: 2D
video/x-raw:
         format: BGRA
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
pixel-aspect-ratio: 1/1

Presencealways

Directionsrc

Object typeGstPad


Signals

configure-web-view

configure_web_view_callback (GstElement * param_0,
                             GObject * arg0,
                             gpointer udata)
def configure_web_view_callback (param_0, arg0, udata):
    #python callback for the 'configure-web-view' signal
function configure_web_view_callback(param_0: GstElement * param_0, arg0: GObject * arg0, udata: gpointer udata): {
    // javascript callback for the 'configure-web-view' signal
}

Parameters:

param_0
No description available
arg0
No description available
udata
No description available

Flags: Run Last


Action Signals

load-bytes

g_signal_emit_by_name (src, "load-bytes", bytes);
ret = src.emit ("load-bytes", bytes)
let ret = src.emit ("load-bytes", bytes);

Load the specified bytes into the internal webView.

Parameters:

src (GstElement *)

the object which received the signal

bytes (GBytes *)

the GBytes data to load

Flags: Run Last / Action


Properties

draw-background

“draw-background” gboolean

Whether to draw the WebView background

Flags : Read / Write

Default value : true


location

“location” gchararray

The URL to display

Flags : Read / Write

Default value : NULL


The results of the search are