Multimedia¶
The WPE and GTK ports depend on the GStreamer multimedia framework for their multimedia-related features, such as video playback (with or without MediaSource Extensions and Encrypted Media Extensions), WebRTC, WebAudio, WebCodecs and MediaRecorder.
Gathering logs¶
GStreamer logs are often useful to help diagnose issues. Depending on the
browser used, the procedure might slightly change, but the general idea is to
set a few environment variables (mainly GST_DEBUG
and GST_DEBUG_FILE
) as
shown below for a couple runtime scenarios.
GStreamer pipeline graph dumps can also be useful for debugging purposes. They
can be enabled by setting the GST_DEBUG_DUMP_DOT_DIR
environment variable to
an existing filesystem folder path.
Once gathered, the log file and pipeline graph dumps can be zipped together and
uploaded online. Assuming the commands are executed as shown in the next
sections, the log file will be $HOME/gst.log
and the pipeline graph dumps will
be present in the $HOME/dots
folder.
Flatpak apps¶
In this section we take the example of the GNOME Web app, a.k.a. Epiphany.
Epiphany runs with its Web content process sandboxed, meaning that filesystem
access is restricted, so you need to make sure the GStreamer log file will be
located in a folder accessible in read-write mode by the Web content process,
using the WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS
environment variable and
the --filesystem=home
flatpak option.
mkdir -p $HOME/dots
flatpak run --filesystem=home --env="WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1" \
--env="GST_DEBUG=3,webkit*:6" --env="GST_DEBUG_FILE=$HOME/gst.log" \
--env="GST_DEBUG_DUMP_DOT_DIR=$HOME/dots" org.gnome.Epiphany -p "https://..."
GNOME Web has three different
flavours. The
command above is for the stable version (org.gnome.Epiphany
). The Tech Preview
application name is org.gnome.Epiphany.Devel
and the Canary version is called
org.gnome.Epiphany.Canary
. So depending on which version you test, the
command line will need to be adapted accordingly.
MiniBrowser¶
The WPE and GTK ports ship a sample web browser application called MiniBrowser. Its availability might depend on your Linux distro. If you built a development version of the WPE or GTK ports, you can start MiniBrowser as shown below, with the necessary GStreamer environment variables:
mkdir -p $HOME/dots
export GST_DEBUG="3,webkit*:6" GST_DEBUG_FILE=$HOME/gst.log GST_DEBUG_DUMP_DOT_DIR=$HOME/dots
Tools/Scripts/run-minibrowser --gtk "https://..."
Layout tests¶
When debugging multimedia layout tests on a developer build of the WPE or GTK port, the procedure is similar:
mkdir -p $HOME/dots
export GST_DEBUG="3,webkit*:6" GST_DEBUG_FILE=$HOME/gst.log GST_DEBUG_DUMP_DOT_DIR=$HOME/dots
Tools/Scripts/run-webkit-tests --gtk --no-retry-failures --no-show-results http/tests/media/video-play-stall.html