Diffusion Krita 8b8a0fd7bf83

Audio Support within an AppImage

Authored by eoinoneill on Jun 17 2020, 4:44 AM.

Description

Audio Support within an AppImage

GStreamer and QT Multimedia can now be used inside an appimage
with only a few changes to the docker build environment.

Docker build environment currently:

~ Needs to build QT dependencies from source using changes to `3rdpart/ext_qt/CMakeLists.txt`
~ Needs to have GStreamer and GStreamer Plugins installed on the system.

Gstreamer specific environment variables are set within main.cc only when running
Krita through an AppImage context.

The appimage_build script could use some cleaning. Notable changes:

  • GStreamer is installed from docker environment libraries into APPDIR
  • QtMultimedia's mediaserver plugin is copied into the APPDIR.
  • Most importantly -- linuxdeployqt was filtering out mediaserver from our appimage bundle

when building with the -appimage flag for an unknown reason. A simple work around for this
seems to be to simply remove the --appimage flag from linuxdeployqt and use appimagetool
on the appdir manually. This seems to fix the issues I was having with linuxdeployqt.

Future Tasks:
1 -[ ] Begin reductions on which gstreamer libraries are included on the system. This will be time consuming
but will result in a smaller appimage size. Shouldn't be needed immediately though and is a polish step.
2 -[ ] Make sure changes to docker-environment are reduced to the bare-minimum necessary to get a working build.
If we could get GStreamer binaries with wget or alternatively build gstreamer and all necessary plugins from
source, it would mean a leaner docker image to download. Building GStreamer from source might be a pain.