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
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
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
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
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
–
arg0
–
udata
–
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:
the object which received the signal
the GBytes data to load
Properties
draw-background
“draw-background” gboolean
Whether to draw the WebView background
Flags : Read / Write
Default value : true
The results of the search are