diff options
author | Anthony Cowley <acowley@gmail.com> | 2016-03-11 15:12:55 -0500 |
---|---|---|
committer | Anthony Cowley <acowley@gmail.com> | 2016-04-15 18:21:33 -0400 |
commit | 184a3957e6a476e6f81abee552856861118ce85b (patch) | |
tree | 05b4d3c87ce7cf0de91b11868c1a3494e6519776 | |
parent | ca1d46f98a71d3b21de0b9a30f759a7af2514f61 (diff) | |
download | nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar.gz nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar.bz2 nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar.lz nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar.xz nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.tar.zst nixpkgs-184a3957e6a476e6f81abee552856861118ce85b.zip |
ffmpeg-full: avfoundation indev support on darwin
Adds support for camera input devices on OS X. This required fixing links in output libraries and executables to pull in the system's CoreFoundation.framework rather than the open source CF one.
-rw-r--r-- | pkgs/development/libraries/ffmpeg-full/default.nix | 22 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
2 files changed, 21 insertions, 5 deletions
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix index 91974a31175..0f6ffe51d85 100644 --- a/pkgs/development/libraries/ffmpeg-full/default.nix +++ b/pkgs/development/libraries/ffmpeg-full/default.nix @@ -141,7 +141,7 @@ /* * Darwin frameworks */ -, Cocoa, CoreServices +, Cocoa, CoreServices, AVFoundation, MediaToolbox, VideoDecodeAcceleration, CF }: /* Maintainer notes: @@ -177,7 +177,7 @@ let inherit (stdenv) isCygwin isFreeBSD isLinux; - inherit (stdenv.lib) optional optionals enableFeature; + inherit (stdenv.lib) optional optionals optionalString enableFeature; in /* @@ -410,11 +410,25 @@ stdenv.mkDerivation rec { ++ optionals nonfreeLicensing [ faac fdk_aac openssl ] ++ optional ((isLinux || isFreeBSD) && libva != null) libva ++ optionals isLinux [ alsaLib libraw1394 libv4l ] - ++ optionals stdenv.isDarwin [ Cocoa CoreServices ]; + ++ optionals stdenv.isDarwin [ Cocoa CoreServices AVFoundation MediaToolbox + VideoDecodeAcceleration ]; # Build qt-faststart executable buildPhase = optional qtFaststartProgram ''make tools/qt-faststart''; - postInstall = optional qtFaststartProgram ''cp -a tools/qt-faststart $out/bin/''; + + # Hacky framework patching technique borrowed from the phantomjs2 package + postInstall = optionalString qtFaststartProgram '' + cp -a tools/qt-faststart $out/bin/ + '' + optionalString stdenv.isDarwin '' + FILES=($(ls $out/bin/*)) + FILES+=($(ls $out/lib/*.dylib)) + for f in ''${FILES[@]}; do + if [ ! -h "$f" ]; then + install_name_tool -change ${CF}/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation "$f" + fi + done + ''; + enableParallelBuilding = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9e44ac3e0bb..5cf8a5b7448 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6705,7 +6705,9 @@ in vid-stab = if stdenv.isDarwin then null else vid-stab; x265 = if stdenv.isDarwin then null else x265; xavs = if stdenv.isDarwin then null else xavs; - inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices; + inherit (darwin) CF; + inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices AVFoundation + MediaToolbox VideoDecodeAcceleration; }; ffmpegthumbnailer = callPackage ../development/libraries/ffmpegthumbnailer { }; |