Merge pull request #305665 from hacker1024/update/gst-plugins-rs

gst_all_1.gst-plugins-rs: 0.11.0+fixup -> 0.12.4
This commit is contained in:
Lily Foster 2024-05-03 12:20:46 -04:00 committed by GitHub
commit 662ae2a0cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 2061 additions and 1241 deletions

@ -12,6 +12,7 @@
, MediaToolbox
, OpenGL
, Security
, SystemConfiguration
, VideoToolbox
, ipu6ep-camera-hal
, ipu6epmtl-camera-hal
@ -32,7 +33,7 @@
gst-plugins-viperfx = callPackage ./viperfx { };
gst-plugins-rs = callPackage ./rs { inherit Security; };
gst-plugins-rs = callPackage ./rs { inherit Security SystemConfiguration; };
gst-rtsp-server = callPackage ./rtsp-server { };

File diff suppressed because it is too large Load Diff

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitLab
, fetchFromGitHub
, fetchpatch
, rustPlatform
, meson
@ -23,6 +24,7 @@
, openssl
, pango
, Security
, SystemConfiguration
, gst-plugins-good
, nix-update-script
# specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
@ -60,8 +62,8 @@ let
raptorq = [ ];
reqwest = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
rtp = [ ];
webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
# text
textahead = [ ];
@ -79,7 +81,19 @@ let
# video
cdg = [ ];
closedcaption = [ pango ];
dav1d = [ dav1d ];
dav1d = [
# Only dav1d < 1.3 is supported for now.
# https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1393
(dav1d.overrideAttrs rec {
version = "1.2.1";
src = fetchFromGitHub {
owner = "videolan";
repo = "dav1d";
rev = version;
hash = "sha256-RrEim3HXXjx2RUU7K3wPH3QbhNTRN9ZX/oAcyE9aV8I=";
};
})
];
ffv1 = [ ];
gif = [ ];
gtk4 = [ gtk4 ];
@ -126,9 +140,9 @@ in
assert lib.assertMsg (invalidPlugins == [])
"Invalid gst-plugins-rs plugin${lib.optionalString (lib.length invalidPlugins > 1) "s"}: ${lib.concatStringsSep ", " invalidPlugins}";
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gst-plugins-rs";
version = "0.11.0+fixup";
version = "0.12.4";
outputs = [ "out" "dev" ];
@ -136,8 +150,8 @@ stdenv.mkDerivation rec {
domain = "gitlab.freedesktop.org";
owner = "gstreamer";
repo = "gst-plugins-rs";
rev = version;
hash = "sha256-nvDvcY/WyVhcxitcoqgEUT8A1synZqxG2e51ct7Fgss=";
rev = finalAttrs.version;
hash = "sha256-Qnp+e1Vww2kWjDG0x2tcigwDdG67I4xnm8+QrBI+o08=";
# TODO: temporary workaround for case-insensitivity problems with color-name crate - https://github.com/annymosse/color-name/pull/2
postFetch = ''
sedSearch="$(cat <<\EOF | sed -ze 's/\n/\\n/g'
@ -162,12 +176,12 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"cairo-rs-0.18.1" = "sha256-k+YIAZXxejbxPQqbUU91qbx2AR98gTrseknLHtNZDEE=";
"cairo-rs-0.19.3" = "sha256-TjVXdnlYEfPLbUx1pC84rCC2MlNecECMK2Yo9XKwz9M=";
"color-name-1.1.0" = "sha256-RfMStbe2wX5qjPARHIFHlSDKjzx8DwJ+RjzyltM5K7A=";
"ffv1-0.0.0" = "sha256-af2VD00tMf/hkfvrtGrHTjVJqbl+VVpLaR0Ry+2niJE=";
"flavors-0.2.0" = "sha256-zBa0X75lXnASDBam9Kk6w7K7xuH9fP6rmjWZBUB5hxk=";
"gdk4-0.7.1" = "sha256-UMGmZivVdvmKRAjIGlj6pjDxwfNJyz8/6C0eYH1OOw4=";
"gstreamer-0.21.0" = "sha256-2uilK8wYG8e59fdL3q+kmixc1zw+EBwqvGs/EgfCGhk=";
"gdk4-0.8.1" = "sha256-VPmegFZ/bC8x1vkl3YU208jQ8FCEKLwe6ZDatz4mIvM=";
"gstreamer-0.22.4" = "sha256-r5+wOEhTVztDMEu6t47yJ9HIlbXyjdvswUND4l7kPl8=";
};
};
@ -202,36 +216,26 @@ stdenv.mkDerivation rec {
map (plugin: lib.mesonEnable plugin true) selectedPlugins
) ++ [
(lib.mesonOption "sodium-source" "system")
(lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck)
(lib.mesonEnable "doc" enableDocumentation)
];
# turn off all auto plugins since we use a list of plugins we generate
mesonAutoFeatures = "disabled";
doCheck = true;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
# csound lib dir must be manually specified for it to build
# webrtc and webrtchttp plugins are the only that need gstreamer-webrtc (from gst-plugins-bad, a heavy set)
preConfigure = ''
export CARGO_BUILD_JOBS=$NIX_BUILD_CORES
patchShebangs dependencies.py
'' + lib.optionalString (lib.elem "csound" selectedPlugins) ''
export CSOUND_LIB_DIR=${lib.getLib csound}/lib
'' + lib.optionalString (lib.mutuallyExclusive [ "webrtc" "webrtchttp" ] selectedPlugins) ''
sed -i "/\['gstreamer-webrtc-1\.0', 'gst-plugins-bad', 'gstwebrtc_dep', 'gstwebrtc'\]/d" meson.build
'' + lib.optionalString (!gst-plugins-base.glEnabled) ''
sed -i "/\['gstreamer-gl-1\.0', 'gst-plugins-base', 'gst_gl_dep', 'gstgl'\]/d" meson.build
'';
# run tests ourselves to avoid meson timing out by default
checkPhase = ''
runHook preCheck
meson test --no-rebuild --verbose --timeout-multiplier 12
runHook postCheck
'';
# give meson longer before timing out for tests
mesonCheckFlags = [ "--verbose" "--timeout-multiplier" "12" ];
doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic &&
stdenv.hostPlatform.isElf;
@ -243,6 +247,7 @@ stdenv.mkDerivation rec {
passthru.updateScript = nix-update-script {
# use numbered releases rather than gstreamer-* releases
# this matches upstream's recommendation: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/470#note_2202772
extraArgs = [ "--version-regex" "([0-9.]+)" ];
};
@ -254,4 +259,4 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
maintainers = with maintainers; [ lilyinstarlight ];
};
}
})

@ -21244,7 +21244,7 @@ with pkgs;
gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg-headless; });
inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security VideoToolbox;
inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security SystemConfiguration VideoToolbox;
});
gusb = callPackage ../development/libraries/gusb { };