Skip to content
  • Eoin O'Neill's avatar
    Audio Support within an AppImage · 3845a10d
    Eoin O'Neill authored
    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 `install`ed 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.
    
    Changed `isInAppimage` GStreamer ENV logic to match other parts of Krita
    
    Cherry-Pick from Krita/4.3
    3845a10d