{
  "app-id": "com.obsproject.Studio",
  "runtime": "org.kde.Platform",
  "runtime-version": "6.4",
  "sdk": "org.kde.Sdk",
  "command": "obs",
  "finish-args": [
    "--socket=wayland",
    "--socket=x11",
    "--socket=pulseaudio",
    "--device=all",
    "--share=network",
    "--share=ipc",
    "--filesystem=xdg-run/pipewire-0",
    "--filesystem=host",
    "--talk-name=org.kde.StatusNotifierWatcher",
    "--talk-name=org.freedesktop.Flatpak",
    "--talk-name=org.freedesktop.Notifications",
    "--talk-name=org.a11y.Bus",
    "--own-name=org.kde.StatusNotifierItem-2-2",
    "--system-talk-name=org.freedesktop.Avahi",
    "--env=VST_PATH=/app/extensions/Plugins/vst"
  ],
  "add-extensions": {
    "com.obsproject.Studio.Plugin": {
      "directory": "plugins",
      "subdirectories": true,
      "add-ld-path": "lib",
      "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
      "no-autodownload": true,
      "autodelete": true
    },
    "org.freedesktop.LinuxAudio.Plugins": {
      "directory": "extensions/Plugins",
      "version": "22.08",
      "add-ld-path": "lib",
      "merge-dirs": "vst",
      "subdirectories": true,
      "no-autodownload": true
    }
  },
  "cleanup": [
    "/share/man",
    "*.la"
  ],
  "modules": [
    {
      "name": "x264",
      "config-opts": [
        "--disable-cli",
        "--enable-shared"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://code.videolan.org/videolan/x264.git",
          "commit": "b093bbe7d9bc642c8f24067cbdcc73bb43562eab"
        }
      ]
    },
    {
      "name": "v4l-utils",
      "config-opts": [
        "--disable-static",
        "--disable-doxygen-doc",
        "--disable-libdvbv5",
        "--disable-v4l-utils",
        "--disable-qv4l2",
        "--with-udevdir=/app/lib/udev/"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
          "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
        }
      ]
    },
    {
      "name": "nv-codec-headers",
      "no-autogen": true,
      "make-install-args": [
        "PREFIX=/app"
      ],
      "cleanup": [
        "*"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git",
          "tag": "n11.1.5.1",
          "commit": "84483da70d903239d4536763fde8c7e6c4e80784"
        }
      ]
    },
    {
      "name": "srt",
      "buildsystem": "cmake-ninja",
      "config-opts": [
        "-DENABLE_STATIC=OFF",
        "-DENABLE_APPS=OFF",
        "-DENABLE_LOGGING=OFF"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig",
        "/bin"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/Haivision/srt.git",
          "tag": "v1.5.1",
          "commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
        }
      ]
    },
    {
      "name": "mbedtls",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DCMAKE_BUILD_TYPE=Release",
        "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
        "-DUSE_SHARED_MBEDTLS_LIBRARY=ON",
        "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF",
        "-DENABLE_TESTING=OFF",
        "-DENABLE_PROGRAMS=OFF"
      ],
      "cleanup": [
        "/include"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/ARMmbed/mbedtls.git",
          "commit": "869298bffeea13b205343361b7a7daf2b210e33d",
          "tag": "v3.2.1"
        }
      ]
    },
    {
      "name": "librist",
      "buildsystem":"meson",
      "builddir": true,
      "config-opts": [
        "-Duse_mbedtls=true",
        "-Dtest=false",
        "-Dbuilt_tools=false",
        "-Dbuiltin_cjson=true"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://code.videolan.org/rist/librist.git",
          "commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
        }
      ]
    },
    {
      "name": "aom",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DCMAKE_BUILD_TYPE=Release",
        "-DBUILD_SHARED_LIBS=ON",
        "-DENABLE_DOCS=OFF",
        "-DENABLE_EXAMPLES=OFF",
        "-DENABLE_TESTDATA=OFF",
        "-DENABLE_TESTS=OFF",
        "-DENABLE_TOOLS=OFF "
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://aomedia.googlesource.com/aom.git",
          "commit": "bcfe6fbfed315f83ee8a95465c654ee8078dbff9",
          "tag": "v3.5.0"
        }
      ]
    },
    {
      "name": "svt-av1",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DCMAKE_BUILD_TYPE=Release",
        "-DBUILD_SHARED_LIBS=ON",
        "-DBUILD_APPS=OFF",
        "-DBUILD_DEC=ON",
        "-DBUILD_ENC=ON",
        "-DBUILD_TESTING=OFF"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
          "tag": "v1.3.0",
          "commit": "91b94efb2809e83d9bf041d8575b32f234dfef27"
        }
      ]
    },
    {
      "name": "ffmpeg",
      "config-opts": [
        "--enable-gpl",
        "--enable-shared",
        "--disable-static",
        "--enable-gnutls",
        "--disable-doc",
        "--disable-programs",
        "--disable-devices",
        "--enable-libopus",
        "--enable-libvpx",
        "--enable-libvorbis",
        "--enable-libx264",
        "--enable-nvenc",
        "--enable-libsrt",
        "--enable-librist",
        "--enable-libaom",
        "--enable-libsvtav1"
      ],
      "cleanup": [
        "/share/ffmpeg"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/FFmpeg/FFmpeg.git",
          "commit": "eacfcbae690f914a4b1b4ad06999f138540cc3d8",
          "disable-shallow-clone": true
        },
        {
          "type": "git",
          "dest": "obs-deps",
          "url": "https://github.com/obsproject/obs-deps.git",
          "tag": "2022-11-21",
          "commit": "ba56d64e4cbcc0aec4fa0efcef5f5a1e6a1ba91d"
        },
        {
          "type": "shell",
          "commands": [
            "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-FFmpeg-5.1.2-OBS.patch"
          ]
        }
      ]
    },
    {
      "name": "luajit",
      "no-autogen": true,
      "cleanup": [
        "/bin",
        "/include",
        "/lib/pkgconfig",
        "*.a"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://luajit.org/git/luajit-2.0.git",
          "commit": "7a0cf5fd4c6c841d0455a51271af4fd4390c7884",
          "disable-shallow-clone": true
        },
        {
          "type": "shell",
          "commands": [
            "sed -i 's|/usr/local|/app|' ./Makefile"
          ]
        }
      ]
    },
    {
      "name": "swig",
      "config-opts": [
        "--without-boost",
        "--without-pcre",
        "--without-alllang",
        "--with-lua=/app/bin/luajit-2.1.0-beta3",
        "--with-luaincl=/app/include/luajit-2.1",
        "--with-python3"
      ],
      "cleanup": [
        "*"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz",
          "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
        }
      ]
    },
    {
      "name": "jack2",
      "buildsystem": "simple",
      "build-commands": [
        "./waf configure --prefix=$FLATPAK_DEST",
        "./waf build -j $FLATPAK_BUILDER_N_JOBS",
        "./waf install"
      ],
      "cleanup": [
        "*"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://github.com/jackaudio/jack2/releases/download/v1.9.14/v1.9.14.tar.gz",
          "sha256": "a20a32366780c0061fd58fbb5f09e514ea9b7ce6e53b080a44b11a558a83217c"
        }
      ]
    },
    {
      "name": "ntv2",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DCMAKE_BUILD_TYPE=Release",
        "-DAJA_BUILD_OPENSOURCE=ON",
        "-DAJA_BUILD_APPS=OFF",
        "-DAJA_INSTALL_HEADERS=ON"
      ],
      "cleanup": [
        "/include"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/aja-video/ntv2.git",
          "tag": "v16.2-bugfix5",
          "commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
        }
      ]
    },
    {
      "name": "jansson",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DJANSSON_EXAMPLES=OFF",
        "-DJANSSON_BUILD_DOCS=OFF",
        "-DJANSSON_BUILD_SHARED_LIBS=ON",
        "-DJANSSON_WITHOUT_TESTS=ON"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/akheron/jansson.git",
          "tag": "v2.14",
          "commit": "684e18c927e89615c2d501737e90018f4930d6c5"
        }
      ]
    },
    {
      "name": "cef",
      "buildsystem": "cmake-ninja",
      "no-make-install": true,
      "make-args": [
        "libcef_dll_wrapper"
      ],
      "build-commands": [
        "mkdir -p /app/cef/libcef_dll_wrapper",
        "cp -R ./include /app/cef",
        "cp -R ./Release /app/cef",
        "cp -R ./Resources /app/cef",
        "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper"
      ],
      "cleanup": [
        "*"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
          "sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
        }
      ]
    },
    {
      "name": "obs",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DCMAKE_BUILD_TYPE=Release",
        "-DENABLE_WAYLAND=ON",
        "-DENABLE_BROWSER=ON",
        "-DCEF_ROOT_DIR=/app/cef",
        "-DUSE_XDG=ON",
        "-DENABLE_ALSA=OFF",
        "-DENABLE_PULSEAUDIO=ON",
        "-DENABLE_JACK=ON",
        "-DENABLE_RTMPS=ON",
        "-DENABLE_VLC=OFF",
        "-DENABLE_AJA=ON"
      ],
      "secret-opts": [
        "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
        "-DRESTREAM_HASH=$RESTREAM_HASH",
        "-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
        "-DTWITCH_HASH=$TWITCH_HASH",
        "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
        "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
        "-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
        "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
      ],
      "post-install": [
        "install -d /app/plugins",
        "install -d /app/extensions/Plugins"
      ],
      "sources": [
        {
          "type": "dir",
          "path": "../../"
        }
      ]
    }
  ]
}
