e9cbe52d96
Manually backported a CEF 97 bug fix to CEF 95 and rebuilt for all platforms. More info: https://bitbucket.org/chromiumembedded/cef/issues/3193/#comment-61679139
446 lines
11 KiB
JSON
446 lines
11 KiB
JSON
{
|
|
"app-id": "com.obsproject.Studio",
|
|
"runtime": "org.kde.Platform",
|
|
"runtime-version": "5.15-21.08",
|
|
"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",
|
|
"--own-name=org.kde.StatusNotifierItem-2-2",
|
|
"--system-talk-name=org.freedesktop.Avahi",
|
|
"--env=VST_PATH=/app/extensions/Plugins/lxvst"
|
|
],
|
|
"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": "21.08",
|
|
"add-ld-path": "lib",
|
|
"merge-dirs": "lxvst",
|
|
"subdirectories": true,
|
|
"no-autodownload": true
|
|
}
|
|
},
|
|
"cleanup": [
|
|
"/lib/pkgconfig",
|
|
"/share/man",
|
|
"*.la"
|
|
],
|
|
"modules": [
|
|
{
|
|
"name": "x264",
|
|
"config-opts": [
|
|
"--disable-cli",
|
|
"--enable-shared"
|
|
],
|
|
"cleanup": [
|
|
"/include"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://code.videolan.org/videolan/x264.git",
|
|
"commit": "66a5bc1bd1563d8227d5d18440b525a09bcf17ca"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "v4l-utils",
|
|
"config-opts": [
|
|
"--disable-static",
|
|
"--disable-doxygen-doc",
|
|
"--disable-libdvbv5",
|
|
"--disable-v4l-utils",
|
|
"--disable-qv4l2",
|
|
"--with-udevdir=/app/lib/udev/"
|
|
],
|
|
"cleanup": [
|
|
"/include"
|
|
],
|
|
"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.0",
|
|
"commit": "b641a195edbe3ac9788e681e22c2e2fad8aacddb"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "srt",
|
|
"buildsystem": "cmake-ninja",
|
|
"config-opts": [
|
|
"-DENABLE_STATIC=OFF",
|
|
"-DENABLE_APPS=OFF",
|
|
"-DENABLE_LOGGING=OFF"
|
|
],
|
|
"cleanup": [
|
|
"/include",
|
|
"/bin"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://github.com/Haivision/srt.git",
|
|
"tag": "v1.4.4",
|
|
"commit": "8b32f3734ff6af7cc7b0fef272591cb80a2d1aae"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "f71e2878084126737cc39083e1e15afc459bd93d",
|
|
"tag": "v2.27.0"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "librist",
|
|
"buildsystem":"meson",
|
|
"builddir": true,
|
|
"config-opts": [
|
|
"-Duse_mbedtls=true",
|
|
"-Dtest=false",
|
|
"-Dbuilt_tools=false",
|
|
"-Dbuiltin_cjson=true"
|
|
],
|
|
"cleanup": [
|
|
"/include"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://code.videolan.org/rist/librist.git",
|
|
"commit": "0b1aaf995c4cad83d562ec7887180cc6ee132c84"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://aomedia.googlesource.com/aom.git",
|
|
"tag": "v3.2.0",
|
|
"commit": "287164de79516c25c8c84fd544f67752c170082a"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
|
|
"tag": "v0.8.6",
|
|
"commit": "a5ec26c0f0bd6e872a0b2bb340b4a777f4847020"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"/include"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://git.ffmpeg.org/ffmpeg.git",
|
|
"commit": "cc33e73618a981de7fd96385ecb34719de031f16",
|
|
"disable-shallow-clone": true
|
|
},
|
|
{
|
|
"type": "git",
|
|
"dest": "obs-deps",
|
|
"url": "https://github.com/obsproject/obs-deps.git",
|
|
"tag": "2022-01-01",
|
|
"commit": "15072cd42722d87c6b3ed1636b22e98c08575f20"
|
|
},
|
|
{
|
|
"type": "shell",
|
|
"commands": [
|
|
"git cherry-pick -n d1b47f3bfcc625ca1cae210fc198dcbd54381a88 # avcodec/vaapi_encode: Fix segfault upon closing uninitialized encoder",
|
|
"patch -Np1 -i obs-deps/CI/patches/FFmpeg-4.4.1-OBS.patch",
|
|
"patch -Np1 -i obs-deps/CI/patches/FFmpeg-4.4.1-librist.patch",
|
|
"patch -Np1 -i obs-deps/CI/patches/FFmpeg-4.4.1-libaomenc.patch",
|
|
"patch -Np1 -i obs-deps/CI/patches/FFmpeg-9010.patch"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "luajit",
|
|
"no-autogen": true,
|
|
"cleanup": [
|
|
"/bin",
|
|
"/include",
|
|
"*.a"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://luajit.org/git/luajit-2.0.git",
|
|
"commit": "ec6edc5c39c25e4eb3fca51b753f9995e97215da",
|
|
"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": "pipewire",
|
|
"buildsystem": "meson",
|
|
"config-opts": [
|
|
"-Daudiotestsrc=disabled",
|
|
"-Droc=disabled",
|
|
"-Dvideotestsrc=disabled",
|
|
"-Dvolume=disabled",
|
|
"-Dvulkan=disabled",
|
|
"-Ddocs=disabled",
|
|
"-Dman=disabled",
|
|
"-Dbluez5-codec-ldac=disabled",
|
|
"-Dbluez5-codec-aptx=disabled",
|
|
"-Dlibcamera=disabled",
|
|
"-Dudevrulesdir=/app/lib/udev/rules.d/",
|
|
"-Dsession-managers=[]"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://github.com/pipewire/pipewire.git",
|
|
"tag": "0.3.40",
|
|
"commit": "7afd80052b7c49754a13c9ab49c368f95b60e0a7"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ntv2",
|
|
"buildsystem": "cmake-ninja",
|
|
"builddir": true,
|
|
"config-opts": [
|
|
"-DCMAKE_BUILD_TYPE=Release",
|
|
"-DAJA_BUILD_OPENSOURCE=ON"
|
|
],
|
|
"cleanup": [
|
|
"/include"
|
|
],
|
|
"sources": [
|
|
{
|
|
"type": "git",
|
|
"url": "https://github.com/aja-video/ntv2.git",
|
|
"commit": "abf17cc1e7aadd9f3e4972774a3aba2812c51b75"
|
|
},
|
|
{
|
|
"type": "shell",
|
|
"commands": [
|
|
"sed -i 's/Clang|GNU/GNU/g' cmake/CommonFlags.cmake",
|
|
"sed -i 's/Linux|Darwin/Linux/g' cmake/CommonFlags.cmake"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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_4638_linux64.tar.bz2",
|
|
"sha256": "54aba14a7228bb8f2573e081d795b4161bf3568796f8729ad42a9f8ef9c6d1ec"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "obs",
|
|
"buildsystem": "cmake-ninja",
|
|
"builddir": true,
|
|
"config-opts": [
|
|
"-DCMAKE_BUILD_TYPE=Release",
|
|
"-DENABLE_WAYLAND=ON",
|
|
"-DBUILD_BROWSER=ON",
|
|
"-DCEF_ROOT_DIR=/app/cef",
|
|
"-DUNIX_STRUCTURE=ON",
|
|
"-DUSE_XDG=ON",
|
|
"-DDISABLE_ALSA=ON",
|
|
"-DENABLE_PULSEAUDIO=ON",
|
|
"-DWITH_RTMPS=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": "../../"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|