Last active
January 9, 2020 18:59
-
-
Save dericed/56cd81f18293d1f9ef43b25d75e27c51 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Ffmpegdecklink < Formula | |
desc "FFmpeg with --enable-decklink" | |
homepage "https://ffmpeg.org/" | |
url "https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.xz" | |
sha256 "cec7c87e9b60d174509e263ac4011b522385fd0775292e1670ecc1180c9bb6d4" | |
revision 1 | |
head "https://github.com/FFmpeg/FFmpeg.git" | |
keg_only "anything that needs this will know where to look" | |
option "with-chromaprint", "Enable the Chromaprint audio fingerprinting library" | |
option "with-fdk-aac", "Enable the Fraunhofer FDK AAC library" | |
option "with-libass", "Enable ASS/SSA subtitle format" | |
option "with-iec61883", "Enable DV device (Linux)" if OS.linux? | |
option "with-librsvg", "Enable SVG files as inputs via librsvg" | |
option "with-libsoxr", "Enable the soxr resample library" | |
option "with-libssh", "Enable SFTP protocol via libssh" | |
option "with-tesseract", "Enable the tesseract OCR engine" | |
option "with-libvidstab", "Enable vid.stab support for video stabilization" | |
option "with-opencore-amr", "Enable Opencore AMR NR/WB audio format" | |
option "with-openh264", "Enable OpenH264 library" | |
option "with-openjpeg", "Enable JPEG 2000 image format" | |
option "with-openssl", "Enable SSL support" | |
option "with-rtmpdump", "Enable RTMP protocol" | |
option "with-rubberband", "Enable rubberband library" | |
option "with-webp", "Enable using libwebp to encode WEBP images" | |
option "with-zeromq", "Enable using libzeromq to receive commands sent through a libzeromq client" | |
option "with-zimg", "Enable z.lib zimg library" | |
option "with-srt", "Enable SRT library" | |
deprecated_option "with-libtesseract" => "with-tesseract" | |
depends_on "nasm" => :build | |
depends_on "pkg-config" => :build | |
depends_on "texi2html" => :build | |
depends_on "amiaopensource/amiaos/decklinksdk" | |
depends_on "freetype" | |
depends_on "lame" | |
depends_on "libvorbis" | |
depends_on "libvpx" | |
depends_on "openjpeg" | |
depends_on "opus" | |
depends_on "sdl2" | |
depends_on "snappy" | |
depends_on "theora" | |
depends_on "x264" | |
depends_on "x265" | |
depends_on "xvid" | |
depends_on "xz" | |
depends_on "chromaprint" => :optional | |
depends_on "fdk-aac" => :optional | |
depends_on "fontconfig" => :optional | |
depends_on "frei0r" => :optional | |
depends_on "game-music-emu" => :optional | |
depends_on "libass" => :optional | |
depends_on "libbluray" => :optional | |
depends_on "libbs2b" => :optional | |
depends_on "libcaca" => :optional | |
depends_on "libgsm" => :optional | |
depends_on "libmodplug" => :optional | |
depends_on "librsvg" => :optional | |
depends_on "libsoxr" => :optional | |
depends_on "libssh" => :optional | |
depends_on "libvidstab" => :optional | |
depends_on "opencore-amr" => :optional | |
depends_on "openh264" => :optional | |
depends_on "openssl" => :optional | |
depends_on "rtmpdump" => :optional | |
depends_on "rubberband" => :optional | |
depends_on "speex" => :optional | |
depends_on "srt" => :optional | |
depends_on "tesseract" => :optional | |
depends_on "two-lame" => :optional | |
depends_on "wavpack" => :optional | |
depends_on "webp" => :optional | |
depends_on "zeromq" => :optional | |
depends_on "zimg" => :optional | |
patch :DATA | |
def install | |
# Work around Xcode 11 clang bug, see: | |
# https://bitbucket.org/multicoreware/x265/issues/514/wrong-code-generated-on-macos-1015 | |
# https://trac.ffmpeg.org/ticket/8073 | |
ENV.append_to_cflags "-fno-stack-check" if DevelopmentTools.clang_build_version >= 1010 | |
args = %W[ | |
--prefix=#{prefix} | |
--disable-shared | |
--enable-version3 | |
--cc=#{ENV.cc} | |
--host-cflags=#{ENV.cflags} | |
--host-ldflags=#{ENV.ldflags} | |
--enable-gpl | |
--enable-libfreetype | |
--enable-libmp3lame | |
--enable-libopus | |
--enable-libsnappy | |
--enable-libtheora | |
--enable-libvorbis | |
--enable-libvpx | |
--enable-libx264 | |
--enable-libx265 | |
--enable-libxvid | |
] | |
args << "--enable-chromaprint" if build.with? "chromaprint" | |
args << "--enable-frei0r" if build.with? "frei0r" | |
args << "--enable-libass" if build.with? "libass" | |
args << "--enable-libbluray" if build.with? "libbluray" | |
args << "--enable-libbs2b" if build.with? "libbs2b" | |
args << "--enable-libcaca" if build.with? "libcaca" | |
args << "--enable-libfdk-aac" if build.with? "fdk-aac" | |
args << "--enable-libfontconfig" if build.with? "fontconfig" | |
args << "--enable-libgme" if build.with? "game-music-emu" | |
args << "--enable-libgsm" if build.with? "libgsm" | |
args << "--enable-libiec61883" if (build.with? "iec61883") && OS.linux? | |
args << "--enable-libmodplug" if build.with? "libmodplug" | |
args << "--enable-libopencore-amrnb" << "--enable-libopencore-amrwb" if build.with? "opencore-amr" | |
args << "--enable-libopenh264" if build.with? "openh264" | |
args << "--enable-librsvg" if build.with? "librsvg" | |
args << "--enable-librtmp" if build.with? "rtmpdump" | |
args << "--enable-librubberband" if build.with? "rubberband" | |
args << "--enable-libsoxr" if build.with? "libsoxr" | |
args << "--enable-libspeex" if build.with? "speex" | |
args << "--enable-libsrt" if build.with? "srt" | |
args << "--enable-libssh" if build.with? "libssh" | |
args << "--enable-libtesseract" if build.with? "tesseract" | |
args << "--enable-libtwolame" if build.with? "two-lame" | |
args << "--enable-libvidstab" if build.with? "libvidstab" | |
args << "--enable-libwavpack" if build.with? "wavpack" | |
args << "--enable-libwebp" if build.with? "webp" | |
args << "--enable-libzimg" if build.with? "zimg" | |
args << "--enable-libzmq" if build.with? "zeromq" | |
args << "--enable-opencl" if MacOS.version > :lion | |
args << "--enable-openssl" if build.with? "openssl" | |
args << "--enable-videotoolbox" if MacOS.version >= :mountain_lion | |
# force libopenjpeg options | |
args << "--enable-libopenjpeg" | |
args << "--disable-decoder=jpeg2000" | |
args << "--extra-cflags=" + `pkg-config --cflags libopenjp2`.chomp | |
# decklink options | |
args << "--enable-nonfree" | |
args << "--enable-decklink" | |
args << "--extra-cflags=-I#{HOMEBREW_PREFIX}/include" | |
args << "--extra-ldflags=-L#{HOMEBREW_PREFIX}/include" | |
system "./configure", *args | |
system "make" | |
bin.install "ffmpeg" => "ffmpeg-dl" | |
bin.install "ffprobe" => "ffprobe-dl" | |
bin.install "ffplay" => "ffplay-dl" | |
if build.with? "tools" | |
system "make", "alltools" | |
bin.install Dir["tools/*"].select { |f| File.executable? f } | |
# Fix for non-executables that were installed to bin | |
mv bin/"python", pkgshare/"python", :force => true | |
end | |
end | |
test do | |
# Create an example mp4 file | |
mp4out = testpath/"video.mp4" | |
system bin/"ffmpeg-dl", "-filter_complex", "testsrc=rate=1:duration=1", mp4out | |
assert_predicate mp4out, :exist? | |
end | |
end | |
__END__ | |
diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m | |
index af8fe31367..5ee2f0a1bc 100644 | |
--- a/libavdevice/avfoundation.m | |
+++ b/libavdevice/avfoundation.m | |
@@ -496,7 +496,7 @@ static int add_video_device(AVFormatContext *s, AVCaptureDevice *video_device) | |
[ctx->video_output setVideoSettings:capture_dict]; | |
} | |
- [ctx->video_output setAlwaysDiscardsLateVideoFrames:YES]; | |
+ [ctx->video_output setAlwaysDiscardsLateVideoFrames:NO]; | |
ctx->avf_delegate = [[AVFFrameReceiver alloc] initWithContext:ctx]; | |
-- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment