From 37452b9495dc0b026dbb6d1bc6bca52bfb94fb10 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 3 Mar 2018 12:04:20 -0500 Subject: [PATCH 01/15] Adding support for Decklink Devices from Black Magic Design. This commit adds support for windows-x86_64, but plan to add support for all platforms. --- ffmpeg/LICENSE.DeckLinkAPI | 23 +++++++++++++++++++++++ ffmpeg/cppbuild.sh | 10 ++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 ffmpeg/LICENSE.DeckLinkAPI diff --git a/ffmpeg/LICENSE.DeckLinkAPI b/ffmpeg/LICENSE.DeckLinkAPI new file mode 100644 index 00000000000..6be45fa3c1c --- /dev/null +++ b/ffmpeg/LICENSE.DeckLinkAPI @@ -0,0 +1,23 @@ + Copyright (c) 2016 Blackmagic Design + + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index b983d13e35d..00b56d12d6b 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -8,12 +8,13 @@ if [[ -z "$PLATFORM" ]]; then fi DISABLE="--disable-iconv --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf" -ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus" +ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus" "--enable-decklink" # minimal configuration to support MPEG-4 streams with H.264 and AAC as well as Motion JPEG # DISABLE="--disable-iconv --disable-libxcb --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-everything" # ENABLE="--enable-shared --enable-runtime-cpudetect --enable-libopenh264 --enable-encoder=libopenh264 --enable-encoder=aac --enable-encoder=mjpeg --enable-decoder=h264 --enable-decoder=aac --enable-decoder=mjpeg --enable-parser=h264 --enable-parser=aac --enable-parser=mjpeg --enable-muxer=mp4 --enable-muxer=rtsp --enable-muxer=mjpeg --enable-demuxer=mov --enable-demuxer=rtsp --enable-demuxer=mjpeg --enable-protocol=file --enable-protocol=http --enable-protocol=rtp --enable-protocol=rtmp" +BLACK_MAGIC=10.9.11 NASM_VERSION=2.13.03 ZLIB=zlib-1.2.11 LAME=lame-3.100 @@ -855,7 +856,12 @@ case $PLATFORM in PKG_CONFIG_PATH="../lib/pkgconfig" ./configure --prefix=$INSTALL_PATH --disable-shared --enable-static --enable-fast-install --with-pic --host=x86_64-w64-mingw32 # CFLAGS="-m64" CXXFLAGS="-m64" make -j $MAKEJ make install - cd ../ffmpeg-$FFMPEG_VERSION + # https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers + cd /C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC/Win/include + widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl + dos2unix DeckLinkAPI{,version}.h DeckLinkAPI_i.c + cp *.h *.c $INSTALL_PATH/include + cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ From d0107fc155efafecb5d17662a33a948f44bbf82e Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 3 Mar 2018 13:13:49 -0500 Subject: [PATCH 02/15] Enabling decklink support. --- ffmpeg/cppbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 00b56d12d6b..ee8ea5c0f0b 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -8,7 +8,7 @@ if [[ -z "$PLATFORM" ]]; then fi DISABLE="--disable-iconv --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf" -ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus" "--enable-decklink" +ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus --enable-decklink" # minimal configuration to support MPEG-4 streams with H.264 and AAC as well as Motion JPEG # DISABLE="--disable-iconv --disable-libxcb --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-everything" From 454b6453d34510cba330199b24763dc250e80e04 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 10 Mar 2018 00:45:39 -0500 Subject: [PATCH 03/15] Attempting to create static linking for avdevice. --- ffmpeg/cppbuild.sh | 1 + ffmpeg/ffmpeg-windows2.patch | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 ffmpeg/ffmpeg-windows2.patch diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index ee8ea5c0f0b..86174aa5c25 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -863,6 +863,7 @@ case $PLATFORM in cp *.h *.c $INSTALL_PATH/include cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch + # patch -Np1 < ../../../ffmpeg-windows2.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install diff --git a/ffmpeg/ffmpeg-windows2.patch b/ffmpeg/ffmpeg-windows2.patch new file mode 100644 index 00000000000..654aef17a34 --- /dev/null +++ b/ffmpeg/ffmpeg-windows2.patch @@ -0,0 +1,14 @@ +--- ffmpeg-3.4.2/configure 2018-02-11 19:29:18.000000000 -0500 ++++ ffmpeg-3.4.2-windows/configure 2018-03-08 23:35:16.586891700 -0500 +@@ -3087,9 +3087,9 @@ + caca_outdev_deps="libcaca" + decklink_deps_any="libdl LoadLibrary" + decklink_indev_deps="decklink threads" +-decklink_indev_extralibs="-lstdc++" ++decklink_indev_extralibs="-static-libstdc++" + decklink_outdev_deps="decklink threads" +-decklink_outdev_extralibs="-lstdc++" ++decklink_outdev_extralibs="-static-libstdc++" + libndi_newtek_indev_deps="libndi_newtek" + libndi_newtek_indev_extralibs="-lndi" + libndi_newtek_outdev_deps="libndi_newtek" From 3bb01ffa67e134304e54c967ac672f4288ebc2d9 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 10 Mar 2018 23:29:45 -0500 Subject: [PATCH 04/15] An additional patch to static link to libstdc++. Also need to install this for widl. pacman -S mingw-w64-{i686,x86_64}-tools-git --- ffmpeg/cppbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 86174aa5c25..37c20bf6f28 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -863,7 +863,7 @@ case $PLATFORM in cp *.h *.c $INSTALL_PATH/include cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch - # patch -Np1 < ../../../ffmpeg-windows2.patch + patch -Np1 < ../../../ffmpeg-windows2.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install From 369ade5b71830c539504572589f09cde9b04cd4b Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 17 Mar 2018 16:26:36 -0400 Subject: [PATCH 05/15] Decklink support for windows x86-64 if SDK is installed. --- ffmpeg/cppbuild.sh | 18 +++++++++++------- ...ws2.patch => ffmpeg-windows-decklink.patch} | 0 2 files changed, 11 insertions(+), 7 deletions(-) rename ffmpeg/{ffmpeg-windows2.patch => ffmpeg-windows-decklink.patch} (100%) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 37c20bf6f28..03377726fac 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -8,7 +8,7 @@ if [[ -z "$PLATFORM" ]]; then fi DISABLE="--disable-iconv --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf" -ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus --enable-decklink" +ENABLE="--enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfreetype --enable-libopus" # minimal configuration to support MPEG-4 streams with H.264 and AAC as well as Motion JPEG # DISABLE="--disable-iconv --disable-libxcb --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-everything" @@ -856,14 +856,18 @@ case $PLATFORM in PKG_CONFIG_PATH="../lib/pkgconfig" ./configure --prefix=$INSTALL_PATH --disable-shared --enable-static --enable-fast-install --with-pic --host=x86_64-w64-mingw32 # CFLAGS="-m64" CXXFLAGS="-m64" make -j $MAKEJ make install - # https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers - cd /C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC/Win/include - widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl - dos2unix DeckLinkAPI{,version}.h DeckLinkAPI_i.c - cp *.h *.c $INSTALL_PATH/include + if [ -d "/C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC" ]; then + # https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers + cd /C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC/Win/include + widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl + dos2unix DeckLinkAPI{,version}.h DeckLinkAPI_i.c + cp *.h *.c $INSTALL_PATH/include + + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-windows-decklink.patch + fi cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch - patch -Np1 < ../../../ffmpeg-windows2.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install diff --git a/ffmpeg/ffmpeg-windows2.patch b/ffmpeg/ffmpeg-windows-decklink.patch similarity index 100% rename from ffmpeg/ffmpeg-windows2.patch rename to ffmpeg/ffmpeg-windows-decklink.patch From 2513186971de3949aade6697b29560f034ff21e8 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 31 Mar 2018 01:11:19 -0400 Subject: [PATCH 06/15] Moved patching outside of conditional to ensure paths are correct. --- ffmpeg/cppbuild.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index 03377726fac..dac40c12d58 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -856,18 +856,18 @@ case $PLATFORM in PKG_CONFIG_PATH="../lib/pkgconfig" ./configure --prefix=$INSTALL_PATH --disable-shared --enable-static --enable-fast-install --with-pic --host=x86_64-w64-mingw32 # CFLAGS="-m64" CXXFLAGS="-m64" make -j $MAKEJ make install - if [ -d "/C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC" ]; then + BLACK_MAGIC_HOME="/C/SDK/Blackmagic DeckLink SDK $BLACK_MAGIC/Win/include/" + if [ -d "$BLACK_MAGIC_HOME" ]; then # https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers - cd /C/SDK/Blackmagic\ DeckLink\ SDK\ $BLACK_MAGIC/Win/include + cd "$BLACK_MAGIC_HOME" widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl dos2unix DeckLinkAPI{,version}.h DeckLinkAPI_i.c cp *.h *.c $INSTALL_PATH/include - ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-windows-decklink.patch fi cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch + patch -Np1 < ../../../ffmpeg-windows-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install From 92c267672c83df454e184dd6553e2a0884dbf4f2 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 4 Apr 2018 22:16:06 -0400 Subject: [PATCH 07/15] Adding all of the decklink headers directly, based on licensing issues. --- ffmpeg/cppbuild.sh | 27 +- ...s-decklink.patch => ffmpeg-decklink.patch} | 0 .../src/main/resources/decklink/decklink.txt | 15 + .../resources/decklink/linux/DeckLinkAPI.h | 1104 ++ .../decklink/linux/DeckLinkAPIConfiguration.h | 261 + .../linux/DeckLinkAPIConfiguration_v10_2.h | 60 + .../linux/DeckLinkAPIConfiguration_v10_4.h | 63 + .../linux/DeckLinkAPIConfiguration_v10_5.h | 60 + .../linux/DeckLinkAPIConfiguration_v10_9.h | 62 + .../decklink/linux/DeckLinkAPIDeckControl.h | 219 + .../decklink/linux/DeckLinkAPIDiscovery.h | 75 + .../decklink/linux/DeckLinkAPIDispatch.cpp | 146 + .../linux/DeckLinkAPIDispatch_v10_8.cpp | 146 + .../linux/DeckLinkAPIDispatch_v7_6.cpp | 109 + .../linux/DeckLinkAPIDispatch_v8_0.cpp | 133 + .../decklink/linux/DeckLinkAPIModes.h | 200 + .../decklink/linux/DeckLinkAPITypes.h | 125 + .../decklink/linux/DeckLinkAPIVersion.h | 37 + .../decklink/linux/DeckLinkAPI_v10_2.h | 55 + .../decklink/linux/DeckLinkAPI_v10_4.h | 45 + .../decklink/linux/DeckLinkAPI_v10_5.h | 46 + .../decklink/linux/DeckLinkAPI_v10_6.h | 50 + .../decklink/linux/DeckLinkAPI_v10_9.h | 45 + .../decklink/linux/DeckLinkAPI_v7_1.h | 198 + .../decklink/linux/DeckLinkAPI_v7_3.h | 173 + .../decklink/linux/DeckLinkAPI_v7_6.h | 404 + .../decklink/linux/DeckLinkAPI_v7_9.h | 88 + .../decklink/linux/DeckLinkAPI_v8_0.h | 63 + .../decklink/linux/DeckLinkAPI_v8_1.h | 111 + .../decklink/linux/DeckLinkAPI_v9_2.h | 81 + .../decklink/linux/DeckLinkAPI_v9_9.h | 98 + .../main/resources/decklink/linux/LinuxCOM.h | 103 + .../resources/decklink/macosx/DeckLinkAPI.h | 1120 ++ .../macosx/DeckLinkAPIConfiguration.h | 261 + .../macosx/DeckLinkAPIConfiguration_v10_2.h | 60 + .../macosx/DeckLinkAPIConfiguration_v10_4.h | 62 + .../macosx/DeckLinkAPIConfiguration_v10_5.h | 60 + .../macosx/DeckLinkAPIConfiguration_v10_9.h | 62 + .../decklink/macosx/DeckLinkAPIDeckControl.h | 219 + .../decklink/macosx/DeckLinkAPIDiscovery.h | 75 + .../decklink/macosx/DeckLinkAPIDispatch.cpp | 193 + .../macosx/DeckLinkAPIDispatch_v10_8.cpp | 193 + .../macosx/DeckLinkAPIDispatch_v7_6.cpp | 105 + .../macosx/DeckLinkAPIDispatch_v8_0.cpp | 131 + .../decklink/macosx/DeckLinkAPIModes.h | 200 + .../decklink/macosx/DeckLinkAPIStreaming.h | 379 + .../decklink/macosx/DeckLinkAPITypes.h | 125 + .../decklink/macosx/DeckLinkAPIVersion.h | 37 + .../decklink/macosx/DeckLinkAPI_v10_2.h | 55 + .../decklink/macosx/DeckLinkAPI_v10_4.h | 45 + .../decklink/macosx/DeckLinkAPI_v10_5.h | 46 + .../decklink/macosx/DeckLinkAPI_v10_6.h | 51 + .../decklink/macosx/DeckLinkAPI_v10_9.h | 45 + .../decklink/macosx/DeckLinkAPI_v7_1.h | 198 + .../decklink/macosx/DeckLinkAPI_v7_3.h | 173 + .../decklink/macosx/DeckLinkAPI_v7_6.h | 421 + .../decklink/macosx/DeckLinkAPI_v7_9.h | 91 + .../decklink/macosx/DeckLinkAPI_v8_0.h | 63 + .../decklink/macosx/DeckLinkAPI_v8_1.h | 111 + .../decklink/macosx/DeckLinkAPI_v9_2.h | 81 + .../decklink/macosx/DeckLinkAPI_v9_9.h | 101 + .../resources/decklink/windows/DeckLinkAPI.h | 16409 ++++++++++++++++ .../decklink/windows/DeckLinkAPI_i.c | 139 + .../decklink/windows/DeckLinkAPIversion.h | 37 + 64 files changed, 25739 insertions(+), 11 deletions(-) rename ffmpeg/{ffmpeg-windows-decklink.patch => ffmpeg-decklink.patch} (100%) create mode 100644 ffmpeg/src/main/resources/decklink/decklink.txt create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h create mode 100644 ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h create mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h create mode 100644 ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI.h create mode 100644 ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI_i.c create mode 100644 ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index fc495c312fb..a52318d7c49 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -421,6 +421,9 @@ case $PLATFORM in fi cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-linux.patch + cp -R $INSTALL_PATH/../../src/main/resources/decklink/linux/* $INSTALL_PATH/include + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" make -j $MAKEJ make install @@ -483,6 +486,9 @@ case $PLATFORM in fi cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-linux.patch + cp -R $INSTALL_PATH/../../src/main/resources/decklink/linux/* $INSTALL_PATH/include + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" make -j $MAKEJ make install @@ -744,6 +750,9 @@ case $PLATFORM in make install cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-macosx.patch + cp -R $INSTALL_PATH/../../src/main/resources/decklink/macosx/* $INSTALL_PATH/include + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-indev=avfoundation --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" --disable-doc --disable-programs make -j $MAKEJ make install @@ -801,6 +810,9 @@ case $PLATFORM in make install cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch + cp -R $INSTALL_PATH/../../src/main/resources/decklink/windows/* $INSTALL_PATH/include + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install @@ -856,18 +868,11 @@ case $PLATFORM in PKG_CONFIG_PATH="../lib/pkgconfig" ./configure --prefix=$INSTALL_PATH --disable-shared --enable-static --enable-fast-install --with-pic --host=x86_64-w64-mingw32 # CFLAGS="-m64" CXXFLAGS="-m64" make -j $MAKEJ make install - BLACK_MAGIC_HOME="/C/SDK/Blackmagic DeckLink SDK $BLACK_MAGIC/Win/include/" - if [ -d "$BLACK_MAGIC_HOME" ]; then - # https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers - cd "$BLACK_MAGIC_HOME" - widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl - dos2unix DeckLinkAPI{,version}.h DeckLinkAPI_i.c - cp *.h *.c $INSTALL_PATH/include - ENABLE="$ENABLE --enable-decklink" - fi - cd $INSTALL_PATH/ffmpeg-$FFMPEG_VERSION + cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-windows.patch - patch -Np1 < ../../../ffmpeg-windows-decklink.patch + cp -R $INSTALL_PATH/../../src/main/resources/decklink/windows/* $INSTALL_PATH/include + ENABLE="$ENABLE --enable-decklink" + patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -Wl,-Bdynamic" make -j $MAKEJ make install diff --git a/ffmpeg/ffmpeg-windows-decklink.patch b/ffmpeg/ffmpeg-decklink.patch similarity index 100% rename from ffmpeg/ffmpeg-windows-decklink.patch rename to ffmpeg/ffmpeg-decklink.patch diff --git a/ffmpeg/src/main/resources/decklink/decklink.txt b/ffmpeg/src/main/resources/decklink/decklink.txt new file mode 100644 index 00000000000..b1f1fbb48ab --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/decklink.txt @@ -0,0 +1,15 @@ +Instructions for the files before: + +1) Download latest Desktop SDK from https://www.blackmagicdesign.com/support +2) Install pacman -S mingw-w64-{i686,x86_64}-tools-git dos2unix + ** This is in addition to the normal windows values. + +=== Instructions for Compiling on Windows === +https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers + +cd /Win/include +widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl +dos2unix DeckLinkAPI{,version}.h DecklinkAPI_i.c +Get license from DeckLinkAPI.idl and paste it to the beginning of each resulting file or to a separate LICENSE file +sed -n '2,24 s/^\*\*//p' DeckLinkAPI.idl > DeckLinkAPI.LICENSE +Copy DeckLinkAPI.h, DeckLinkAPIVersion.h and DeckLinkAPI_i.c to your /include dir or add their dir path to CFLAGS \ No newline at end of file diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h new file mode 100644 index 00000000000..a1ef1ad912a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h @@ -0,0 +1,1104 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_H +#define BMD_DECKLINKAPI_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +/* DeckLink API */ + +#include +#include "LinuxCOM.h" + +#include "DeckLinkAPITypes.h" +#include "DeckLinkAPIModes.h" +#include "DeckLinkAPIDiscovery.h" +#include "DeckLinkAPIConfiguration.h" +#include "DeckLinkAPIDeckControl.h" + +#define BLACKMAGIC_DECKLINK_API_MAGIC 1 + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE}; +BMD_CONST REFIID IID_IDeckLinkInputCallback = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A}; +BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31}; +BMD_CONST REFIID IID_IDeckLinkMemoryAllocator = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8}; +BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6}; +BMD_CONST REFIID IID_IDeckLinkIterator = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA}; +BMD_CONST REFIID IID_IDeckLinkAPIInformation = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4}; +BMD_CONST REFIID IID_IDeckLinkOutput = /* CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564 */ {0xCC,0x5C,0x8A,0x6E,0x3F,0x2F,0x4B,0x3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64}; +BMD_CONST REFIID IID_IDeckLinkInput = /* AF22762B-DFAC-4846-AA79-FA8883560995 */ {0xAF,0x22,0x76,0x2B,0xDF,0xAC,0x48,0x46,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95}; +BMD_CONST REFIID IID_IDeckLinkEncoderInput = /* 270587DA-6B7D-42E7-A1F0-6D853F581185 */ {0x27,0x05,0x87,0xDA,0x6B,0x7D,0x42,0xE7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85}; +BMD_CONST REFIID IID_IDeckLinkVideoFrame = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17}; +BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90}; +BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7}; +BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F}; +BMD_CONST REFIID IID_IDeckLinkVideoInputFrame = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44}; +BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04}; +BMD_CONST REFIID IID_IDeckLinkEncoderPacket = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20}; +BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0}; +BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A}; +BMD_CONST REFIID IID_IDeckLinkH265NALPacket = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7}; +BMD_CONST REFIID IID_IDeckLinkAudioInputPacket = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66}; +BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38}; +BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F}; +BMD_CONST REFIID IID_IDeckLinkNotificationCallback = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D}; +BMD_CONST REFIID IID_IDeckLinkNotification = /* 0A1FB207-E215-441B-9B19-6FA1575946C5 */ {0x0A,0x1F,0xB2,0x07,0xE2,0x15,0x44,0x1B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5}; +BMD_CONST REFIID IID_IDeckLinkAttributes = /* ABC11843-D966-44CB-96E2-A1CB5D3135C4 */ {0xAB,0xC1,0x18,0x43,0xD9,0x66,0x44,0xCB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4}; +BMD_CONST REFIID IID_IDeckLinkStatus = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46}; +BMD_CONST REFIID IID_IDeckLinkKeyer = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3}; +BMD_CONST REFIID IID_IDeckLinkVideoConversion = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A}; +BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F}; +BMD_CONST REFIID IID_IDeckLinkDiscovery = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01}; + +/* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */ + +typedef uint32_t BMDVideoOutputFlags; +enum _BMDVideoOutputFlags { + bmdVideoOutputFlagDefault = 0, + bmdVideoOutputVANC = 1 << 0, + bmdVideoOutputVITC = 1 << 1, + bmdVideoOutputRP188 = 1 << 2, + bmdVideoOutputDualStream3D = 1 << 4 +}; + +/* Enum BMDPacketType - Type of packet */ + +typedef uint32_t BMDPacketType; +enum _BMDPacketType { + bmdPacketTypeStreamInterruptedMarker = /* 'sint' */ 0x73696E74, // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable + bmdPacketTypeStreamData = /* 'sdat' */ 0x73646174 // Regular stream data +}; + +/* Enum BMDFrameFlags - Frame flags */ + +typedef uint32_t BMDFrameFlags; +enum _BMDFrameFlags { + bmdFrameFlagDefault = 0, + bmdFrameFlagFlipVertical = 1 << 0, + bmdFrameContainsHDRMetadata = 1 << 1, + bmdFrameContainsCintelMetadata = 1 << 2, + + /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */ + + bmdFrameHasNoInputSource = 1 << 31 +}; + +/* Enum BMDVideoInputFlags - Flags applicable to video input */ + +typedef uint32_t BMDVideoInputFlags; +enum _BMDVideoInputFlags { + bmdVideoInputFlagDefault = 0, + bmdVideoInputEnableFormatDetection = 1 << 0, + bmdVideoInputDualStream3D = 1 << 1 +}; + +/* Enum BMDVideoInputFormatChangedEvents - Bitmask passed to the VideoInputFormatChanged notification to identify the properties of the input signal that have changed */ + +typedef uint32_t BMDVideoInputFormatChangedEvents; +enum _BMDVideoInputFormatChangedEvents { + bmdVideoInputDisplayModeChanged = 1 << 0, + bmdVideoInputFieldDominanceChanged = 1 << 1, + bmdVideoInputColorspaceChanged = 1 << 2 +}; + +/* Enum BMDDetectedVideoInputFormatFlags - Flags passed to the VideoInputFormatChanged notification to describe the detected video input signal */ + +typedef uint32_t BMDDetectedVideoInputFormatFlags; +enum _BMDDetectedVideoInputFormatFlags { + bmdDetectedVideoInputYCbCr422 = 1 << 0, + bmdDetectedVideoInputRGB444 = 1 << 1, + bmdDetectedVideoInputDualStream3D = 1 << 2 +}; + +/* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */ + +typedef uint32_t BMDDeckLinkCapturePassthroughMode; +enum _BMDDeckLinkCapturePassthroughMode { + bmdDeckLinkCapturePassthroughModeDisabled = /* 'pdis' */ 0x70646973, + bmdDeckLinkCapturePassthroughModeDirect = /* 'pdir' */ 0x70646972, + bmdDeckLinkCapturePassthroughModeCleanSwitch = /* 'pcln' */ 0x70636C6E +}; + +/* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */ + +typedef uint32_t BMDOutputFrameCompletionResult; +enum _BMDOutputFrameCompletionResult { + bmdOutputFrameCompleted, + bmdOutputFrameDisplayedLate, + bmdOutputFrameDropped, + bmdOutputFrameFlushed +}; + +/* Enum BMDReferenceStatus - GenLock input status */ + +typedef uint32_t BMDReferenceStatus; +enum _BMDReferenceStatus { + bmdReferenceNotSupportedByHardware = 1 << 0, + bmdReferenceLocked = 1 << 1 +}; + +/* Enum BMDAudioFormat - Audio Format */ + +typedef uint32_t BMDAudioFormat; +enum _BMDAudioFormat { + bmdAudioFormatPCM = /* 'lpcm' */ 0x6C70636D // Linear signed PCM samples +}; + +/* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */ + +typedef uint32_t BMDAudioSampleRate; +enum _BMDAudioSampleRate { + bmdAudioSampleRate48kHz = 48000 +}; + +/* Enum BMDAudioSampleType - Audio sample sizes supported for output/input */ + +typedef uint32_t BMDAudioSampleType; +enum _BMDAudioSampleType { + bmdAudioSampleType16bitInteger = 16, + bmdAudioSampleType32bitInteger = 32 +}; + +/* Enum BMDAudioOutputStreamType - Audio output stream type */ + +typedef uint32_t BMDAudioOutputStreamType; +enum _BMDAudioOutputStreamType { + bmdAudioOutputStreamContinuous, + bmdAudioOutputStreamContinuousDontResample, + bmdAudioOutputStreamTimestamped +}; + +/* Enum BMDDisplayModeSupport - Output mode supported flags */ + +typedef uint32_t BMDDisplayModeSupport; +enum _BMDDisplayModeSupport { + bmdDisplayModeNotSupported = 0, + bmdDisplayModeSupported, + bmdDisplayModeSupportedWithConversion +}; + +/* Enum BMDTimecodeFormat - Timecode formats for frame metadata */ + +typedef uint32_t BMDTimecodeFormat; +enum _BMDTimecodeFormat { + bmdTimecodeRP188VITC1 = /* 'rpv1' */ 0x72707631, // RP188 timecode where DBB1 equals VITC1 (line 9) + bmdTimecodeRP188VITC2 = /* 'rp12' */ 0x72703132, // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF) + bmdTimecodeRP188LTC = /* 'rplt' */ 0x72706C74, // RP188 timecode where DBB1 equals LTC (line 10) + bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // For capture: return the first valid timecode in {VITC1, LTC ,VITC2} - For playback: set the timecode as VITC1 + bmdTimecodeVITC = /* 'vitc' */ 0x76697463, + bmdTimecodeVITCField2 = /* 'vit2' */ 0x76697432, + bmdTimecodeSerial = /* 'seri' */ 0x73657269 +}; + +/* Enum BMDAnalogVideoFlags - Analog video display flags */ + +typedef uint32_t BMDAnalogVideoFlags; +enum _BMDAnalogVideoFlags { + bmdAnalogVideoFlagCompositeSetup75 = 1 << 0, + bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1 +}; + +/* Enum BMDAudioOutputAnalogAESSwitch - Audio output Analog/AESEBU switch */ + +typedef uint32_t BMDAudioOutputAnalogAESSwitch; +enum _BMDAudioOutputAnalogAESSwitch { + bmdAudioOutputSwitchAESEBU = /* 'aes ' */ 0x61657320, + bmdAudioOutputSwitchAnalog = /* 'anlg' */ 0x616E6C67 +}; + +/* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */ + +typedef uint32_t BMDVideoOutputConversionMode; +enum _BMDVideoOutputConversionMode { + bmdNoVideoOutputConversion = /* 'none' */ 0x6E6F6E65, + bmdVideoOutputLetterboxDownconversion = /* 'ltbx' */ 0x6C746278, + bmdVideoOutputAnamorphicDownconversion = /* 'amph' */ 0x616D7068, + bmdVideoOutputHD720toHD1080Conversion = /* '720c' */ 0x37323063, + bmdVideoOutputHardwareLetterboxDownconversion = /* 'HWlb' */ 0x48576C62, + bmdVideoOutputHardwareAnamorphicDownconversion = /* 'HWam' */ 0x4857616D, + bmdVideoOutputHardwareCenterCutDownconversion = /* 'HWcc' */ 0x48576363, + bmdVideoOutputHardware720p1080pCrossconversion = /* 'xcap' */ 0x78636170, + bmdVideoOutputHardwareAnamorphic720pUpconversion = /* 'ua7p' */ 0x75613770, + bmdVideoOutputHardwareAnamorphic1080iUpconversion = /* 'ua1i' */ 0x75613169, + bmdVideoOutputHardwareAnamorphic149To720pUpconversion = /* 'u47p' */ 0x75343770, + bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = /* 'u41i' */ 0x75343169, + bmdVideoOutputHardwarePillarbox720pUpconversion = /* 'up7p' */ 0x75703770, + bmdVideoOutputHardwarePillarbox1080iUpconversion = /* 'up1i' */ 0x75703169 +}; + +/* Enum BMDVideoInputConversionMode - Video input conversion mode */ + +typedef uint32_t BMDVideoInputConversionMode; +enum _BMDVideoInputConversionMode { + bmdNoVideoInputConversion = /* 'none' */ 0x6E6F6E65, + bmdVideoInputLetterboxDownconversionFromHD1080 = /* '10lb' */ 0x31306C62, + bmdVideoInputAnamorphicDownconversionFromHD1080 = /* '10am' */ 0x3130616D, + bmdVideoInputLetterboxDownconversionFromHD720 = /* '72lb' */ 0x37326C62, + bmdVideoInputAnamorphicDownconversionFromHD720 = /* '72am' */ 0x3732616D, + bmdVideoInputLetterboxUpconversion = /* 'lbup' */ 0x6C627570, + bmdVideoInputAnamorphicUpconversion = /* 'amup' */ 0x616D7570 +}; + +/* Enum BMDVideo3DPackingFormat - Video 3D packing format */ + +typedef uint32_t BMDVideo3DPackingFormat; +enum _BMDVideo3DPackingFormat { + bmdVideo3DPackingSidebySideHalf = /* 'sbsh' */ 0x73627368, + bmdVideo3DPackingLinebyLine = /* 'lbyl' */ 0x6C62796C, + bmdVideo3DPackingTopAndBottom = /* 'tabo' */ 0x7461626F, + bmdVideo3DPackingFramePacking = /* 'frpk' */ 0x6672706B, + bmdVideo3DPackingLeftOnly = /* 'left' */ 0x6C656674, + bmdVideo3DPackingRightOnly = /* 'righ' */ 0x72696768 +}; + +/* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */ + +typedef uint32_t BMDIdleVideoOutputOperation; +enum _BMDIdleVideoOutputOperation { + bmdIdleVideoOutputBlack = /* 'blac' */ 0x626C6163, + bmdIdleVideoOutputLastFrame = /* 'lafa' */ 0x6C616661 +}; + +/* Enum BMDVideoEncoderFrameCodingMode - Video frame coding mode */ + +typedef uint32_t BMDVideoEncoderFrameCodingMode; +enum _BMDVideoEncoderFrameCodingMode { + bmdVideoEncoderFrameCodingModeInter = /* 'inte' */ 0x696E7465, + bmdVideoEncoderFrameCodingModeIntra = /* 'intr' */ 0x696E7472 +}; + +/* Enum BMDDNxHRLevel - DNxHR Levels */ + +typedef uint32_t BMDDNxHRLevel; +enum _BMDDNxHRLevel { + bmdDNxHRLevelSQ = /* 'dnsq' */ 0x646E7371, + bmdDNxHRLevelLB = /* 'dnlb' */ 0x646E6C62, + bmdDNxHRLevelHQ = /* 'dnhq' */ 0x646E6871, + bmdDNxHRLevelHQX = /* 'dhqx' */ 0x64687178, + bmdDNxHRLevel444 = /* 'd444' */ 0x64343434 +}; + +/* Enum BMDLinkConfiguration - Video link configuration */ + +typedef uint32_t BMDLinkConfiguration; +enum _BMDLinkConfiguration { + bmdLinkConfigurationSingleLink = /* 'lcsl' */ 0x6C63736C, + bmdLinkConfigurationDualLink = /* 'lcdl' */ 0x6C63646C, + bmdLinkConfigurationQuadLink = /* 'lcql' */ 0x6C63716C +}; + +/* Enum BMDDeviceInterface - Device interface type */ + +typedef uint32_t BMDDeviceInterface; +enum _BMDDeviceInterface { + bmdDeviceInterfacePCI = /* 'pci ' */ 0x70636920, + bmdDeviceInterfaceUSB = /* 'usb ' */ 0x75736220, + bmdDeviceInterfaceThunderbolt = /* 'thun' */ 0x7468756E +}; + +/* Enum BMDDeckLinkFrameMetadataID - DeckLink Frame Metadata ID */ + +typedef uint32_t BMDDeckLinkFrameMetadataID; +enum _BMDDeckLinkFrameMetadataID { + bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc = /* 'eotf' */ 0x656F7466, // EOTF in range 0-7 as per CEA 861.3 + bmdDeckLinkFrameMetadataCintelFilmType = /* 'cfty' */ 0x63667479, // Current film type + bmdDeckLinkFrameMetadataCintelFilmGauge = /* 'cfga' */ 0x63666761, // Current film gauge + bmdDeckLinkFrameMetadataCintelOffsetDetectedHorizontal = /* 'odfh' */ 0x6F646668, // Horizontal offset (pixels) detected in image + bmdDeckLinkFrameMetadataCintelOffsetDetectedVertical = /* 'odfv' */ 0x6F646676, // Vertical offset (pixels) detected in image + bmdDeckLinkFrameMetadataCintelOffsetAppliedHorizontal = /* 'odah' */ 0x6F646168, // Horizontal offset (pixels) applied to image + bmdDeckLinkFrameMetadataCintelOffsetAppliedVertical = /* 'odav' */ 0x6F646176, // Vertical offset (pixels) applied to image + bmdDeckLinkFrameMetadataCintelKeykodeLow = /* 'ckkl' */ 0x636B6B6C, // Raw keykode value - low 64 bits + bmdDeckLinkFrameMetadataCintelKeykodeHigh = /* 'ckkh' */ 0x636B6B68, // Raw keykode value - high 64 bits + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed = /* 'mrir' */ 0x6D726972, // Red in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed = /* 'mgir' */ 0x6D676972, // Green in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed = /* 'mbir' */ 0x6D626972, // Blue in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen = /* 'mrig' */ 0x6D726967, // Red in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen = /* 'mgig' */ 0x6D676967, // Green in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = /* 'mbig' */ 0x6D626967, // Blue in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue = /* 'mrib' */ 0x6D726962, // Red in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = /* 'mgib' */ 0x6D676962, // Green in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue = /* 'mbib' */ 0x6D626962, // Blue in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed = /* 'mlrr' */ 0x6D6C7272, // Red in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed = /* 'mlgr' */ 0x6D6C6772, // Green in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed = /* 'mlbr' */ 0x6D6C6272, // Blue in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen = /* 'mlrg' */ 0x6D6C7267, // Red in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen = /* 'mlgg' */ 0x6D6C6767, // Green in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen = /* 'mlbg' */ 0x6D6C6267, // Blue in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue = /* 'mlrb' */ 0x6D6C7262, // Red in blue log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue = /* 'mlgb' */ 0x6D6C6762, // Green in blue log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue = /* 'mlbb' */ 0x6D6C6262, // Blue in blue log masking parameter + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX = /* 'hdrx' */ 0x68647278, // Red display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY = /* 'hdry' */ 0x68647279, // Red display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX = /* 'hdgx' */ 0x68646778, // Green display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY = /* 'hdgy' */ 0x68646779, // Green display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX = /* 'hdbx' */ 0x68646278, // Blue display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY = /* 'hdby' */ 0x68646279, // Blue display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRWhitePointX = /* 'hdwx' */ 0x68647778, // White point in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRWhitePointY = /* 'hdwy' */ 0x68647779, // White point in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance = /* 'hdml' */ 0x68646D6C, // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance = /* 'hmil' */ 0x686D696C, // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2 + bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel = /* 'mcll' */ 0x6D636C6C, // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = /* 'fall' */ 0x66616C6C, // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataCintel16mmCropRequired = /* 'c16c' */ 0x63313663, // The image should be cropped to 16mm size + bmdDeckLinkFrameMetadataCintelInversionRequired = /* 'cinv' */ 0x63696E76, // The image should be colour inverted + bmdDeckLinkFrameMetadataCintelFlipRequired = /* 'cflr' */ 0x63666C72, // The image should be flipped horizontally + bmdDeckLinkFrameMetadataCintelFocusAssistEnabled = /* 'cfae' */ 0x63666165, // Focus Assist is currently enabled + bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated = /* 'kkii' */ 0x6B6B6969 // The keykode for this frame is interpolated from nearby keykodes +}; + +/* Enum BMDDuplexMode - Duplex for configurable ports */ + +typedef uint32_t BMDDuplexMode; +enum _BMDDuplexMode { + bmdDuplexModeFull = /* 'fdup' */ 0x66647570, + bmdDuplexModeHalf = /* 'hdup' */ 0x68647570 +}; + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID; +enum _BMDDeckLinkAttributeID { + + /* Flags */ + + BMDDeckLinkSupportsInternalKeying = /* 'keyi' */ 0x6B657969, + BMDDeckLinkSupportsExternalKeying = /* 'keye' */ 0x6B657965, + BMDDeckLinkSupportsHDKeying = /* 'keyh' */ 0x6B657968, + BMDDeckLinkSupportsInputFormatDetection = /* 'infd' */ 0x696E6664, + BMDDeckLinkHasReferenceInput = /* 'hrin' */ 0x6872696E, + BMDDeckLinkHasSerialPort = /* 'hspt' */ 0x68737074, + BMDDeckLinkHasAnalogVideoOutputGain = /* 'avog' */ 0x61766F67, + BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = /* 'ovog' */ 0x6F766F67, + BMDDeckLinkHasVideoInputAntiAliasingFilter = /* 'aafl' */ 0x6161666C, + BMDDeckLinkHasBypass = /* 'byps' */ 0x62797073, + BMDDeckLinkSupportsClockTimingAdjustment = /* 'ctad' */ 0x63746164, + BMDDeckLinkSupportsFullDuplex = /* 'fdup' */ 0x66647570, + BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = /* 'frin' */ 0x6672696E, + BMDDeckLinkSupportsSMPTELevelAOutput = /* 'lvla' */ 0x6C766C61, + BMDDeckLinkSupportsDualLinkSDI = /* 'sdls' */ 0x73646C73, + BMDDeckLinkSupportsQuadLinkSDI = /* 'sqls' */ 0x73716C73, + BMDDeckLinkSupportsIdleOutput = /* 'idou' */ 0x69646F75, + BMDDeckLinkHasLTCTimecodeInput = /* 'hltc' */ 0x686C7463, + BMDDeckLinkSupportsDuplexModeConfiguration = /* 'dupx' */ 0x64757078, + BMDDeckLinkSupportsHDRMetadata = /* 'hdrm' */ 0x6864726D, + + /* Integers */ + + BMDDeckLinkMaximumAudioChannels = /* 'mach' */ 0x6D616368, + BMDDeckLinkMaximumAnalogAudioInputChannels = /* 'iach' */ 0x69616368, + BMDDeckLinkMaximumAnalogAudioOutputChannels = /* 'aach' */ 0x61616368, + BMDDeckLinkNumberOfSubDevices = /* 'nsbd' */ 0x6E736264, + BMDDeckLinkSubDeviceIndex = /* 'subi' */ 0x73756269, + BMDDeckLinkPersistentID = /* 'peid' */ 0x70656964, + BMDDeckLinkDeviceGroupID = /* 'dgid' */ 0x64676964, + BMDDeckLinkTopologicalID = /* 'toid' */ 0x746F6964, + BMDDeckLinkVideoOutputConnections = /* 'vocn' */ 0x766F636E, // Returns a BMDVideoConnection bit field + BMDDeckLinkVideoInputConnections = /* 'vicn' */ 0x7669636E, // Returns a BMDVideoConnection bit field + BMDDeckLinkAudioOutputConnections = /* 'aocn' */ 0x616F636E, // Returns a BMDAudioConnection bit field + BMDDeckLinkAudioInputConnections = /* 'aicn' */ 0x6169636E, // Returns a BMDAudioConnection bit field + BMDDeckLinkVideoIOSupport = /* 'vios' */ 0x76696F73, // Returns a BMDVideoIOSupport bit field + BMDDeckLinkDeckControlConnections = /* 'dccn' */ 0x6463636E, // Returns a BMDDeckControlConnection bit field + BMDDeckLinkDeviceInterface = /* 'dbus' */ 0x64627573, // Returns a BMDDeviceInterface + BMDDeckLinkAudioInputRCAChannelCount = /* 'airc' */ 0x61697263, + BMDDeckLinkAudioInputXLRChannelCount = /* 'aixc' */ 0x61697863, + BMDDeckLinkAudioOutputRCAChannelCount = /* 'aorc' */ 0x616F7263, + BMDDeckLinkAudioOutputXLRChannelCount = /* 'aoxc' */ 0x616F7863, + BMDDeckLinkPairedDevicePersistentID = /* 'ppid' */ 0x70706964, + + /* Floats */ + + BMDDeckLinkVideoInputGainMinimum = /* 'vigm' */ 0x7669676D, + BMDDeckLinkVideoInputGainMaximum = /* 'vigx' */ 0x76696778, + BMDDeckLinkVideoOutputGainMinimum = /* 'vogm' */ 0x766F676D, + BMDDeckLinkVideoOutputGainMaximum = /* 'vogx' */ 0x766F6778, + BMDDeckLinkMicrophoneInputGainMinimum = /* 'migm' */ 0x6D69676D, + BMDDeckLinkMicrophoneInputGainMaximum = /* 'migx' */ 0x6D696778, + + /* Strings */ + + BMDDeckLinkSerialPortDeviceName = /* 'slpn' */ 0x736C706E, + BMDDeckLinkVendorName = /* 'vndr' */ 0x766E6472, + BMDDeckLinkDisplayName = /* 'dspn' */ 0x6473706E, + BMDDeckLinkModelName = /* 'mdln' */ 0x6D646C6E, + BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668 +}; + +/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */ + +typedef uint32_t BMDDeckLinkAPIInformationID; +enum _BMDDeckLinkAPIInformationID { + BMDDeckLinkAPIVersion = /* 'vers' */ 0x76657273 +}; + +/* Enum BMDDeckLinkStatusID - DeckLink Status ID */ + +typedef uint32_t BMDDeckLinkStatusID; +enum _BMDDeckLinkStatusID { + + /* Integers */ + + bmdDeckLinkStatusDetectedVideoInputMode = /* 'dvim' */ 0x6476696D, + bmdDeckLinkStatusDetectedVideoInputFlags = /* 'dvif' */ 0x64766966, + bmdDeckLinkStatusCurrentVideoInputMode = /* 'cvim' */ 0x6376696D, + bmdDeckLinkStatusCurrentVideoInputPixelFormat = /* 'cvip' */ 0x63766970, + bmdDeckLinkStatusCurrentVideoInputFlags = /* 'cvif' */ 0x63766966, + bmdDeckLinkStatusCurrentVideoOutputMode = /* 'cvom' */ 0x63766F6D, + bmdDeckLinkStatusCurrentVideoOutputFlags = /* 'cvof' */ 0x63766F66, + bmdDeckLinkStatusPCIExpressLinkWidth = /* 'pwid' */ 0x70776964, + bmdDeckLinkStatusPCIExpressLinkSpeed = /* 'plnk' */ 0x706C6E6B, + bmdDeckLinkStatusLastVideoOutputPixelFormat = /* 'opix' */ 0x6F706978, + bmdDeckLinkStatusReferenceSignalMode = /* 'refm' */ 0x7265666D, + bmdDeckLinkStatusReferenceSignalFlags = /* 'reff' */ 0x72656666, + bmdDeckLinkStatusDuplexMode = /* 'dupx' */ 0x64757078, + bmdDeckLinkStatusBusy = /* 'busy' */ 0x62757379, + bmdDeckLinkStatusInterchangeablePanelType = /* 'icpt' */ 0x69637074, + + /* Flags */ + + bmdDeckLinkStatusVideoInputSignalLocked = /* 'visl' */ 0x7669736C, + bmdDeckLinkStatusReferenceSignalLocked = /* 'refl' */ 0x7265666C, + bmdDeckLinkStatusReceivedEDID = /* 'edid' */ 0x65646964 +}; + +/* Enum BMDDeckLinkVideoStatusFlags - */ + +typedef uint32_t BMDDeckLinkVideoStatusFlags; +enum _BMDDeckLinkVideoStatusFlags { + bmdDeckLinkVideoStatusPsF = 1 << 0, + bmdDeckLinkVideoStatusDualStream3D = 1 << 1 +}; + +/* Enum BMDDuplexStatus - Duplex status of the device */ + +typedef uint32_t BMDDuplexStatus; +enum _BMDDuplexStatus { + bmdDuplexStatusFullDuplex = /* 'fdup' */ 0x66647570, + bmdDuplexStatusHalfDuplex = /* 'hdup' */ 0x68647570, + bmdDuplexStatusSimplex = /* 'splx' */ 0x73706C78, + bmdDuplexStatusInactive = /* 'inac' */ 0x696E6163 +}; + +/* Enum BMDPanelType - The type of interchangeable panel */ + +typedef uint32_t BMDPanelType; +enum _BMDPanelType { + bmdPanelNotDetected = /* 'npnl' */ 0x6E706E6C, + bmdPanelTeranexMiniSmartPanel = /* 'tmsm' */ 0x746D736D +}; + +/* Enum BMDDeviceBusyState - Current device busy state */ + +typedef uint32_t BMDDeviceBusyState; +enum _BMDDeviceBusyState { + bmdDeviceCaptureBusy = 1 << 0, + bmdDevicePlaybackBusy = 1 << 1, + bmdDeviceSerialPortBusy = 1 << 2 +}; + +/* Enum BMDVideoIOSupport - Device video input/output support */ + +typedef uint32_t BMDVideoIOSupport; +enum _BMDVideoIOSupport { + bmdDeviceSupportsCapture = 1 << 0, + bmdDeviceSupportsPlayback = 1 << 1 +}; + +/* Enum BMD3DPreviewFormat - Linked Frame preview format */ + +typedef uint32_t BMD3DPreviewFormat; +enum _BMD3DPreviewFormat { + bmd3DPreviewFormatDefault = /* 'defa' */ 0x64656661, + bmd3DPreviewFormatLeftOnly = /* 'left' */ 0x6C656674, + bmd3DPreviewFormatRightOnly = /* 'righ' */ 0x72696768, + bmd3DPreviewFormatSideBySide = /* 'side' */ 0x73696465, + bmd3DPreviewFormatTopBottom = /* 'topb' */ 0x746F7062 +}; + +/* Enum BMDNotifications - Events that can be subscribed through IDeckLinkNotification */ + +typedef uint32_t BMDNotifications; +enum _BMDNotifications { + bmdPreferencesChanged = /* 'pref' */ 0x70726566, + bmdStatusChanged = /* 'stat' */ 0x73746174 +}; + +#if defined(__cplusplus) + +// Forward Declarations + +class IDeckLinkVideoOutputCallback; +class IDeckLinkInputCallback; +class IDeckLinkEncoderInputCallback; +class IDeckLinkMemoryAllocator; +class IDeckLinkAudioOutputCallback; +class IDeckLinkIterator; +class IDeckLinkAPIInformation; +class IDeckLinkOutput; +class IDeckLinkInput; +class IDeckLinkEncoderInput; +class IDeckLinkVideoFrame; +class IDeckLinkMutableVideoFrame; +class IDeckLinkVideoFrame3DExtensions; +class IDeckLinkVideoFrameMetadataExtensions; +class IDeckLinkVideoInputFrame; +class IDeckLinkVideoFrameAncillary; +class IDeckLinkEncoderPacket; +class IDeckLinkEncoderVideoPacket; +class IDeckLinkEncoderAudioPacket; +class IDeckLinkH265NALPacket; +class IDeckLinkAudioInputPacket; +class IDeckLinkScreenPreviewCallback; +class IDeckLinkGLScreenPreviewHelper; +class IDeckLinkNotificationCallback; +class IDeckLinkNotification; +class IDeckLinkAttributes; +class IDeckLinkStatus; +class IDeckLinkKeyer; +class IDeckLinkVideoConversion; +class IDeckLinkDeviceNotificationCallback; +class IDeckLinkDiscovery; + +/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ + +class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown +{ +public: + virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; + virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; + +protected: + virtual ~IDeckLinkVideoOutputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown +{ +public: + virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0; + virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkEncoderInputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkMemoryAllocator - Memory allocator for video frames. */ + +class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown +{ +public: + virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0; + virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0; + + virtual HRESULT Commit (void) = 0; + virtual HRESULT Decommit (void) = 0; +}; + +/* Interface IDeckLinkAudioOutputCallback - Optional callback to allow audio samples to be pulled as required. */ + +class BMD_PUBLIC IDeckLinkAudioOutputCallback : public IUnknown +{ +public: + virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0; +}; + +/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */ + +class BMD_PUBLIC IDeckLinkIterator : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0; +}; + +/* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */ + +class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ const char **value) = 0; + +protected: + virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkOutput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0; + +protected: + virtual ~IDeckLinkOutput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkInput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0; + virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ + +class BMD_PUBLIC IDeckLinkVideoFrame : public IUnknown +{ +public: + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual long GetRowBytes (void) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDFrameFlags GetFlags (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + + virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; + virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + +protected: + virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ + +class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame +{ +public: + virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0; + + virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0; + virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0; + virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0; + +protected: + virtual ~IDeckLinkMutableVideoFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrame3DExtensions - Optional interface implemented on IDeckLinkVideoFrame to support 3D frames */ + +class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown +{ +public: + virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0; + virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0; + +protected: + virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */ + +class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown +{ +public: + virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ const char **value) = 0; + +protected: + virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrameAncillary - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */ + +class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown +{ +public: + + virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + +protected: + virtual ~IDeckLinkVideoFrameAncillary () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderPacket - Interface to encapsulate an encoded packet. */ + +class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown +{ +public: + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + virtual long GetSize (void) = 0; + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0; + virtual BMDPacketType GetPacketType (void) = 0; + +protected: + virtual ~IDeckLinkEncoderPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderVideoPacket - Provided by the IDeckLinkEncoderInput video packet arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket +{ +public: + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + + virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; + +protected: + virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderAudioPacket - Provided by the IDeckLinkEncoderInput audio packet arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket +{ +public: + virtual BMDAudioFormat GetAudioFormat (void) = 0; + +protected: + virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */ + +class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket +{ +public: + virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0; + virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0; + virtual long GetSizeNoPrefix (void) = 0; + +protected: + virtual ~IDeckLinkH265NALPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkAudioInputPacket - Provided by the IDeckLinkInput callback. */ + +class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown +{ +public: + virtual long GetSampleFrameCount (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0; + +protected: + virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ + +class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown +{ +public: + virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + +protected: + virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown +{ +public: + + /* Methods must be called with OpenGL context set */ + + virtual HRESULT InitializeGL (void) = 0; + virtual HRESULT PaintGL (void) = 0; + virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0; + +protected: + virtual ~IDeckLinkGLScreenPreviewHelper () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkNotificationCallback - DeckLink Notification Callback Interface */ + +class BMD_PUBLIC IDeckLinkNotificationCallback : public IUnknown +{ +public: + virtual HRESULT Notify (/* in */ BMDNotifications topic, /* in */ uint64_t param1, /* in */ uint64_t param2) = 0; +}; + +/* Interface IDeckLinkNotification - DeckLink Notification interface */ + +class BMD_PUBLIC IDeckLinkNotification : public IUnknown +{ +public: + virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; + virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; +}; + +/* Interface IDeckLinkAttributes - DeckLink Attribute interface */ + +class BMD_PUBLIC IDeckLinkAttributes : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ const char **value) = 0; + +protected: + virtual ~IDeckLinkAttributes () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkStatus - DeckLink Status interface */ + +class BMD_PUBLIC IDeckLinkStatus : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ const char **value) = 0; + virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0; + +protected: + virtual ~IDeckLinkStatus () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkKeyer - DeckLink Keyer interface */ + +class BMD_PUBLIC IDeckLinkKeyer : public IUnknown +{ +public: + virtual HRESULT Enable (/* in */ bool isExternal) = 0; + virtual HRESULT SetLevel (/* in */ uint8_t level) = 0; + virtual HRESULT RampUp (/* in */ uint32_t numberOfFrames) = 0; + virtual HRESULT RampDown (/* in */ uint32_t numberOfFrames) = 0; + virtual HRESULT Disable (void) = 0; + +protected: + virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown +{ +public: + virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame* srcFrame, /* in */ IDeckLinkVideoFrame* dstFrame) = 0; + +protected: + virtual ~IDeckLinkVideoConversion () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeviceNotificationCallback - DeckLink device arrival/removal notification callbacks */ + +class BMD_PUBLIC IDeckLinkDeviceNotificationCallback : public IUnknown +{ +public: + virtual HRESULT DeckLinkDeviceArrived (/* in */ IDeckLink* deckLinkDevice) = 0; + virtual HRESULT DeckLinkDeviceRemoved (/* in */ IDeckLink* deckLinkDevice) = 0; + +protected: + virtual ~IDeckLinkDeviceNotificationCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDiscovery - DeckLink device discovery */ + +class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown +{ +public: + virtual HRESULT InstallDeviceNotifications (/* in */ IDeckLinkDeviceNotificationCallback* deviceNotificationCallback) = 0; + virtual HRESULT UninstallDeviceNotifications (void) = 0; + +protected: + virtual ~IDeckLinkDiscovery () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void); + IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void); + IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void); + IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void); + IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void); + +} + + +#endif // defined(__cplusplus) +#endif /* defined(BMD_DECKLINKAPI_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h new file mode 100644 index 00000000000..bf5c7a1e4c9 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h @@ -0,0 +1,261 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_H +#define BMD_DECKLINKAPICONFIGURATION_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration = /* EF90380B-4AE5-4346-9077-E288E149F129 */ {0xEF,0x90,0x38,0x0B,0x4A,0xE5,0x43,0x46,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29}; +BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E}; + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID; +enum _BMDDeckLinkConfigurationID { + + /* Serial port Flags */ + + bmdDeckLinkConfigSwapSerialRxTx = /* 'ssrt' */ 0x73737274, + + /* Video Input/Output Integers */ + + bmdDeckLinkConfigHDMI3DPackingFormat = /* '3dpf' */ 0x33647066, + bmdDeckLinkConfigBypass = /* 'byps' */ 0x62797073, + bmdDeckLinkConfigClockTimingAdjustment = /* 'ctad' */ 0x63746164, + bmdDeckLinkConfigDuplexMode = /* 'dupx' */ 0x64757078, + + /* Audio Input/Output Flags */ + + bmdDeckLinkConfigAnalogAudioConsumerLevels = /* 'aacl' */ 0x6161636C, + + /* Video output flags */ + + bmdDeckLinkConfigFieldFlickerRemoval = /* 'fdfr' */ 0x66646672, + bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = /* 'to59' */ 0x746F3539, + bmdDeckLinkConfig444SDIVideoOutput = /* '444o' */ 0x3434346F, + bmdDeckLinkConfigBlackVideoOutputDuringCapture = /* 'bvoc' */ 0x62766F63, + bmdDeckLinkConfigLowLatencyVideoOutput = /* 'llvo' */ 0x6C6C766F, + bmdDeckLinkConfigDownConversionOnAllAnalogOutput = /* 'caao' */ 0x6361616F, + bmdDeckLinkConfigSMPTELevelAOutput = /* 'smta' */ 0x736D7461, + + /* Video Output Flags */ + + bmdDeckLinkConfigOutput1080pAsPsF = /* 'pfpr' */ 0x70667072, + + /* Video Output Integers */ + + bmdDeckLinkConfigVideoOutputConnection = /* 'vocn' */ 0x766F636E, + bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D, + bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66, + bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74, + bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */ 0x766F696F, + bmdDeckLinkConfigDefaultVideoOutputMode = /* 'dvom' */ 0x64766F6D, + bmdDeckLinkConfigDefaultVideoOutputModeFlags = /* 'dvof' */ 0x64766F66, + bmdDeckLinkConfigSDIOutputLinkConfiguration = /* 'solc' */ 0x736F6C63, + + /* Video Output Floats */ + + bmdDeckLinkConfigVideoOutputComponentLumaGain = /* 'oclg' */ 0x6F636C67, + bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = /* 'occb' */ 0x6F636362, + bmdDeckLinkConfigVideoOutputComponentChromaRedGain = /* 'occr' */ 0x6F636372, + bmdDeckLinkConfigVideoOutputCompositeLumaGain = /* 'oilg' */ 0x6F696C67, + bmdDeckLinkConfigVideoOutputCompositeChromaGain = /* 'oicg' */ 0x6F696367, + bmdDeckLinkConfigVideoOutputSVideoLumaGain = /* 'oslg' */ 0x6F736C67, + bmdDeckLinkConfigVideoOutputSVideoChromaGain = /* 'oscg' */ 0x6F736367, + + /* Video Input Flags */ + + bmdDeckLinkConfigVideoInputScanning = /* 'visc' */ 0x76697363, // Applicable to H264 Pro Recorder only + bmdDeckLinkConfigUseDedicatedLTCInput = /* 'dltc' */ 0x646C7463, // Use timecode from LTC input instead of SDI stream + bmdDeckLinkConfigSDIInput3DPayloadOverride = /* '3dds' */ 0x33646473, + + /* Video Input Flags */ + + bmdDeckLinkConfigCapture1080pAsPsF = /* 'cfpr' */ 0x63667072, + + /* Video Input Integers */ + + bmdDeckLinkConfigVideoInputConnection = /* 'vicn' */ 0x7669636E, + bmdDeckLinkConfigAnalogVideoInputFlags = /* 'avif' */ 0x61766966, + bmdDeckLinkConfigVideoInputConversionMode = /* 'vicm' */ 0x7669636D, + bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = /* 'pdif' */ 0x70646966, + bmdDeckLinkConfigVANCSourceLine1Mapping = /* 'vsl1' */ 0x76736C31, + bmdDeckLinkConfigVANCSourceLine2Mapping = /* 'vsl2' */ 0x76736C32, + bmdDeckLinkConfigVANCSourceLine3Mapping = /* 'vsl3' */ 0x76736C33, + bmdDeckLinkConfigCapturePassThroughMode = /* 'cptm' */ 0x6370746D, + + /* Video Input Floats */ + + bmdDeckLinkConfigVideoInputComponentLumaGain = /* 'iclg' */ 0x69636C67, + bmdDeckLinkConfigVideoInputComponentChromaBlueGain = /* 'iccb' */ 0x69636362, + bmdDeckLinkConfigVideoInputComponentChromaRedGain = /* 'iccr' */ 0x69636372, + bmdDeckLinkConfigVideoInputCompositeLumaGain = /* 'iilg' */ 0x69696C67, + bmdDeckLinkConfigVideoInputCompositeChromaGain = /* 'iicg' */ 0x69696367, + bmdDeckLinkConfigVideoInputSVideoLumaGain = /* 'islg' */ 0x69736C67, + bmdDeckLinkConfigVideoInputSVideoChromaGain = /* 'iscg' */ 0x69736367, + + /* Audio Input Flags */ + + bmdDeckLinkConfigMicrophonePhantomPower = /* 'mphp' */ 0x6D706870, + + /* Audio Input Integers */ + + bmdDeckLinkConfigAudioInputConnection = /* 'aicn' */ 0x6169636E, + + /* Audio Input Floats */ + + bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = /* 'ais1' */ 0x61697331, + bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = /* 'ais2' */ 0x61697332, + bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = /* 'ais3' */ 0x61697333, + bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = /* 'ais4' */ 0x61697334, + bmdDeckLinkConfigDigitalAudioInputScale = /* 'dais' */ 0x64616973, + bmdDeckLinkConfigMicrophoneInputGain = /* 'micg' */ 0x6D696367, + + /* Audio Output Integers */ + + bmdDeckLinkConfigAudioOutputAESAnalogSwitch = /* 'aoaa' */ 0x616F6161, + + /* Audio Output Floats */ + + bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = /* 'aos1' */ 0x616F7331, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = /* 'aos2' */ 0x616F7332, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = /* 'aos3' */ 0x616F7333, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = /* 'aos4' */ 0x616F7334, + bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */ 0x64616F73, + bmdDeckLinkConfigHeadphoneVolume = /* 'hvol' */ 0x68766F6C, + + /* Device Information Strings */ + + bmdDeckLinkConfigDeviceInformationLabel = /* 'dila' */ 0x64696C61, + bmdDeckLinkConfigDeviceInformationSerialNumber = /* 'disn' */ 0x6469736E, + bmdDeckLinkConfigDeviceInformationCompany = /* 'dico' */ 0x6469636F, + bmdDeckLinkConfigDeviceInformationPhone = /* 'diph' */ 0x64697068, + bmdDeckLinkConfigDeviceInformationEmail = /* 'diem' */ 0x6469656D, + bmdDeckLinkConfigDeviceInformationDate = /* 'dida' */ 0x64696461, + + /* Deck Control Integers */ + + bmdDeckLinkConfigDeckControlConnection = /* 'dcco' */ 0x6463636F +}; + +/* Enum BMDDeckLinkEncoderConfigurationID - DeckLink Encoder Configuration ID */ + +typedef uint32_t BMDDeckLinkEncoderConfigurationID; +enum _BMDDeckLinkEncoderConfigurationID { + + /* Video Encoder Integers */ + + bmdDeckLinkEncoderConfigPreferredBitDepth = /* 'epbr' */ 0x65706272, + bmdDeckLinkEncoderConfigFrameCodingMode = /* 'efcm' */ 0x6566636D, + + /* HEVC/H.265 Encoder Integers */ + + bmdDeckLinkEncoderConfigH265TargetBitrate = /* 'htbr' */ 0x68746272, + + /* DNxHR/DNxHD Compression ID */ + + bmdDeckLinkEncoderConfigDNxHRCompressionID = /* 'dcid' */ 0x64636964, + + /* DNxHR/DNxHD Level */ + + bmdDeckLinkEncoderConfigDNxHRLevel = /* 'dlev' */ 0x646C6576, + + /* Encoded Sample Decriptions */ + + bmdDeckLinkEncoderConfigMPEG4SampleDescription = /* 'stsE' */ 0x73747345, // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more + bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = /* 'esds' */ 0x65736473 // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more +}; + +// Forward Declarations + +class IDeckLinkConfiguration; +class IDeckLinkEncoderConfiguration; + +/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ + +class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderConfiguration - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ + +class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0; + +protected: + virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h new file mode 100644 index 00000000000..457f041e99a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h @@ -0,0 +1,60 @@ +/* -LICENSE-START- +** Copyright (c) 2014 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_2_H +#define BMD_DECKLINKAPICONFIGURATION_v10_2_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_2 = /* C679A35B-610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0}; + +// Forward Declarations + +class IDeckLinkConfiguration_v10_2; + +/* Interface IDeckLinkConfiguration_v10_2 - DeckLink Configuration interface */ + +class BMD_PUBLIC IDeckLinkConfiguration_v10_2 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_2 () {} // call Release method to drop reference count +}; + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h new file mode 100644 index 00000000000..c4d340f6f34 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h @@ -0,0 +1,63 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_4_H +#define BMD_DECKLINKAPICONFIGURATION_v10_4_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_4 = /* 1E69FCF6-4203-4936-8076-2A9F4CFD50CB */ {0x1E,0x69,0xFC,0xF6,0x42,0x03,0x49,0x36,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB}; + + +// +// Forward Declarations + +class IDeckLinkConfiguration_v10_4; + +/* Interface IDeckLinkConfiguration_v10_4 - DeckLink Configuration interface */ + +class BMD_PUBLIC IDeckLinkConfiguration_v10_4 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_4 () {} // call Release method to drop reference count +}; + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h new file mode 100644 index 00000000000..684b83bf04a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h @@ -0,0 +1,60 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_5_H +#define BMD_DECKLINKAPICONFIGURATION_v10_5_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration_v10_5 = /* 67455668-0848-45DF-8D8E-350A77C9A028 */ {0x67,0x45,0x56,0x68,0x08,0x48,0x45,0xDF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28}; + +// Forward Declarations + +class IDeckLinkEncoderConfiguration_v10_5; + +/* Interface IDeckLinkEncoderConfiguration_v10_5 - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ + +class BMD_PUBLIC IDeckLinkEncoderConfiguration_v10_5 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT GetDecoderConfigurationInfo (/* out */ void *buffer, /* in */ long bufferSize, /* out */ long *returnedSize) = 0; + +protected: + virtual ~IDeckLinkEncoderConfiguration_v10_5 () {} // call Release method to drop reference count +}; + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_5_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h new file mode 100644 index 00000000000..f507637a4bf --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h @@ -0,0 +1,62 @@ +/* -LICENSE-START- +** Copyright (c) 2017 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_9_H +#define BMD_DECKLINKAPICONFIGURATION_v10_9_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_9 = /* CB71734A-FE37-4E8D-8E13-802133A1C3F2 */ {0xCB,0x71,0x73,0x4A,0xFE,0x37,0x4E,0x8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2}; + +// +// Forward Declarations + +class IDeckLinkConfiguration_v10_9; + +/* Interface IDeckLinkConfiguration_v10_9 - DeckLink Configuration interface */ + +class BMD_PUBLIC IDeckLinkConfiguration_v10_9 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_9 () {} // call Release method to drop reference count +}; + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h new file mode 100644 index 00000000000..3d3f221177c --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h @@ -0,0 +1,219 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIDECKCONTROL_H +#define BMD_DECKLINKAPIDECKCONTROL_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF}; +BMD_CONST REFIID IID_IDeckLinkDeckControl = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE}; + +/* Enum BMDDeckControlMode - DeckControl mode */ + +typedef uint32_t BMDDeckControlMode; +enum _BMDDeckControlMode { + bmdDeckControlNotOpened = /* 'ntop' */ 0x6E746F70, + bmdDeckControlVTRControlMode = /* 'vtrc' */ 0x76747263, + bmdDeckControlExportMode = /* 'expm' */ 0x6578706D, + bmdDeckControlCaptureMode = /* 'capm' */ 0x6361706D +}; + +/* Enum BMDDeckControlEvent - DeckControl event */ + +typedef uint32_t BMDDeckControlEvent; +enum _BMDDeckControlEvent { + bmdDeckControlAbortedEvent = /* 'abte' */ 0x61627465, // This event is triggered when a capture or edit-to-tape operation is aborted. + + /* Export-To-Tape events */ + + bmdDeckControlPrepareForExportEvent = /* 'pfee' */ 0x70666565, // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point. + bmdDeckControlExportCompleteEvent = /* 'exce' */ 0x65786365, // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. + + /* Capture events */ + + bmdDeckControlPrepareForCaptureEvent = /* 'pfce' */ 0x70666365, // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid. + bmdDeckControlCaptureCompleteEvent = /* 'ccev' */ 0x63636576 // This event is triggered a few frames after reaching the out-point. +}; + +/* Enum BMDDeckControlVTRControlState - VTR Control state */ + +typedef uint32_t BMDDeckControlVTRControlState; +enum _BMDDeckControlVTRControlState { + bmdDeckControlNotInVTRControlMode = /* 'nvcm' */ 0x6E76636D, + bmdDeckControlVTRControlPlaying = /* 'vtrp' */ 0x76747270, + bmdDeckControlVTRControlRecording = /* 'vtrr' */ 0x76747272, + bmdDeckControlVTRControlStill = /* 'vtra' */ 0x76747261, + bmdDeckControlVTRControlShuttleForward = /* 'vtsf' */ 0x76747366, + bmdDeckControlVTRControlShuttleReverse = /* 'vtsr' */ 0x76747372, + bmdDeckControlVTRControlJogForward = /* 'vtjf' */ 0x76746A66, + bmdDeckControlVTRControlJogReverse = /* 'vtjr' */ 0x76746A72, + bmdDeckControlVTRControlStopped = /* 'vtro' */ 0x7674726F +}; + +/* Enum BMDDeckControlStatusFlags - Deck Control status flags */ + +typedef uint32_t BMDDeckControlStatusFlags; +enum _BMDDeckControlStatusFlags { + bmdDeckControlStatusDeckConnected = 1 << 0, + bmdDeckControlStatusRemoteMode = 1 << 1, + bmdDeckControlStatusRecordInhibited = 1 << 2, + bmdDeckControlStatusCassetteOut = 1 << 3 +}; + +/* Enum BMDDeckControlExportModeOpsFlags - Export mode flags */ + +typedef uint32_t BMDDeckControlExportModeOpsFlags; +enum _BMDDeckControlExportModeOpsFlags { + bmdDeckControlExportModeInsertVideo = 1 << 0, + bmdDeckControlExportModeInsertAudio1 = 1 << 1, + bmdDeckControlExportModeInsertAudio2 = 1 << 2, + bmdDeckControlExportModeInsertAudio3 = 1 << 3, + bmdDeckControlExportModeInsertAudio4 = 1 << 4, + bmdDeckControlExportModeInsertAudio5 = 1 << 5, + bmdDeckControlExportModeInsertAudio6 = 1 << 6, + bmdDeckControlExportModeInsertAudio7 = 1 << 7, + bmdDeckControlExportModeInsertAudio8 = 1 << 8, + bmdDeckControlExportModeInsertAudio9 = 1 << 9, + bmdDeckControlExportModeInsertAudio10 = 1 << 10, + bmdDeckControlExportModeInsertAudio11 = 1 << 11, + bmdDeckControlExportModeInsertAudio12 = 1 << 12, + bmdDeckControlExportModeInsertTimeCode = 1 << 13, + bmdDeckControlExportModeInsertAssemble = 1 << 14, + bmdDeckControlExportModeInsertPreview = 1 << 15, + bmdDeckControlUseManualExport = 1 << 16 +}; + +/* Enum BMDDeckControlError - Deck Control error */ + +typedef uint32_t BMDDeckControlError; +enum _BMDDeckControlError { + bmdDeckControlNoError = /* 'noer' */ 0x6E6F6572, + bmdDeckControlModeError = /* 'moer' */ 0x6D6F6572, + bmdDeckControlMissedInPointError = /* 'mier' */ 0x6D696572, + bmdDeckControlDeckTimeoutError = /* 'dter' */ 0x64746572, + bmdDeckControlCommandFailedError = /* 'cfer' */ 0x63666572, + bmdDeckControlDeviceAlreadyOpenedError = /* 'dalo' */ 0x64616C6F, + bmdDeckControlFailedToOpenDeviceError = /* 'fder' */ 0x66646572, + bmdDeckControlInLocalModeError = /* 'lmer' */ 0x6C6D6572, + bmdDeckControlEndOfTapeError = /* 'eter' */ 0x65746572, + bmdDeckControlUserAbortError = /* 'uaer' */ 0x75616572, + bmdDeckControlNoTapeInDeckError = /* 'nter' */ 0x6E746572, + bmdDeckControlNoVideoFromCardError = /* 'nvfc' */ 0x6E766663, + bmdDeckControlNoCommunicationError = /* 'ncom' */ 0x6E636F6D, + bmdDeckControlBufferTooSmallError = /* 'btsm' */ 0x6274736D, + bmdDeckControlBadChecksumError = /* 'chks' */ 0x63686B73, + bmdDeckControlUnknownError = /* 'uner' */ 0x756E6572 +}; + +// Forward Declarations + +class IDeckLinkDeckControlStatusCallback; +class IDeckLinkDeckControl; + +/* Interface IDeckLinkDeckControlStatusCallback - Deck control state change callback. */ + +class BMD_PUBLIC IDeckLinkDeckControlStatusCallback : public IUnknown +{ +public: + virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; + virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState newState, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; + +protected: + virtual ~IDeckLinkDeckControlStatusCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeckControl - Deck Control main interface */ + +class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h new file mode 100644 index 00000000000..e9164f913b5 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h @@ -0,0 +1,75 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIDISCOVERY_H +#define BMD_DECKLINKAPIDISCOVERY_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLink = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91}; + +// Forward Declarations + +class IDeckLink; + +/* Interface IDeckLink - represents a DeckLink device */ + +class BMD_PUBLIC IDeckLink : public IUnknown +{ +public: + virtual HRESULT GetModelName (/* out */ const char **modelName) = 0; + virtual HRESULT GetDisplayName (/* out */ const char **displayName) = 0; + +protected: + virtual ~IDeckLink () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp new file mode 100644 index 00000000000..067ccf26161 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp @@ -0,0 +1,146 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include +#include +#include + +#include "DeckLinkAPI.h" + +#define kDeckLinkAPI_Name "libDeckLinkAPI.so" +#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" + +typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); +typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; + +static bool gLoadedDeckLinkAPI = false; + +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; +static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; + +void InitDeckLinkAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + + gLoadedDeckLinkAPI = true; + + gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0003"); + if (!gCreateIteratorFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); + if (!gCreateAPIInformationFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); + if (!gCreateVideoConversionFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)dlsym(libraryHandle, "CreateDeckLinkDiscoveryInstance_0002"); + if (!gCreateDeckLinkDiscoveryFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +void InitDeckLinkPreviewAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); + if (!gCreateOpenGLPreviewFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +bool IsDeckLinkAPIPresent (void) +{ + // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller + return gLoadedDeckLinkAPI; +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + return gCreateVideoConversionFunc(); +} + +IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateDeckLinkDiscoveryFunc == NULL) + return NULL; + return gCreateDeckLinkDiscoveryFunc(); +} diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp new file mode 100644 index 00000000000..6a038fb1284 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp @@ -0,0 +1,146 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include +#include +#include + +#include "DeckLinkAPI.h" + +#define kDeckLinkAPI_Name "libDeckLinkAPI.so" +#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" + +typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); +typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; + +static bool gLoadedDeckLinkAPI = false; + +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; +static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; + +void InitDeckLinkAPI(void) +{ + void *libraryHandle; + + libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW | RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + + gLoadedDeckLinkAPI = true; + + gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0002"); + if (!gCreateIteratorFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); + if (!gCreateAPIInformationFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); + if (!gCreateVideoConversionFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)dlsym(libraryHandle, "CreateDeckLinkDiscoveryInstance_0001"); + if (!gCreateDeckLinkDiscoveryFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +void InitDeckLinkPreviewAPI(void) +{ + void *libraryHandle; + + libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW | RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); + if (!gCreateOpenGLPreviewFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +bool IsDeckLinkAPIPresent(void) +{ + // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller + return gLoadedDeckLinkAPI; +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + return gCreateVideoConversionFunc(); +} + +IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateDeckLinkDiscoveryFunc == NULL) + return NULL; + return gCreateDeckLinkDiscoveryFunc(); +} diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp new file mode 100644 index 00000000000..9ec157f1502 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp @@ -0,0 +1,109 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include +#include +#include + +#include "DeckLinkAPI_v7_6.h" + +#define kDeckLinkAPI_Name "libDeckLinkAPI.so" +#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" + +typedef IDeckLinkIterator* (*CreateIteratorFunc_v7_6)(void); +typedef IDeckLinkGLScreenPreviewHelper_v7_6* (*CreateOpenGLScreenPreviewHelperFunc_v7_6)(void); +typedef IDeckLinkVideoConversion_v7_6* (*CreateVideoConversionInstanceFunc_v7_6)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; + +static CreateIteratorFunc_v7_6 gCreateIteratorFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc_v7_6 gCreateOpenGLPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc_v7_6 gCreateVideoConversionFunc = NULL; + +void InitDeckLinkAPI_v7_6 (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + + gCreateIteratorFunc = (CreateIteratorFunc_v7_6)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance"); + if (!gCreateIteratorFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc_v7_6)dlsym(libraryHandle, "CreateVideoConversionInstance"); + if (!gCreateVideoConversionFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +void InitDeckLinkPreviewAPI_v7_6 (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc_v7_6)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper"); + if (!gCreateOpenGLPreviewFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateIteratorFunc == NULL) + return NULL; + return gCreateIteratorFunc(); +} + +IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI_v7_6); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + return gCreateVideoConversionFunc(); +} + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp new file mode 100644 index 00000000000..686fd672c74 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp @@ -0,0 +1,133 @@ +/* -LICENSE-START- +** Copyright (c) 2011 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +**/ + +#include +#include +#include + +#include "DeckLinkAPI_v8_0.h" + +#define kDeckLinkAPI_Name "libDeckLinkAPI.so" +#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" + +typedef IDeckLinkIterator_v8_0* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; + +static bool gLoadedDeckLinkAPI = false; + +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; + +void InitDeckLinkAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + + gLoadedDeckLinkAPI = true; + + gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0001"); + if (!gCreateIteratorFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); + if (!gCreateAPIInformationFunc) + fprintf(stderr, "%s\n", dlerror()); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); + if (!gCreateVideoConversionFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +void InitDeckLinkPreviewAPI (void) +{ + void *libraryHandle; + + libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); + if (!libraryHandle) + { + fprintf(stderr, "%s\n", dlerror()); + return; + } + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); + if (!gCreateOpenGLPreviewFunc) + fprintf(stderr, "%s\n", dlerror()); +} + +bool IsDeckLinkAPIPresent (void) +{ + // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller + return gLoadedDeckLinkAPI; +} + +IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + return gCreateVideoConversionFunc(); +} + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h new file mode 100644 index 00000000000..7464a11ed09 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h @@ -0,0 +1,200 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIMODES_H +#define BMD_DECKLINKAPIMODES_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}; +BMD_CONST REFIID IID_IDeckLinkDisplayMode = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}; + +/* Enum BMDDisplayMode - Video display modes */ + +typedef uint32_t BMDDisplayMode; +enum _BMDDisplayMode { + + /* SD Modes */ + + bmdModeNTSC = /* 'ntsc' */ 0x6E747363, + bmdModeNTSC2398 = /* 'nt23' */ 0x6E743233, // 3:2 pulldown + bmdModePAL = /* 'pal ' */ 0x70616C20, + bmdModeNTSCp = /* 'ntsp' */ 0x6E747370, + bmdModePALp = /* 'palp' */ 0x70616C70, + + /* HD 1080 Modes */ + + bmdModeHD1080p2398 = /* '23ps' */ 0x32337073, + bmdModeHD1080p24 = /* '24ps' */ 0x32347073, + bmdModeHD1080p25 = /* 'Hp25' */ 0x48703235, + bmdModeHD1080p2997 = /* 'Hp29' */ 0x48703239, + bmdModeHD1080p30 = /* 'Hp30' */ 0x48703330, + bmdModeHD1080i50 = /* 'Hi50' */ 0x48693530, + bmdModeHD1080i5994 = /* 'Hi59' */ 0x48693539, + bmdModeHD1080i6000 = /* 'Hi60' */ 0x48693630, // N.B. This _really_ is 60.00 Hz. + bmdModeHD1080p50 = /* 'Hp50' */ 0x48703530, + bmdModeHD1080p5994 = /* 'Hp59' */ 0x48703539, + bmdModeHD1080p6000 = /* 'Hp60' */ 0x48703630, // N.B. This _really_ is 60.00 Hz. + + /* HD 720 Modes */ + + bmdModeHD720p50 = /* 'hp50' */ 0x68703530, + bmdModeHD720p5994 = /* 'hp59' */ 0x68703539, + bmdModeHD720p60 = /* 'hp60' */ 0x68703630, + + /* 2k Modes */ + + bmdMode2k2398 = /* '2k23' */ 0x326B3233, + bmdMode2k24 = /* '2k24' */ 0x326B3234, + bmdMode2k25 = /* '2k25' */ 0x326B3235, + + /* DCI Modes (output only) */ + + bmdMode2kDCI2398 = /* '2d23' */ 0x32643233, + bmdMode2kDCI24 = /* '2d24' */ 0x32643234, + bmdMode2kDCI25 = /* '2d25' */ 0x32643235, + + /* 4k Modes */ + + bmdMode4K2160p2398 = /* '4k23' */ 0x346B3233, + bmdMode4K2160p24 = /* '4k24' */ 0x346B3234, + bmdMode4K2160p25 = /* '4k25' */ 0x346B3235, + bmdMode4K2160p2997 = /* '4k29' */ 0x346B3239, + bmdMode4K2160p30 = /* '4k30' */ 0x346B3330, + bmdMode4K2160p50 = /* '4k50' */ 0x346B3530, + bmdMode4K2160p5994 = /* '4k59' */ 0x346B3539, + bmdMode4K2160p60 = /* '4k60' */ 0x346B3630, + + /* DCI Modes (output only) */ + + bmdMode4kDCI2398 = /* '4d23' */ 0x34643233, + bmdMode4kDCI24 = /* '4d24' */ 0x34643234, + bmdMode4kDCI25 = /* '4d25' */ 0x34643235, + + /* Special Modes */ + + bmdModeUnknown = /* 'iunk' */ 0x69756E6B +}; + +/* Enum BMDFieldDominance - Video field dominance */ + +typedef uint32_t BMDFieldDominance; +enum _BMDFieldDominance { + bmdUnknownFieldDominance = 0, + bmdLowerFieldFirst = /* 'lowr' */ 0x6C6F7772, + bmdUpperFieldFirst = /* 'uppr' */ 0x75707072, + bmdProgressiveFrame = /* 'prog' */ 0x70726F67, + bmdProgressiveSegmentedFrame = /* 'psf ' */ 0x70736620 +}; + +/* Enum BMDPixelFormat - Video pixel formats supported for output/input */ + +typedef uint32_t BMDPixelFormat; +enum _BMDPixelFormat { + bmdFormat8BitYUV = /* '2vuy' */ 0x32767579, + bmdFormat10BitYUV = /* 'v210' */ 0x76323130, + bmdFormat8BitARGB = 32, + bmdFormat8BitBGRA = /* 'BGRA' */ 0x42475241, + bmdFormat10BitRGB = /* 'r210' */ 0x72323130, // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 + bmdFormat12BitRGB = /* 'R12B' */ 0x52313242, // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component + bmdFormat12BitRGBLE = /* 'R12L' */ 0x5231324C, // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component + bmdFormat10BitRGBXLE = /* 'R10l' */ 0x5231306C, // Little-endian 10-bit RGB with SMPTE video levels (64-940) + bmdFormat10BitRGBX = /* 'R10b' */ 0x52313062, // Big-endian 10-bit RGB with SMPTE video levels (64-940) + bmdFormatH265 = /* 'hev1' */ 0x68657631, // High Efficiency Video Coding (HEVC/h.265) + + /* AVID DNxHR */ + + bmdFormatDNxHR = /* 'AVdh' */ 0x41566468 +}; + +/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */ + +typedef uint32_t BMDDisplayModeFlags; +enum _BMDDisplayModeFlags { + bmdDisplayModeSupports3D = 1 << 0, + bmdDisplayModeColorspaceRec601 = 1 << 1, + bmdDisplayModeColorspaceRec709 = 1 << 2 +}; + +// Forward Declarations + +class IDeckLinkDisplayModeIterator; +class IDeckLinkDisplayMode; + +/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ + +class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; + +protected: + virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDisplayMode - represents a display mode */ + +class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown +{ +public: + virtual HRESULT GetName (/* out */ const char **name) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; + virtual BMDFieldDominance GetFieldDominance (void) = 0; + virtual BMDDisplayModeFlags GetFlags (void) = 0; + +protected: + virtual ~IDeckLinkDisplayMode () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIMODES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h new file mode 100644 index 00000000000..6749a80098a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h @@ -0,0 +1,125 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPITYPES_H +#define BMD_DECKLINKAPITYPES_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + +typedef int64_t BMDTimeValue; +typedef int64_t BMDTimeScale; +typedef uint32_t BMDTimecodeBCD; +typedef uint32_t BMDTimecodeUserBits; + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkTimecode = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40}; + +/* Enum BMDTimecodeFlags - Timecode flags */ + +typedef uint32_t BMDTimecodeFlags; +enum _BMDTimecodeFlags { + bmdTimecodeFlagDefault = 0, + bmdTimecodeIsDropFrame = 1 << 0, + bmdTimecodeFieldMark = 1 << 1, + bmdTimecodeColorFrame = 1 << 2 +}; + +/* Enum BMDVideoConnection - Video connection types */ + +typedef uint32_t BMDVideoConnection; +enum _BMDVideoConnection { + bmdVideoConnectionSDI = 1 << 0, + bmdVideoConnectionHDMI = 1 << 1, + bmdVideoConnectionOpticalSDI = 1 << 2, + bmdVideoConnectionComponent = 1 << 3, + bmdVideoConnectionComposite = 1 << 4, + bmdVideoConnectionSVideo = 1 << 5 +}; + +/* Enum BMDAudioConnection - Audio connection types */ + +typedef uint32_t BMDAudioConnection; +enum _BMDAudioConnection { + bmdAudioConnectionEmbedded = 1 << 0, + bmdAudioConnectionAESEBU = 1 << 1, + bmdAudioConnectionAnalog = 1 << 2, + bmdAudioConnectionAnalogXLR = 1 << 3, + bmdAudioConnectionAnalogRCA = 1 << 4, + bmdAudioConnectionMicrophone = 1 << 5, + bmdAudioConnectionHeadphones = 1 << 6 +}; + +/* Enum BMDDeckControlConnection - Deck control connections */ + +typedef uint32_t BMDDeckControlConnection; +enum _BMDDeckControlConnection { + bmdDeckControlConnectionRS422Remote1 = 1 << 0, + bmdDeckControlConnectionRS422Remote2 = 1 << 1 +}; + +// Forward Declarations + +class IDeckLinkTimecode; + +/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ + +class BMD_PUBLIC IDeckLinkTimecode : public IUnknown +{ +public: + virtual BMDTimecodeBCD GetBCD (void) = 0; + virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; + virtual HRESULT GetString (/* out */ const char **timecode) = 0; + virtual BMDTimecodeFlags GetFlags (void) = 0; + virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0; + +protected: + virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPITYPES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h new file mode 100644 index 00000000000..a2565e04fc2 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h @@ -0,0 +1,37 @@ +/* -LICENSE-START- + * ** Copyright (c) 2014 Blackmagic Design + * ** + * ** Permission is hereby granted, free of charge, to any person or organization + * ** obtaining a copy of the software and accompanying documentation covered by + * ** this license (the "Software") to use, reproduce, display, distribute, + * ** execute, and transmit the Software, and to prepare derivative works of the + * ** Software, and to permit third-parties to whom the Software is furnished to + * ** do so, all subject to the following: + * ** + * ** The copyright notices in the Software and this entire statement, including + * ** the above license grant, this restriction and the following disclaimer, + * ** must be included in all copies of the Software, in whole or in part, and + * ** all derivative works of the Software, unless such copies or derivative + * ** works are solely in the form of machine-executable object code generated by + * ** a source language processor. + * ** + * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * ** DEALINGS IN THE SOFTWARE. + * ** -LICENSE-END- + * */ + +/* DeckLinkAPIVersion.h */ + +#ifndef __DeckLink_API_Version_h__ +#define __DeckLink_API_Version_h__ + +#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 +#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" + +#endif // __DeckLink_API_Version_h__ + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h new file mode 100644 index 00000000000..ad2ff32d705 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h @@ -0,0 +1,55 @@ +/* -LICENSE-START- +** Copyright (c) 2014 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_2_H +#define BMD_DECKLINKAPI_v10_2_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_2; +enum _BMDDeckLinkConfigurationID_v10_2 { + /* Video output flags */ + + bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = '3gbs', +}; + +/* Enum BMDAudioConnection_v10_2 - Audio connection types */ + +typedef uint32_t BMDAudioConnection_v10_2; +enum _BMDAudioConnection_v10_2 { + bmdAudioConnectionEmbedded_v10_2 = /* 'embd' */ 0x656D6264, + bmdAudioConnectionAESEBU_v10_2 = /* 'aes ' */ 0x61657320, + bmdAudioConnectionAnalog_v10_2 = /* 'anlg' */ 0x616E6C67, + bmdAudioConnectionAnalogXLR_v10_2 = /* 'axlr' */ 0x61786C72, + bmdAudioConnectionAnalogRCA_v10_2 = /* 'arca' */ 0x61726361 +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h new file mode 100644 index 00000000000..7e5019ca2b0 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h @@ -0,0 +1,45 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_4_H +#define BMD_DECKLINKAPI_v10_4_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_4; +enum _BMDDeckLinkConfigurationID_v10_4 { + + /* Video output flags */ + + bmdDeckLinkConfigSingleLinkVideoOutput_v10_4 = /* 'sglo' */ 0x73676C6F, +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h new file mode 100644 index 00000000000..4439daef7b0 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h @@ -0,0 +1,46 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_5_H +#define BMD_DECKLINKAPI_v10_5_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID_v10_5; +enum _BMDDeckLinkAttributeID_v10_5 { + + /* Integers */ + + BMDDeckLinkDeviceBusyState_v10_5 = /* 'dbst' */ 0x64627374, +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_5_H) */ + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h new file mode 100644 index 00000000000..3c935789514 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h @@ -0,0 +1,50 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_6_H +#define BMD_DECKLINKAPI_v10_6_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID_c10_6; +enum _BMDDeckLinkAttributeID_v10_6 { + + /* Flags */ + + BMDDeckLinkSupportsDesktopDisplay_v10_6 = /* 'extd' */ 0x65787464, +}; + +typedef uint32_t BMDIdleVideoOutputOperation_v10_6; +enum _BMDIdleVideoOutputOperation_v10_6 { + bmdIdleVideoOutputDesktop_v10_6 = /* 'desk' */ 0x6465736B +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_6_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h new file mode 100644 index 00000000000..aec8c7c2018 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h @@ -0,0 +1,45 @@ +/* -LICENSE-START- +** Copyright (c) 2017 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_9_H +#define BMD_DECKLINKAPI_v10_9_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_9; +enum _BMDDeckLinkConfigurationID_v10_9 { + + /* Flags */ + + bmdDeckLinkConfig1080pNotPsF_v10_9 = 'fpro', +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h new file mode 100644 index 00000000000..b0c637cfe72 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h @@ -0,0 +1,198 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPI_v7_1.h */ + +#ifndef __DeckLink_API_v7_1_h__ +#define __DeckLink_API_v7_1_h__ + +#include "DeckLinkAPI.h" + +// "B28131B6-59AC-4857-B5AC-CD75D5883E2F" +#define IID_IDeckLinkDisplayModeIterator_v7_1 (REFIID){0xB2,0x81,0x31,0xB6,0x59,0xAC,0x48,0x57,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F} + +// "AF0CD6D5-8376-435E-8433-54F9DD530AC3" +#define IID_IDeckLinkDisplayMode_v7_1 (REFIID){0xAF,0x0C,0xD6,0xD5,0x83,0x76,0x43,0x5E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3} + +// "EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9" +#define IID_IDeckLinkVideoOutputCallback_v7_1 (REFIID){0xEB,0xD0,0x1A,0xFA,0xE4,0xB0,0x49,0xC6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9} + +// "7F94F328-5ED4-4E9F-9729-76A86BDC99CC" +#define IID_IDeckLinkInputCallback_v7_1 (REFIID){0x7F,0x94,0xF3,0x28,0x5E,0xD4,0x4E,0x9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC} + +// "AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5" +#define IID_IDeckLinkOutput_v7_1 (REFIID){0xAE,0x5B,0x3E,0x9B,0x4E,0x1E,0x45,0x35,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5} + +// "2B54EDEF-5B32-429F-BA11-BB990596EACD" +#define IID_IDeckLinkInput_v7_1 (REFIID){0x2B,0x54,0xED,0xEF,0x5B,0x32,0x42,0x9F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD} + +// "333F3A10-8C2D-43CF-B79D-46560FEEA1CE" +#define IID_IDeckLinkVideoFrame_v7_1 (REFIID){0x33,0x3F,0x3A,0x10,0x8C,0x2D,0x43,0xCF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE} + +// "C8B41D95-8848-40EE-9B37-6E3417FB114B" +#define IID_IDeckLinkVideoInputFrame_v7_1 (REFIID){0xC8,0xB4,0x1D,0x95,0x88,0x48,0x40,0xEE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B} + +// "C86DE4F6-A29F-42E3-AB3A-1363E29F0788" +#define IID_IDeckLinkAudioInputPacket_v7_1 (REFIID){0xC8,0x6D,0xE4,0xF6,0xA2,0x9F,0x42,0xE3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88} + +#if defined(__cplusplus) + +class IDeckLinkDisplayModeIterator_v7_1; +class IDeckLinkDisplayMode_v7_1; +class IDeckLinkVideoFrame_v7_1; +class IDeckLinkVideoInputFrame_v7_1; +class IDeckLinkAudioInputPacket_v7_1; + +class BMD_PUBLIC IDeckLinkDisplayModeIterator_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE Next (IDeckLinkDisplayMode_v7_1* *deckLinkDisplayMode) = 0; +}; + + +class BMD_PUBLIC IDeckLinkDisplayMode_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE GetName (const char **name) = 0; + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode () = 0; + virtual long STDMETHODCALLTYPE GetWidth () = 0; + virtual long STDMETHODCALLTYPE GetHeight () = 0; + virtual HRESULT STDMETHODCALLTYPE GetFrameRate (BMDTimeValue *frameDuration, BMDTimeScale *timeScale) = 0; +}; + +class BMD_PUBLIC IDeckLinkVideoOutputCallback_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted (IDeckLinkVideoFrame_v7_1* completedFrame, BMDOutputFrameCompletionResult result) = 0; +}; + +class BMD_PUBLIC IDeckLinkInputCallback_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived (IDeckLinkVideoInputFrame_v7_1* videoFrame, IDeckLinkAudioInputPacket_v7_1* audioPacket) = 0; +}; + +// IDeckLinkOutput_v7_1. Created by QueryInterface from IDeckLink. +class BMD_PUBLIC IDeckLinkOutput_v7_1 : public IUnknown +{ +public: + // Display mode predicates + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1* *iterator) = 0; + + + // Video output + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput (BMDDisplayMode displayMode) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput () = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator (IDeckLinkMemoryAllocator* theAllocator) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer (void* buffer, int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync (IDeckLinkVideoFrame_v7_1* theFrame) = 0; + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame (IDeckLinkVideoFrame_v7_1* theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback (IDeckLinkVideoOutputCallback_v7_1* theCallback) = 0; + + + // Audio output + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput () = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll () = 0; + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll () = 0; + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples (void* buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples () = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback (IDeckLinkAudioOutputCallback* theCallback) = 0; + + + // Output control + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; +}; + +// IDeckLinkInput_v7_1. Created by QueryInterface from IDeckLink. +class BMD_PUBLIC IDeckLinkInput_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + // Video input + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput () = 0; + + // Audio input + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput () = 0; + virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesRead, BMDTimeValue *audioPacketTime, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; + + + virtual HRESULT STDMETHODCALLTYPE StartStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE StopStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE PauseStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE SetCallback (IDeckLinkInputCallback_v7_1* theCallback) = 0; +}; + +// IDeckLinkVideoFrame_v7_1. Created by IDeckLinkOutput::CreateVideoFrame. +class BMD_PUBLIC IDeckLinkVideoFrame_v7_1 : public IUnknown +{ +public: + virtual long STDMETHODCALLTYPE GetWidth () = 0; + virtual long STDMETHODCALLTYPE GetHeight () = 0; + virtual long STDMETHODCALLTYPE GetRowBytes () = 0; + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat () = 0; + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags () = 0; + virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; +}; + +// IDeckLinkVideoInputFrame_v7_1. Provided by the IDeckLinkInput_v7_1 frame arrival callback. +class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 +{ +public: + virtual HRESULT STDMETHODCALLTYPE GetFrameTime (BMDTimeValue *frameTime, BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; +}; + +// IDeckLinkAudioInputPacket_v7_1. Provided by the IDeckLinkInput_v7_1 callback. +class BMD_PUBLIC IDeckLinkAudioInputPacket_v7_1 : public IUnknown +{ +public: + virtual long STDMETHODCALLTYPE GetSampleCount () = 0; + virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime (BMDTimeValue *packetTime, BMDTimeScale timeScale) = 0; +}; + +#endif // defined(__cplusplus) + +#endif // __DeckLink_API_v7_1_h__ + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h new file mode 100644 index 00000000000..bb3192ea41b --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h @@ -0,0 +1,173 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_3.h */ + +#ifndef __DeckLink_API_v7_3_h__ +#define __DeckLink_API_v7_3_h__ + +#include "DeckLinkAPI.h" +#include "DeckLinkAPI_v7_6.h" + +/* Interface ID Declarations */ + +#define IID_IDeckLinkInputCallback_v7_3 /* FD6F311D-4D00-444B-9ED4-1F25B5730AD0 */ (REFIID){0xFD,0x6F,0x31,0x1D,0x4D,0x00,0x44,0x4B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0} +#define IID_IDeckLinkOutput_v7_3 /* 271C65E3-C323-4344-A30F-D908BCB20AA3 */ (REFIID){0x27,0x1C,0x65,0xE3,0xC3,0x23,0x43,0x44,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3} +#define IID_IDeckLinkInput_v7_3 /* 4973F012-9925-458C-871C-18774CDBBECB */ (REFIID){0x49,0x73,0xF0,0x12,0x99,0x25,0x45,0x8C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB} +#define IID_IDeckLinkVideoInputFrame_v7_3 /* CF317790-2894-11DE-8C30-0800200C9A66 */ (REFIID){0xCF,0x31,0x77,0x90,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66} + +/* End Interface ID Declarations */ + +#if defined(__cplusplus) + +/* Forward Declarations */ + +class IDeckLinkVideoInputFrame_v7_3; + +/* End Forward Declarations */ + + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkOutput_v7_3 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (BMDDisplayMode displayMode, BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + virtual HRESULT CreateAncillaryData (BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount, BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + +protected: + virtual ~IDeckLinkOutput_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkOutput */ + + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkInputCallback_v7_3 : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, /* in */ IDeckLinkAudioInputPacket *audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkInputCallback */ + + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkInput_v7_3 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_3 *theCallback) = 0; + +protected: + virtual ~IDeckLinkInput_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkInput */ + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkVideoInputFrame */ + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_3_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h new file mode 100644 index 00000000000..d981206513b --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h @@ -0,0 +1,404 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_6.h */ + +#ifndef __DeckLink_API_v7_6_h__ +#define __DeckLink_API_v7_6_h__ + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +#define IID_IDeckLinkVideoOutputCallback_v7_6 /* E763A626-4A3C-49D1-BF13-E7AD3692AE52 */ (REFIID){0xE7,0x63,0xA6,0x26,0x4A,0x3C,0x49,0xD1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52} +#define IID_IDeckLinkInputCallback_v7_6 /* 31D28EE7-88B6-4CB1-897A-CDBF79A26414 */ (REFIID){0x31,0xD2,0x8E,0xE7,0x88,0xB6,0x4C,0xB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14} +#define IID_IDeckLinkDisplayModeIterator_v7_6 /* 455D741F-1779-4800-86F5-0B5D13D79751 */ (REFIID){0x45,0x5D,0x74,0x1F,0x17,0x79,0x48,0x00,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51} +#define IID_IDeckLinkDisplayMode_v7_6 /* 87451E84-2B7E-439E-A629-4393EA4A8550 */ (REFIID){0x87,0x45,0x1E,0x84,0x2B,0x7E,0x43,0x9E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50} +#define IID_IDeckLinkOutput_v7_6 /* 29228142-EB8C-4141-A621-F74026450955 */ (REFIID){0x29,0x22,0x81,0x42,0xEB,0x8C,0x41,0x41,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55} +#define IID_IDeckLinkInput_v7_6 /* 300C135A-9F43-48E2-9906-6D7911D93CF1 */ (REFIID){0x30,0x0C,0x13,0x5A,0x9F,0x43,0x48,0xE2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1} +#define IID_IDeckLinkTimecode_v7_6 /* EFB9BCA6-A521-44F7-BD69-2332F24D9EE6 */ (REFIID){0xEF,0xB9,0xBC,0xA6,0xA5,0x21,0x44,0xF7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6} +#define IID_IDeckLinkVideoFrame_v7_6 /* A8D8238E-6B18-4196-99E1-5AF717B83D32 */ (REFIID){0xA8,0xD8,0x23,0x8E,0x6B,0x18,0x41,0x96,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32} +#define IID_IDeckLinkMutableVideoFrame_v7_6 /* 46FCEE00-B4E6-43D0-91C0-023A7FCEB34F */ (REFIID){0x46,0xFC,0xEE,0x00,0xB4,0xE6,0x43,0xD0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F} +#define IID_IDeckLinkVideoInputFrame_v7_6 /* 9A74FA41-AE9F-47AC-8CF4-01F42DD59965 */ (REFIID){0x9A,0x74,0xFA,0x41,0xAE,0x9F,0x47,0xAC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65} +#define IID_IDeckLinkScreenPreviewCallback_v7_6 /* 373F499D-4B4D-4518-AD22-6354E5A5825E */ (REFIID){0x37,0x3F,0x49,0x9D,0x4B,0x4D,0x45,0x18,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E} +#define IID_IDeckLinkGLScreenPreviewHelper_v7_6 /* BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA */ (REFIID){0xBA,0x57,0x5C,0xD9,0xA1,0x5E,0x49,0x7B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA} +#define IID_IDeckLinkVideoConversion_v7_6 /* 3EB504C9-F97D-40FE-A158-D407D48CB53B */ (REFIID){0x3E,0xB5,0x04,0xC9,0xF9,0x7D,0x40,0xFE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B} +#define IID_IDeckLinkConfiguration_v7_6 /* B8EAD569-B764-47F0-A73F-AE40DF6CBF10 */ (REFIID){0xB8,0xEA,0xD5,0x69,0xB7,0x64,0x47,0xF0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10} + + +#if defined(__cplusplus) + +/* Enum BMDVideoConnection - Video connection types */ + +typedef uint32_t BMDVideoConnection_v7_6; +enum _BMDVideoConnection_v7_6 { + bmdVideoConnectionSDI_v7_6 = 'sdi ', + bmdVideoConnectionHDMI_v7_6 = 'hdmi', + bmdVideoConnectionOpticalSDI_v7_6 = 'opti', + bmdVideoConnectionComponent_v7_6 = 'cpnt', + bmdVideoConnectionComposite_v7_6 = 'cmst', + bmdVideoConnectionSVideo_v7_6 = 'svid' +}; + +// Forward Declarations + +class IDeckLinkVideoOutputCallback_v7_6; +class IDeckLinkInputCallback_v7_6; +class IDeckLinkDisplayModeIterator_v7_6; +class IDeckLinkDisplayMode_v7_6; +class IDeckLinkOutput_v7_6; +class IDeckLinkInput_v7_6; +class IDeckLinkTimecode_v7_6; +class IDeckLinkVideoFrame_v7_6; +class IDeckLinkMutableVideoFrame_v7_6; +class IDeckLinkVideoInputFrame_v7_6; +class IDeckLinkScreenPreviewCallback_v7_6; +class IDeckLinkGLScreenPreviewHelper_v7_6; +class IDeckLinkVideoConversion_v7_6; + + +/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ + +class BMD_PUBLIC IDeckLinkVideoOutputCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame_v7_6 *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; + virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; + +protected: + virtual ~IDeckLinkVideoOutputCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkInputCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_6* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ + +class BMD_PUBLIC IDeckLinkDisplayModeIterator_v7_6 : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; + +protected: + virtual ~IDeckLinkDisplayModeIterator_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkDisplayMode - represents a display mode */ + +class BMD_PUBLIC IDeckLinkDisplayMode_v7_6 : public IUnknown +{ +public: + virtual HRESULT GetName (/* out */ const char **name) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; + virtual BMDFieldDominance GetFieldDominance (void) = 0; + +protected: + virtual ~IDeckLinkDisplayMode_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkOutput_v7_6 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkOutput_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkInput_v7_6 - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkInput_v7_6 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_6 *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ + +class BMD_PUBLIC IDeckLinkTimecode_v7_6 : public IUnknown +{ +public: + virtual BMDTimecodeBCD GetBCD (void) = 0; + virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; + virtual HRESULT GetString (/* out */ const char **timecode) = 0; + virtual BMDTimecodeFlags GetFlags (void) = 0; + +protected: + virtual ~IDeckLinkTimecode_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ + +class BMD_PUBLIC IDeckLinkVideoFrame_v7_6 : public IUnknown +{ +public: + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual long GetRowBytes (void) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDFrameFlags GetFlags (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + + virtual HRESULT GetTimecode (BMDTimecodeFormat format, /* out */ IDeckLinkTimecode_v7_6 **timecode) = 0; + virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + +protected: + virtual ~IDeckLinkVideoFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ + +class BMD_PUBLIC IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT SetFlags (BMDFrameFlags newFlags) = 0; + + virtual HRESULT SetTimecode (BMDTimecodeFormat format, /* in */ IDeckLinkTimecode_v7_6 *timecode) = 0; + virtual HRESULT SetTimecodeFromComponents (BMDTimecodeFormat format, uint8_t hours, uint8_t minutes, uint8_t seconds, uint8_t frames, BMDTimecodeFlags flags) = 0; + virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + +protected: + virtual ~IDeckLinkMutableVideoFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ + +class BMD_PUBLIC IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +protected: + virtual ~IDeckLinkScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown +{ +public: + + /* Methods must be called with OpenGL context set */ + + virtual HRESULT InitializeGL (void) = 0; + virtual HRESULT PaintGL (void) = 0; + virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +protected: + virtual ~IDeckLinkGLScreenPreviewHelper_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkVideoConversion_v7_6 : public IUnknown +{ +public: + virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame_v7_6* srcFrame, /* in */ IDeckLinkVideoFrame_v7_6* dstFrame) = 0; + +protected: + virtual ~IDeckLinkVideoConversion_v7_6 () {}; // call Release method to drop reference count +}; + +/* Interface IDeckLinkConfiguration - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkConfiguration_v7_6 : public IUnknown +{ +public: + virtual HRESULT GetConfigurationValidator (/* out */ IDeckLinkConfiguration_v7_6 **configObject) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + + /* Video Output Configuration */ + + virtual HRESULT SetVideoOutputFormat (/* in */ BMDVideoConnection_v7_6 videoOutputConnection) = 0; + virtual HRESULT IsVideoOutputActive (/* in */ BMDVideoConnection_v7_6 videoOutputConnection, /* out */ bool *active) = 0; + + virtual HRESULT SetAnalogVideoOutputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; + virtual HRESULT GetAnalogVideoOutputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT EnableFieldFlickerRemovalWhenPaused (/* in */ bool enable) = 0; + virtual HRESULT IsEnabledFieldFlickerRemovalWhenPaused (/* out */ bool *enabled) = 0; + + virtual HRESULT Set444And3GBpsVideoOutput (/* in */ bool enable444VideoOutput, /* in */ bool enable3GbsOutput) = 0; + virtual HRESULT Get444And3GBpsVideoOutput (/* out */ bool *is444VideoOutputEnabled, /* out */ bool *threeGbsOutputEnabled) = 0; + + virtual HRESULT SetVideoOutputConversionMode (/* in */ BMDVideoOutputConversionMode conversionMode) = 0; + virtual HRESULT GetVideoOutputConversionMode (/* out */ BMDVideoOutputConversionMode *conversionMode) = 0; + + virtual HRESULT Set_HD1080p24_to_HD1080i5994_Conversion (/* in */ bool enable) = 0; + virtual HRESULT Get_HD1080p24_to_HD1080i5994_Conversion (/* out */ bool *enabled) = 0; + + /* Video Input Configuration */ + + virtual HRESULT SetVideoInputFormat (/* in */ BMDVideoConnection_v7_6 videoInputFormat) = 0; + virtual HRESULT GetVideoInputFormat (/* out */ BMDVideoConnection_v7_6 *videoInputFormat) = 0; + + virtual HRESULT SetAnalogVideoInputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; + virtual HRESULT GetAnalogVideoInputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT SetVideoInputConversionMode (/* in */ BMDVideoInputConversionMode conversionMode) = 0; + virtual HRESULT GetVideoInputConversionMode (/* out */ BMDVideoInputConversionMode *conversionMode) = 0; + + virtual HRESULT SetBlackVideoOutputDuringCapture (/* in */ bool blackOutInCapture) = 0; + virtual HRESULT GetBlackVideoOutputDuringCapture (/* out */ bool *blackOutInCapture) = 0; + + virtual HRESULT Set32PulldownSequenceInitialTimecodeFrame (/* in */ uint32_t aFrameTimecode) = 0; + virtual HRESULT Get32PulldownSequenceInitialTimecodeFrame (/* out */ uint32_t *aFrameTimecode) = 0; + + virtual HRESULT SetVancSourceLineMapping (/* in */ uint32_t activeLine1VANCsource, /* in */ uint32_t activeLine2VANCsource, /* in */ uint32_t activeLine3VANCsource) = 0; + virtual HRESULT GetVancSourceLineMapping (/* out */ uint32_t *activeLine1VANCsource, /* out */ uint32_t *activeLine2VANCsource, /* out */ uint32_t *activeLine3VANCsource) = 0; + + /* Audio Input Configuration */ + + virtual HRESULT SetAudioInputFormat (/* in */ BMDAudioConnection audioInputFormat) = 0; + virtual HRESULT GetAudioInputFormat (/* out */ BMDAudioConnection *audioInputFormat) = 0; +}; + +/* Functions */ + +extern "C" { + + IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance_v7_6 (void); + IDeckLinkGLScreenPreviewHelper_v7_6* BMD_PUBLIC CreateOpenGLScreenPreviewHelper_v7_6 (void); + IDeckLinkVideoConversion_v7_6* BMD_PUBLIC CreateVideoConversionInstance_v7_6 (void); + +}; + + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_6_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h new file mode 100644 index 00000000000..c8e3faa28dd --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h @@ -0,0 +1,88 @@ +/* -LICENSE-START- +** Copyright (c) 2010 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_9.h */ + +#ifndef __DeckLink_API_v7_9_h__ +#define __DeckLink_API_v7_9_h__ + +#include "DeckLinkAPI.h" + +// Interface ID Declarations +#define IID_IDeckLinkDeckControl_v7_9 /* A4D81043-0619-42B7-8ED6-602D29041DF7 */ (REFIID){0xA4,0xD8,0x10,0x43,0x06,0x19,0x42,0xB7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7} + +#if defined(__cplusplus) + + +// Forward Declarations +class IDeckLinkDeckControl_v7_9; + +/* Interface IDeckLinkDeckControl_v7_9 - Deck Control main interface */ +class BMD_PUBLIC IDeckLinkDeckControl_v7_9 : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl_v7_9 () {}; // call Release method to drop reference count +}; + + + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_9_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h new file mode 100644 index 00000000000..6cace7e1004 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h @@ -0,0 +1,63 @@ +/* -LICENSE-START- +** Copyright (c) 2011 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v8_0_H +#define BMD_DECKLINKAPI_v8_0_H + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +#define IID_IDeckLink_v8_0 /* 62BFF75D-6569-4E55-8D4D-66AA03829ABC */ (REFIID){0x62,0xBF,0xF7,0x5D,0x65,0x69,0x4E,0x55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC} +#define IID_IDeckLinkIterator_v8_0 /* 74E936FC-CC28-4A67-81A0-1E94E52D4E69 */ (REFIID){0x74,0xE9,0x36,0xFC,0xCC,0x28,0x4A,0x67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69} + +#if defined (__cplusplus) + +/* Interface IDeckLink_v8_0 - represents a DeckLink device */ + +class BMD_PUBLIC IDeckLink_v8_0 : public IUnknown +{ +public: + virtual HRESULT GetModelName (/* out */ const char **modelName) = 0; +}; + +/* Interface IDeckLinkIterator_v8_0 - enumerates installed DeckLink hardware */ + +class BMD_PUBLIC IDeckLinkIterator_v8_0 : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLink_v8_0 **deckLinkInstance) = 0; +}; + +extern "C" { + IDeckLinkIterator_v8_0* BMD_PUBLIC CreateDeckLinkIteratorInstance_v8_0 (void); +}; + +#endif // defined __cplusplus + +#endif /* defined(BMD_DECKLINKAPI_v8_0_H) */ + diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h new file mode 100644 index 00000000000..c7362aa4db4 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h @@ -0,0 +1,111 @@ +/* -LICENSE-START- + ** Copyright (c) 2011 Blackmagic Design + ** + ** Permission is hereby granted, free of charge, to any person or organization + ** obtaining a copy of the software and accompanying documentation covered by + ** this license (the "Software") to use, reproduce, display, distribute, + ** execute, and transmit the Software, and to prepare derivative works of the + ** Software, and to permit third-parties to whom the Software is furnished to + ** do so, all subject to the following: + ** + ** The copyright notices in the Software and this entire statement, including + ** the above license grant, this restriction and the following disclaimer, + ** must be included in all copies of the Software, in whole or in part, and + ** all derivative works of the Software, unless such copies or derivative + ** works are solely in the form of machine-executable object code generated by + ** a source language processor. + ** + ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + ** DEALINGS IN THE SOFTWARE. + ** -LICENSE-END- + */ + +#ifndef BMD_DECKLINKAPI_v8_1_H +#define BMD_DECKLINKAPI_v8_1_H + +#include "DeckLinkAPI.h" + + +// Interface ID Declarations + +#define IID_IDeckLinkDeckControlStatusCallback_v8_1 /* E5F693C1-4283-4716-B18F-C1431521955B */ (REFIID){0xE5,0xF6,0x93,0xC1,0x42,0x83,0x47,0x16,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B} +#define IID_IDeckLinkDeckControl_v8_1 /* 522A9E39-0F3C-4742-94EE-D80DE335DA1D */ (REFIID){0x52,0x2A,0x9E,0x39,0x0F,0x3C,0x47,0x42,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D} + + +/* Enum BMDDeckControlVTRControlState_v8_1 - VTR Control state */ + +typedef uint32_t BMDDeckControlVTRControlState_v8_1; +enum _BMDDeckControlVTRControlState_v8_1 { + bmdDeckControlNotInVTRControlMode_v8_1 = 'nvcm', + bmdDeckControlVTRControlPlaying_v8_1 = 'vtrp', + bmdDeckControlVTRControlRecording_v8_1 = 'vtrr', + bmdDeckControlVTRControlStill_v8_1 = 'vtra', + bmdDeckControlVTRControlSeeking_v8_1 = 'vtrs', + bmdDeckControlVTRControlStopped_v8_1 = 'vtro' +}; + + +/* Interface IDeckLinkDeckControlStatusCallback_v8_1 - Deck control state change callback. */ + +class BMD_PUBLIC IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown +{ +public: + virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; + virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState_v8_1 newState, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; + +protected: + virtual ~IDeckLinkDeckControlStatusCallback_v8_1 () {}; // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeckControl_v8_1 - Deck Control main interface */ + +class BMD_PUBLIC IDeckLinkDeckControl_v8_1 : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState_v8_1 *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl_v8_1 () {}; // call Release method to drop reference count +}; + + +#endif // BMD_DECKLINKAPI_v8_1_H diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h new file mode 100644 index 00000000000..dd5f83f37d7 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h @@ -0,0 +1,81 @@ +/* -LICENSE-START- +** Copyright (c) 2012 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v9_2_H +#define BMD_DECKLINKAPI_v9_2_H + +#include "DeckLinkAPI.h" + + +// Interface ID Declarations + +#define IID_IDeckLinkInput_v9_2 /* 6D40EF78-28B9-4E21-990D-95BB7750A04F */ (REFIID){0x6D,0x40,0xEF,0x78,0x28,0xB9,0x4E,0x21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F} + + +#if defined(__cplusplus) + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkInput_v9_2 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput_v9_2 () {}; // call Release method to drop reference count +}; + + +#endif // defined(__cplusplus) +#endif // BMD_DECKLINKAPI_v9_2_H diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h new file mode 100644 index 00000000000..9a51bf242a5 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h @@ -0,0 +1,98 @@ +/* -LICENSE-START- +** Copyright (c) 2013 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v9_9_H +#define BMD_DECKLINKAPI_v9_9_H + +#include "DeckLinkAPI.h" + + +// Interface ID Declarations + +#define IID_IDeckLinkOutput_v9_9 /* A3EF0963-0862-44ED-92A9-EE89ABF431C7 */ (REFIID){0xA3,0xEF,0x09,0x63,0x08,0x62,0x44,0xED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7} + + +#if defined(__cplusplus) + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkOutput_v9_9 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkOutput_v9_9 () {}; // call Release method to drop reference count +}; + +#endif // defined(__cplusplus) +#endif // BMD_DECKLINKAPI_v9_9_H diff --git a/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h b/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h new file mode 100644 index 00000000000..663602bc529 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h @@ -0,0 +1,103 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef __LINUX_COM_H_ +#define __LINUX_COM_H_ + +struct REFIID +{ + unsigned char byte0; + unsigned char byte1; + unsigned char byte2; + unsigned char byte3; + unsigned char byte4; + unsigned char byte5; + unsigned char byte6; + unsigned char byte7; + unsigned char byte8; + unsigned char byte9; + unsigned char byte10; + unsigned char byte11; + unsigned char byte12; + unsigned char byte13; + unsigned char byte14; + unsigned char byte15; +}; + +typedef REFIID CFUUIDBytes; +#define CFUUIDGetUUIDBytes(x) x + +typedef int HRESULT; +typedef unsigned long ULONG; +typedef void *LPVOID; + +#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0) +#define FAILED(Status) ((HRESULT)(Status)<0) + +#define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR) +#define HRESULT_CODE(hr) ((hr) & 0xFFFF) +#define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) +#define HRESULT_SEVERITY(hr) (((hr) >> 31) & 0x1) +#define SEVERITY_SUCCESS 0 +#define SEVERITY_ERROR 1 + +#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) + +#define S_OK ((HRESULT)0x00000000L) +#define S_FALSE ((HRESULT)0x00000001L) +#define E_UNEXPECTED ((HRESULT)0x8000FFFFL) +#define E_NOTIMPL ((HRESULT)0x80000001L) +#define E_OUTOFMEMORY ((HRESULT)0x80000002L) +#define E_INVALIDARG ((HRESULT)0x80000003L) +#define E_NOINTERFACE ((HRESULT)0x80000004L) +#define E_POINTER ((HRESULT)0x80000005L) +#define E_HANDLE ((HRESULT)0x80000006L) +#define E_ABORT ((HRESULT)0x80000007L) +#define E_FAIL ((HRESULT)0x80000008L) +#define E_ACCESSDENIED ((HRESULT)0x80000009L) + +#define STDMETHODCALLTYPE + +#define IID_IUnknown (REFIID){0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46} +#define IUnknownUUID IID_IUnknown + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +#ifdef __cplusplus +class BMD_PUBLIC IUnknown +{ + public: + virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) = 0; + virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0; + virtual ULONG STDMETHODCALLTYPE Release(void) = 0; +}; +#endif + +#endif + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h new file mode 100644 index 00000000000..2c04fe021f4 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h @@ -0,0 +1,1120 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_H +#define BMD_DECKLINKAPI_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +/* DeckLink API */ + +#include +#include +#include + +#include "DeckLinkAPITypes.h" +#include "DeckLinkAPIModes.h" +#include "DeckLinkAPIDiscovery.h" +#include "DeckLinkAPIConfiguration.h" +#include "DeckLinkAPIDeckControl.h" + +#include "DeckLinkAPIStreaming.h" + +#define BLACKMAGIC_DECKLINK_API_MAGIC 1 + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE}; +BMD_CONST REFIID IID_IDeckLinkInputCallback = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A}; +BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31}; +BMD_CONST REFIID IID_IDeckLinkMemoryAllocator = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8}; +BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6}; +BMD_CONST REFIID IID_IDeckLinkIterator = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA}; +BMD_CONST REFIID IID_IDeckLinkAPIInformation = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4}; +BMD_CONST REFIID IID_IDeckLinkOutput = /* CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564 */ {0xCC,0x5C,0x8A,0x6E,0x3F,0x2F,0x4B,0x3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64}; +BMD_CONST REFIID IID_IDeckLinkInput = /* AF22762B-DFAC-4846-AA79-FA8883560995 */ {0xAF,0x22,0x76,0x2B,0xDF,0xAC,0x48,0x46,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95}; +BMD_CONST REFIID IID_IDeckLinkEncoderInput = /* 270587DA-6B7D-42E7-A1F0-6D853F581185 */ {0x27,0x05,0x87,0xDA,0x6B,0x7D,0x42,0xE7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85}; +BMD_CONST REFIID IID_IDeckLinkVideoFrame = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17}; +BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90}; +BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7}; +BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F}; +BMD_CONST REFIID IID_IDeckLinkVideoInputFrame = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44}; +BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04}; +BMD_CONST REFIID IID_IDeckLinkEncoderPacket = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20}; +BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0}; +BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A}; +BMD_CONST REFIID IID_IDeckLinkH265NALPacket = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7}; +BMD_CONST REFIID IID_IDeckLinkAudioInputPacket = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66}; +BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38}; +BMD_CONST REFIID IID_IDeckLinkCocoaScreenPreviewCallback = /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ {0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA}; +BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F}; +BMD_CONST REFIID IID_IDeckLinkNotificationCallback = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D}; +BMD_CONST REFIID IID_IDeckLinkNotification = /* 0A1FB207-E215-441B-9B19-6FA1575946C5 */ {0x0A,0x1F,0xB2,0x07,0xE2,0x15,0x44,0x1B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5}; +BMD_CONST REFIID IID_IDeckLinkAttributes = /* ABC11843-D966-44CB-96E2-A1CB5D3135C4 */ {0xAB,0xC1,0x18,0x43,0xD9,0x66,0x44,0xCB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4}; +BMD_CONST REFIID IID_IDeckLinkStatus = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46}; +BMD_CONST REFIID IID_IDeckLinkKeyer = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3}; +BMD_CONST REFIID IID_IDeckLinkVideoConversion = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A}; +BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F}; +BMD_CONST REFIID IID_IDeckLinkDiscovery = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01}; + +/* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */ + +typedef uint32_t BMDVideoOutputFlags; +enum _BMDVideoOutputFlags { + bmdVideoOutputFlagDefault = 0, + bmdVideoOutputVANC = 1 << 0, + bmdVideoOutputVITC = 1 << 1, + bmdVideoOutputRP188 = 1 << 2, + bmdVideoOutputDualStream3D = 1 << 4 +}; + +/* Enum BMDPacketType - Type of packet */ + +typedef uint32_t BMDPacketType; +enum _BMDPacketType { + bmdPacketTypeStreamInterruptedMarker = 'sint', // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable + bmdPacketTypeStreamData = 'sdat' // Regular stream data +}; + +/* Enum BMDFrameFlags - Frame flags */ + +typedef uint32_t BMDFrameFlags; +enum _BMDFrameFlags { + bmdFrameFlagDefault = 0, + bmdFrameFlagFlipVertical = 1 << 0, + bmdFrameContainsHDRMetadata = 1 << 1, + bmdFrameContainsCintelMetadata = 1 << 2, + + /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */ + + bmdFrameHasNoInputSource = 1 << 31 +}; + +/* Enum BMDVideoInputFlags - Flags applicable to video input */ + +typedef uint32_t BMDVideoInputFlags; +enum _BMDVideoInputFlags { + bmdVideoInputFlagDefault = 0, + bmdVideoInputEnableFormatDetection = 1 << 0, + bmdVideoInputDualStream3D = 1 << 1 +}; + +/* Enum BMDVideoInputFormatChangedEvents - Bitmask passed to the VideoInputFormatChanged notification to identify the properties of the input signal that have changed */ + +typedef uint32_t BMDVideoInputFormatChangedEvents; +enum _BMDVideoInputFormatChangedEvents { + bmdVideoInputDisplayModeChanged = 1 << 0, + bmdVideoInputFieldDominanceChanged = 1 << 1, + bmdVideoInputColorspaceChanged = 1 << 2 +}; + +/* Enum BMDDetectedVideoInputFormatFlags - Flags passed to the VideoInputFormatChanged notification to describe the detected video input signal */ + +typedef uint32_t BMDDetectedVideoInputFormatFlags; +enum _BMDDetectedVideoInputFormatFlags { + bmdDetectedVideoInputYCbCr422 = 1 << 0, + bmdDetectedVideoInputRGB444 = 1 << 1, + bmdDetectedVideoInputDualStream3D = 1 << 2 +}; + +/* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */ + +typedef uint32_t BMDDeckLinkCapturePassthroughMode; +enum _BMDDeckLinkCapturePassthroughMode { + bmdDeckLinkCapturePassthroughModeDisabled = 'pdis', + bmdDeckLinkCapturePassthroughModeDirect = 'pdir', + bmdDeckLinkCapturePassthroughModeCleanSwitch = 'pcln' +}; + +/* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */ + +typedef uint32_t BMDOutputFrameCompletionResult; +enum _BMDOutputFrameCompletionResult { + bmdOutputFrameCompleted, + bmdOutputFrameDisplayedLate, + bmdOutputFrameDropped, + bmdOutputFrameFlushed +}; + +/* Enum BMDReferenceStatus - GenLock input status */ + +typedef uint32_t BMDReferenceStatus; +enum _BMDReferenceStatus { + bmdReferenceNotSupportedByHardware = 1 << 0, + bmdReferenceLocked = 1 << 1 +}; + +/* Enum BMDAudioFormat - Audio Format */ + +typedef uint32_t BMDAudioFormat; +enum _BMDAudioFormat { + bmdAudioFormatPCM = 'lpcm' // Linear signed PCM samples +}; + +/* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */ + +typedef uint32_t BMDAudioSampleRate; +enum _BMDAudioSampleRate { + bmdAudioSampleRate48kHz = 48000 +}; + +/* Enum BMDAudioSampleType - Audio sample sizes supported for output/input */ + +typedef uint32_t BMDAudioSampleType; +enum _BMDAudioSampleType { + bmdAudioSampleType16bitInteger = 16, + bmdAudioSampleType32bitInteger = 32 +}; + +/* Enum BMDAudioOutputStreamType - Audio output stream type */ + +typedef uint32_t BMDAudioOutputStreamType; +enum _BMDAudioOutputStreamType { + bmdAudioOutputStreamContinuous, + bmdAudioOutputStreamContinuousDontResample, + bmdAudioOutputStreamTimestamped +}; + +/* Enum BMDDisplayModeSupport - Output mode supported flags */ + +typedef uint32_t BMDDisplayModeSupport; +enum _BMDDisplayModeSupport { + bmdDisplayModeNotSupported = 0, + bmdDisplayModeSupported, + bmdDisplayModeSupportedWithConversion +}; + +/* Enum BMDTimecodeFormat - Timecode formats for frame metadata */ + +typedef uint32_t BMDTimecodeFormat; +enum _BMDTimecodeFormat { + bmdTimecodeRP188VITC1 = 'rpv1', // RP188 timecode where DBB1 equals VITC1 (line 9) + bmdTimecodeRP188VITC2 = 'rp12', // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF) + bmdTimecodeRP188LTC = 'rplt', // RP188 timecode where DBB1 equals LTC (line 10) + bmdTimecodeRP188Any = 'rp18', // For capture: return the first valid timecode in {VITC1, LTC ,VITC2} - For playback: set the timecode as VITC1 + bmdTimecodeVITC = 'vitc', + bmdTimecodeVITCField2 = 'vit2', + bmdTimecodeSerial = 'seri' +}; + +/* Enum BMDAnalogVideoFlags - Analog video display flags */ + +typedef uint32_t BMDAnalogVideoFlags; +enum _BMDAnalogVideoFlags { + bmdAnalogVideoFlagCompositeSetup75 = 1 << 0, + bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1 +}; + +/* Enum BMDAudioOutputAnalogAESSwitch - Audio output Analog/AESEBU switch */ + +typedef uint32_t BMDAudioOutputAnalogAESSwitch; +enum _BMDAudioOutputAnalogAESSwitch { + bmdAudioOutputSwitchAESEBU = 'aes ', + bmdAudioOutputSwitchAnalog = 'anlg' +}; + +/* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */ + +typedef uint32_t BMDVideoOutputConversionMode; +enum _BMDVideoOutputConversionMode { + bmdNoVideoOutputConversion = 'none', + bmdVideoOutputLetterboxDownconversion = 'ltbx', + bmdVideoOutputAnamorphicDownconversion = 'amph', + bmdVideoOutputHD720toHD1080Conversion = '720c', + bmdVideoOutputHardwareLetterboxDownconversion = 'HWlb', + bmdVideoOutputHardwareAnamorphicDownconversion = 'HWam', + bmdVideoOutputHardwareCenterCutDownconversion = 'HWcc', + bmdVideoOutputHardware720p1080pCrossconversion = 'xcap', + bmdVideoOutputHardwareAnamorphic720pUpconversion = 'ua7p', + bmdVideoOutputHardwareAnamorphic1080iUpconversion = 'ua1i', + bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 'u47p', + bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 'u41i', + bmdVideoOutputHardwarePillarbox720pUpconversion = 'up7p', + bmdVideoOutputHardwarePillarbox1080iUpconversion = 'up1i' +}; + +/* Enum BMDVideoInputConversionMode - Video input conversion mode */ + +typedef uint32_t BMDVideoInputConversionMode; +enum _BMDVideoInputConversionMode { + bmdNoVideoInputConversion = 'none', + bmdVideoInputLetterboxDownconversionFromHD1080 = '10lb', + bmdVideoInputAnamorphicDownconversionFromHD1080 = '10am', + bmdVideoInputLetterboxDownconversionFromHD720 = '72lb', + bmdVideoInputAnamorphicDownconversionFromHD720 = '72am', + bmdVideoInputLetterboxUpconversion = 'lbup', + bmdVideoInputAnamorphicUpconversion = 'amup' +}; + +/* Enum BMDVideo3DPackingFormat - Video 3D packing format */ + +typedef uint32_t BMDVideo3DPackingFormat; +enum _BMDVideo3DPackingFormat { + bmdVideo3DPackingSidebySideHalf = 'sbsh', + bmdVideo3DPackingLinebyLine = 'lbyl', + bmdVideo3DPackingTopAndBottom = 'tabo', + bmdVideo3DPackingFramePacking = 'frpk', + bmdVideo3DPackingLeftOnly = 'left', + bmdVideo3DPackingRightOnly = 'righ' +}; + +/* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */ + +typedef uint32_t BMDIdleVideoOutputOperation; +enum _BMDIdleVideoOutputOperation { + bmdIdleVideoOutputBlack = 'blac', + bmdIdleVideoOutputLastFrame = 'lafa' +}; + +/* Enum BMDVideoEncoderFrameCodingMode - Video frame coding mode */ + +typedef uint32_t BMDVideoEncoderFrameCodingMode; +enum _BMDVideoEncoderFrameCodingMode { + bmdVideoEncoderFrameCodingModeInter = 'inte', + bmdVideoEncoderFrameCodingModeIntra = 'intr' +}; + +/* Enum BMDDNxHRLevel - DNxHR Levels */ + +typedef uint32_t BMDDNxHRLevel; +enum _BMDDNxHRLevel { + bmdDNxHRLevelSQ = 'dnsq', + bmdDNxHRLevelLB = 'dnlb', + bmdDNxHRLevelHQ = 'dnhq', + bmdDNxHRLevelHQX = 'dhqx', + bmdDNxHRLevel444 = 'd444' +}; + +/* Enum BMDLinkConfiguration - Video link configuration */ + +typedef uint32_t BMDLinkConfiguration; +enum _BMDLinkConfiguration { + bmdLinkConfigurationSingleLink = 'lcsl', + bmdLinkConfigurationDualLink = 'lcdl', + bmdLinkConfigurationQuadLink = 'lcql' +}; + +/* Enum BMDDeviceInterface - Device interface type */ + +typedef uint32_t BMDDeviceInterface; +enum _BMDDeviceInterface { + bmdDeviceInterfacePCI = 'pci ', + bmdDeviceInterfaceUSB = 'usb ', + bmdDeviceInterfaceThunderbolt = 'thun' +}; + +/* Enum BMDDeckLinkFrameMetadataID - DeckLink Frame Metadata ID */ + +typedef uint32_t BMDDeckLinkFrameMetadataID; +enum _BMDDeckLinkFrameMetadataID { + bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc = 'eotf', // EOTF in range 0-7 as per CEA 861.3 + bmdDeckLinkFrameMetadataCintelFilmType = 'cfty', // Current film type + bmdDeckLinkFrameMetadataCintelFilmGauge = 'cfga', // Current film gauge + bmdDeckLinkFrameMetadataCintelOffsetDetectedHorizontal = 'odfh', // Horizontal offset (pixels) detected in image + bmdDeckLinkFrameMetadataCintelOffsetDetectedVertical = 'odfv', // Vertical offset (pixels) detected in image + bmdDeckLinkFrameMetadataCintelOffsetAppliedHorizontal = 'odah', // Horizontal offset (pixels) applied to image + bmdDeckLinkFrameMetadataCintelOffsetAppliedVertical = 'odav', // Vertical offset (pixels) applied to image + bmdDeckLinkFrameMetadataCintelKeykodeLow = 'ckkl', // Raw keykode value - low 64 bits + bmdDeckLinkFrameMetadataCintelKeykodeHigh = 'ckkh', // Raw keykode value - high 64 bits + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed = 'mrir', // Red in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed = 'mgir', // Green in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed = 'mbir', // Blue in red linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen = 'mrig', // Red in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen = 'mgig', // Green in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = 'mbig', // Blue in green linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue = 'mrib', // Red in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = 'mgib', // Green in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue = 'mbib', // Blue in blue linear masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed = 'mlrr', // Red in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed = 'mlgr', // Green in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed = 'mlbr', // Blue in red log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen = 'mlrg', // Red in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen = 'mlgg', // Green in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen = 'mlbg', // Blue in green log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue = 'mlrb', // Red in blue log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue = 'mlgb', // Green in blue log masking parameter + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue = 'mlbb', // Blue in blue log masking parameter + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX = 'hdrx', // Red display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY = 'hdry', // Red display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX = 'hdgx', // Green display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY = 'hdgy', // Green display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX = 'hdbx', // Blue display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY = 'hdby', // Blue display primaries in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRWhitePointX = 'hdwx', // White point in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRWhitePointY = 'hdwy', // White point in range 0.0 - 1.0 + bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance = 'hdml', // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance = 'hmil', // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2 + bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel = 'mcll', // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = 'fall', // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2 + bmdDeckLinkFrameMetadataCintel16mmCropRequired = 'c16c', // The image should be cropped to 16mm size + bmdDeckLinkFrameMetadataCintelInversionRequired = 'cinv', // The image should be colour inverted + bmdDeckLinkFrameMetadataCintelFlipRequired = 'cflr', // The image should be flipped horizontally + bmdDeckLinkFrameMetadataCintelFocusAssistEnabled = 'cfae', // Focus Assist is currently enabled + bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated = 'kkii' // The keykode for this frame is interpolated from nearby keykodes +}; + +/* Enum BMDDuplexMode - Duplex for configurable ports */ + +typedef uint32_t BMDDuplexMode; +enum _BMDDuplexMode { + bmdDuplexModeFull = 'fdup', + bmdDuplexModeHalf = 'hdup' +}; + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID; +enum _BMDDeckLinkAttributeID { + + /* Flags */ + + BMDDeckLinkSupportsInternalKeying = 'keyi', + BMDDeckLinkSupportsExternalKeying = 'keye', + BMDDeckLinkSupportsHDKeying = 'keyh', + BMDDeckLinkSupportsInputFormatDetection = 'infd', + BMDDeckLinkHasReferenceInput = 'hrin', + BMDDeckLinkHasSerialPort = 'hspt', + BMDDeckLinkHasAnalogVideoOutputGain = 'avog', + BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 'ovog', + BMDDeckLinkHasVideoInputAntiAliasingFilter = 'aafl', + BMDDeckLinkHasBypass = 'byps', + BMDDeckLinkSupportsClockTimingAdjustment = 'ctad', + BMDDeckLinkSupportsFullDuplex = 'fdup', + BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = 'frin', + BMDDeckLinkSupportsSMPTELevelAOutput = 'lvla', + BMDDeckLinkSupportsDualLinkSDI = 'sdls', + BMDDeckLinkSupportsQuadLinkSDI = 'sqls', + BMDDeckLinkSupportsIdleOutput = 'idou', + BMDDeckLinkHasLTCTimecodeInput = 'hltc', + BMDDeckLinkSupportsDuplexModeConfiguration = 'dupx', + BMDDeckLinkSupportsHDRMetadata = 'hdrm', + + /* Integers */ + + BMDDeckLinkMaximumAudioChannels = 'mach', + BMDDeckLinkMaximumAnalogAudioInputChannels = 'iach', + BMDDeckLinkMaximumAnalogAudioOutputChannels = 'aach', + BMDDeckLinkNumberOfSubDevices = 'nsbd', + BMDDeckLinkSubDeviceIndex = 'subi', + BMDDeckLinkPersistentID = 'peid', + BMDDeckLinkDeviceGroupID = 'dgid', + BMDDeckLinkTopologicalID = 'toid', + BMDDeckLinkVideoOutputConnections = 'vocn', // Returns a BMDVideoConnection bit field + BMDDeckLinkVideoInputConnections = 'vicn', // Returns a BMDVideoConnection bit field + BMDDeckLinkAudioOutputConnections = 'aocn', // Returns a BMDAudioConnection bit field + BMDDeckLinkAudioInputConnections = 'aicn', // Returns a BMDAudioConnection bit field + BMDDeckLinkVideoIOSupport = 'vios', // Returns a BMDVideoIOSupport bit field + BMDDeckLinkDeckControlConnections = 'dccn', // Returns a BMDDeckControlConnection bit field + BMDDeckLinkDeviceInterface = 'dbus', // Returns a BMDDeviceInterface + BMDDeckLinkAudioInputRCAChannelCount = 'airc', + BMDDeckLinkAudioInputXLRChannelCount = 'aixc', + BMDDeckLinkAudioOutputRCAChannelCount = 'aorc', + BMDDeckLinkAudioOutputXLRChannelCount = 'aoxc', + BMDDeckLinkPairedDevicePersistentID = 'ppid', + + /* Floats */ + + BMDDeckLinkVideoInputGainMinimum = 'vigm', + BMDDeckLinkVideoInputGainMaximum = 'vigx', + BMDDeckLinkVideoOutputGainMinimum = 'vogm', + BMDDeckLinkVideoOutputGainMaximum = 'vogx', + BMDDeckLinkMicrophoneInputGainMinimum = 'migm', + BMDDeckLinkMicrophoneInputGainMaximum = 'migx', + + /* Strings */ + + BMDDeckLinkSerialPortDeviceName = 'slpn', + BMDDeckLinkVendorName = 'vndr', + BMDDeckLinkDisplayName = 'dspn', + BMDDeckLinkModelName = 'mdln', + BMDDeckLinkDeviceHandle = 'devh' +}; + +/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */ + +typedef uint32_t BMDDeckLinkAPIInformationID; +enum _BMDDeckLinkAPIInformationID { + BMDDeckLinkAPIVersion = 'vers' +}; + +/* Enum BMDDeckLinkStatusID - DeckLink Status ID */ + +typedef uint32_t BMDDeckLinkStatusID; +enum _BMDDeckLinkStatusID { + + /* Integers */ + + bmdDeckLinkStatusDetectedVideoInputMode = 'dvim', + bmdDeckLinkStatusDetectedVideoInputFlags = 'dvif', + bmdDeckLinkStatusCurrentVideoInputMode = 'cvim', + bmdDeckLinkStatusCurrentVideoInputPixelFormat = 'cvip', + bmdDeckLinkStatusCurrentVideoInputFlags = 'cvif', + bmdDeckLinkStatusCurrentVideoOutputMode = 'cvom', + bmdDeckLinkStatusCurrentVideoOutputFlags = 'cvof', + bmdDeckLinkStatusPCIExpressLinkWidth = 'pwid', + bmdDeckLinkStatusPCIExpressLinkSpeed = 'plnk', + bmdDeckLinkStatusLastVideoOutputPixelFormat = 'opix', + bmdDeckLinkStatusReferenceSignalMode = 'refm', + bmdDeckLinkStatusReferenceSignalFlags = 'reff', + bmdDeckLinkStatusDuplexMode = 'dupx', + bmdDeckLinkStatusBusy = 'busy', + bmdDeckLinkStatusInterchangeablePanelType = 'icpt', + + /* Flags */ + + bmdDeckLinkStatusVideoInputSignalLocked = 'visl', + bmdDeckLinkStatusReferenceSignalLocked = 'refl', + bmdDeckLinkStatusReceivedEDID = 'edid' +}; + +/* Enum BMDDeckLinkVideoStatusFlags - */ + +typedef uint32_t BMDDeckLinkVideoStatusFlags; +enum _BMDDeckLinkVideoStatusFlags { + bmdDeckLinkVideoStatusPsF = 1 << 0, + bmdDeckLinkVideoStatusDualStream3D = 1 << 1 +}; + +/* Enum BMDDuplexStatus - Duplex status of the device */ + +typedef uint32_t BMDDuplexStatus; +enum _BMDDuplexStatus { + bmdDuplexStatusFullDuplex = 'fdup', + bmdDuplexStatusHalfDuplex = 'hdup', + bmdDuplexStatusSimplex = 'splx', + bmdDuplexStatusInactive = 'inac' +}; + +/* Enum BMDPanelType - The type of interchangeable panel */ + +typedef uint32_t BMDPanelType; +enum _BMDPanelType { + bmdPanelNotDetected = 'npnl', + bmdPanelTeranexMiniSmartPanel = 'tmsm' +}; + +/* Enum BMDDeviceBusyState - Current device busy state */ + +typedef uint32_t BMDDeviceBusyState; +enum _BMDDeviceBusyState { + bmdDeviceCaptureBusy = 1 << 0, + bmdDevicePlaybackBusy = 1 << 1, + bmdDeviceSerialPortBusy = 1 << 2 +}; + +/* Enum BMDVideoIOSupport - Device video input/output support */ + +typedef uint32_t BMDVideoIOSupport; +enum _BMDVideoIOSupport { + bmdDeviceSupportsCapture = 1 << 0, + bmdDeviceSupportsPlayback = 1 << 1 +}; + +/* Enum BMD3DPreviewFormat - Linked Frame preview format */ + +typedef uint32_t BMD3DPreviewFormat; +enum _BMD3DPreviewFormat { + bmd3DPreviewFormatDefault = 'defa', + bmd3DPreviewFormatLeftOnly = 'left', + bmd3DPreviewFormatRightOnly = 'righ', + bmd3DPreviewFormatSideBySide = 'side', + bmd3DPreviewFormatTopBottom = 'topb' +}; + +/* Enum BMDNotifications - Events that can be subscribed through IDeckLinkNotification */ + +typedef uint32_t BMDNotifications; +enum _BMDNotifications { + bmdPreferencesChanged = 'pref', + bmdStatusChanged = 'stat' +}; + +#if defined(__cplusplus) + +// Forward Declarations + +class IDeckLinkVideoOutputCallback; +class IDeckLinkInputCallback; +class IDeckLinkEncoderInputCallback; +class IDeckLinkMemoryAllocator; +class IDeckLinkAudioOutputCallback; +class IDeckLinkIterator; +class IDeckLinkAPIInformation; +class IDeckLinkOutput; +class IDeckLinkInput; +class IDeckLinkEncoderInput; +class IDeckLinkVideoFrame; +class IDeckLinkMutableVideoFrame; +class IDeckLinkVideoFrame3DExtensions; +class IDeckLinkVideoFrameMetadataExtensions; +class IDeckLinkVideoInputFrame; +class IDeckLinkVideoFrameAncillary; +class IDeckLinkEncoderPacket; +class IDeckLinkEncoderVideoPacket; +class IDeckLinkEncoderAudioPacket; +class IDeckLinkH265NALPacket; +class IDeckLinkAudioInputPacket; +class IDeckLinkScreenPreviewCallback; +class IDeckLinkCocoaScreenPreviewCallback; +class IDeckLinkGLScreenPreviewHelper; +class IDeckLinkNotificationCallback; +class IDeckLinkNotification; +class IDeckLinkAttributes; +class IDeckLinkStatus; +class IDeckLinkKeyer; +class IDeckLinkVideoConversion; +class IDeckLinkDeviceNotificationCallback; +class IDeckLinkDiscovery; + +/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ + +class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown +{ +public: + virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; + virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; + +protected: + virtual ~IDeckLinkVideoOutputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderInputCallback - Frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown +{ +public: + virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0; + virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkEncoderInputCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkMemoryAllocator - Memory allocator for video frames. */ + +class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown +{ +public: + virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0; + virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0; + + virtual HRESULT Commit (void) = 0; + virtual HRESULT Decommit (void) = 0; +}; + +/* Interface IDeckLinkAudioOutputCallback - Optional callback to allow audio samples to be pulled as required. */ + +class BMD_PUBLIC IDeckLinkAudioOutputCallback : public IUnknown +{ +public: + virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0; +}; + +/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */ + +class BMD_PUBLIC IDeckLinkIterator : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0; +}; + +/* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */ + +class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ CFStringRef *value) = 0; + +protected: + virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkOutput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0; + +protected: + virtual ~IDeckLinkOutput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkInput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderInput - Created by QueryInterface from IDeckLink. */ + +class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0; + virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ + +class BMD_PUBLIC IDeckLinkVideoFrame : public IUnknown +{ +public: + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual long GetRowBytes (void) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDFrameFlags GetFlags (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + + virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; + virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + +protected: + virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ + +class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame +{ +public: + virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0; + + virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0; + virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0; + virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0; + +protected: + virtual ~IDeckLinkMutableVideoFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrame3DExtensions - Optional interface implemented on IDeckLinkVideoFrame to support 3D frames */ + +class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown +{ +public: + virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0; + virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0; + +protected: + virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */ + +class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown +{ +public: + virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ CFStringRef *value) = 0; + +protected: + virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoFrameAncillary - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */ + +class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown +{ +public: + + virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + +protected: + virtual ~IDeckLinkVideoFrameAncillary () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderPacket - Interface to encapsulate an encoded packet. */ + +class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown +{ +public: + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + virtual long GetSize (void) = 0; + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0; + virtual BMDPacketType GetPacketType (void) = 0; + +protected: + virtual ~IDeckLinkEncoderPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderVideoPacket - Provided by the IDeckLinkEncoderInput video packet arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket +{ +public: + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + + virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; + +protected: + virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderAudioPacket - Provided by the IDeckLinkEncoderInput audio packet arrival callback. */ + +class BMD_PUBLIC IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket +{ +public: + virtual BMDAudioFormat GetAudioFormat (void) = 0; + +protected: + virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */ + +class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket +{ +public: + virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0; + virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0; + virtual long GetSizeNoPrefix (void) = 0; + +protected: + virtual ~IDeckLinkH265NALPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkAudioInputPacket - Provided by the IDeckLinkInput callback. */ + +class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown +{ +public: + virtual long GetSampleFrameCount (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0; + +protected: + virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ + +class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown +{ +public: + virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + +protected: + virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications */ + +class BMD_PUBLIC IDeckLinkCocoaScreenPreviewCallback : public IDeckLinkScreenPreviewCallback +{ +public: + +protected: + virtual ~IDeckLinkCocoaScreenPreviewCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown +{ +public: + + /* Methods must be called with OpenGL context set */ + + virtual HRESULT InitializeGL (void) = 0; + virtual HRESULT PaintGL (void) = 0; + virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0; + +protected: + virtual ~IDeckLinkGLScreenPreviewHelper () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkNotificationCallback - DeckLink Notification Callback Interface */ + +class BMD_PUBLIC IDeckLinkNotificationCallback : public IUnknown +{ +public: + virtual HRESULT Notify (/* in */ BMDNotifications topic, /* in */ uint64_t param1, /* in */ uint64_t param2) = 0; +}; + +/* Interface IDeckLinkNotification - DeckLink Notification interface */ + +class BMD_PUBLIC IDeckLinkNotification : public IUnknown +{ +public: + virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; + virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; +}; + +/* Interface IDeckLinkAttributes - DeckLink Attribute interface */ + +class BMD_PUBLIC IDeckLinkAttributes : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ CFStringRef *value) = 0; + +protected: + virtual ~IDeckLinkAttributes () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkStatus - DeckLink Status interface */ + +class BMD_PUBLIC IDeckLinkStatus : public IUnknown +{ +public: + virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ CFStringRef *value) = 0; + virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0; + +protected: + virtual ~IDeckLinkStatus () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkKeyer - DeckLink Keyer interface */ + +class BMD_PUBLIC IDeckLinkKeyer : public IUnknown +{ +public: + virtual HRESULT Enable (/* in */ bool isExternal) = 0; + virtual HRESULT SetLevel (/* in */ uint8_t level) = 0; + virtual HRESULT RampUp (/* in */ uint32_t numberOfFrames) = 0; + virtual HRESULT RampDown (/* in */ uint32_t numberOfFrames) = 0; + virtual HRESULT Disable (void) = 0; + +protected: + virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ + +class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown +{ +public: + virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame* srcFrame, /* in */ IDeckLinkVideoFrame* dstFrame) = 0; + +protected: + virtual ~IDeckLinkVideoConversion () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeviceNotificationCallback - DeckLink device arrival/removal notification callbacks */ + +class BMD_PUBLIC IDeckLinkDeviceNotificationCallback : public IUnknown +{ +public: + virtual HRESULT DeckLinkDeviceArrived (/* in */ IDeckLink* deckLinkDevice) = 0; + virtual HRESULT DeckLinkDeviceRemoved (/* in */ IDeckLink* deckLinkDevice) = 0; + +protected: + virtual ~IDeckLinkDeviceNotificationCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDiscovery - DeckLink device discovery */ + +class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown +{ +public: + virtual HRESULT InstallDeviceNotifications (/* in */ IDeckLinkDeviceNotificationCallback* deviceNotificationCallback) = 0; + virtual HRESULT UninstallDeviceNotifications (void) = 0; + +protected: + virtual ~IDeckLinkDiscovery () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void); + IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void); + IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void); + IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void); + IDeckLinkCocoaScreenPreviewCallback* BMD_PUBLIC CreateCocoaScreenPreview (void* /* (NSView*) */ parentView); + IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void); + +} + + +#endif // defined(__cplusplus) +#endif /* defined(BMD_DECKLINKAPI_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h new file mode 100644 index 00000000000..6622aecea62 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h @@ -0,0 +1,261 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_H +#define BMD_DECKLINKAPICONFIGURATION_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration = /* EF90380B-4AE5-4346-9077-E288E149F129 */ {0xEF,0x90,0x38,0x0B,0x4A,0xE5,0x43,0x46,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29}; +BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E}; + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID; +enum _BMDDeckLinkConfigurationID { + + /* Serial port Flags */ + + bmdDeckLinkConfigSwapSerialRxTx = 'ssrt', + + /* Video Input/Output Integers */ + + bmdDeckLinkConfigHDMI3DPackingFormat = '3dpf', + bmdDeckLinkConfigBypass = 'byps', + bmdDeckLinkConfigClockTimingAdjustment = 'ctad', + bmdDeckLinkConfigDuplexMode = 'dupx', + + /* Audio Input/Output Flags */ + + bmdDeckLinkConfigAnalogAudioConsumerLevels = 'aacl', + + /* Video output flags */ + + bmdDeckLinkConfigFieldFlickerRemoval = 'fdfr', + bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 'to59', + bmdDeckLinkConfig444SDIVideoOutput = '444o', + bmdDeckLinkConfigBlackVideoOutputDuringCapture = 'bvoc', + bmdDeckLinkConfigLowLatencyVideoOutput = 'llvo', + bmdDeckLinkConfigDownConversionOnAllAnalogOutput = 'caao', + bmdDeckLinkConfigSMPTELevelAOutput = 'smta', + + /* Video Output Flags */ + + bmdDeckLinkConfigOutput1080pAsPsF = 'pfpr', + + /* Video Output Integers */ + + bmdDeckLinkConfigVideoOutputConnection = 'vocn', + bmdDeckLinkConfigVideoOutputConversionMode = 'vocm', + bmdDeckLinkConfigAnalogVideoOutputFlags = 'avof', + bmdDeckLinkConfigReferenceInputTimingOffset = 'glot', + bmdDeckLinkConfigVideoOutputIdleOperation = 'voio', + bmdDeckLinkConfigDefaultVideoOutputMode = 'dvom', + bmdDeckLinkConfigDefaultVideoOutputModeFlags = 'dvof', + bmdDeckLinkConfigSDIOutputLinkConfiguration = 'solc', + + /* Video Output Floats */ + + bmdDeckLinkConfigVideoOutputComponentLumaGain = 'oclg', + bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 'occb', + bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 'occr', + bmdDeckLinkConfigVideoOutputCompositeLumaGain = 'oilg', + bmdDeckLinkConfigVideoOutputCompositeChromaGain = 'oicg', + bmdDeckLinkConfigVideoOutputSVideoLumaGain = 'oslg', + bmdDeckLinkConfigVideoOutputSVideoChromaGain = 'oscg', + + /* Video Input Flags */ + + bmdDeckLinkConfigVideoInputScanning = 'visc', // Applicable to H264 Pro Recorder only + bmdDeckLinkConfigUseDedicatedLTCInput = 'dltc', // Use timecode from LTC input instead of SDI stream + bmdDeckLinkConfigSDIInput3DPayloadOverride = '3dds', + + /* Video Input Flags */ + + bmdDeckLinkConfigCapture1080pAsPsF = 'cfpr', + + /* Video Input Integers */ + + bmdDeckLinkConfigVideoInputConnection = 'vicn', + bmdDeckLinkConfigAnalogVideoInputFlags = 'avif', + bmdDeckLinkConfigVideoInputConversionMode = 'vicm', + bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 'pdif', + bmdDeckLinkConfigVANCSourceLine1Mapping = 'vsl1', + bmdDeckLinkConfigVANCSourceLine2Mapping = 'vsl2', + bmdDeckLinkConfigVANCSourceLine3Mapping = 'vsl3', + bmdDeckLinkConfigCapturePassThroughMode = 'cptm', + + /* Video Input Floats */ + + bmdDeckLinkConfigVideoInputComponentLumaGain = 'iclg', + bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 'iccb', + bmdDeckLinkConfigVideoInputComponentChromaRedGain = 'iccr', + bmdDeckLinkConfigVideoInputCompositeLumaGain = 'iilg', + bmdDeckLinkConfigVideoInputCompositeChromaGain = 'iicg', + bmdDeckLinkConfigVideoInputSVideoLumaGain = 'islg', + bmdDeckLinkConfigVideoInputSVideoChromaGain = 'iscg', + + /* Audio Input Flags */ + + bmdDeckLinkConfigMicrophonePhantomPower = 'mphp', + + /* Audio Input Integers */ + + bmdDeckLinkConfigAudioInputConnection = 'aicn', + + /* Audio Input Floats */ + + bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 'ais1', + bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 'ais2', + bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 'ais3', + bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 'ais4', + bmdDeckLinkConfigDigitalAudioInputScale = 'dais', + bmdDeckLinkConfigMicrophoneInputGain = 'micg', + + /* Audio Output Integers */ + + bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 'aoaa', + + /* Audio Output Floats */ + + bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 'aos1', + bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 'aos2', + bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 'aos3', + bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 'aos4', + bmdDeckLinkConfigDigitalAudioOutputScale = 'daos', + bmdDeckLinkConfigHeadphoneVolume = 'hvol', + + /* Device Information Strings */ + + bmdDeckLinkConfigDeviceInformationLabel = 'dila', + bmdDeckLinkConfigDeviceInformationSerialNumber = 'disn', + bmdDeckLinkConfigDeviceInformationCompany = 'dico', + bmdDeckLinkConfigDeviceInformationPhone = 'diph', + bmdDeckLinkConfigDeviceInformationEmail = 'diem', + bmdDeckLinkConfigDeviceInformationDate = 'dida', + + /* Deck Control Integers */ + + bmdDeckLinkConfigDeckControlConnection = 'dcco' +}; + +/* Enum BMDDeckLinkEncoderConfigurationID - DeckLink Encoder Configuration ID */ + +typedef uint32_t BMDDeckLinkEncoderConfigurationID; +enum _BMDDeckLinkEncoderConfigurationID { + + /* Video Encoder Integers */ + + bmdDeckLinkEncoderConfigPreferredBitDepth = 'epbr', + bmdDeckLinkEncoderConfigFrameCodingMode = 'efcm', + + /* HEVC/H.265 Encoder Integers */ + + bmdDeckLinkEncoderConfigH265TargetBitrate = 'htbr', + + /* DNxHR/DNxHD Compression ID */ + + bmdDeckLinkEncoderConfigDNxHRCompressionID = 'dcid', + + /* DNxHR/DNxHD Level */ + + bmdDeckLinkEncoderConfigDNxHRLevel = 'dlev', + + /* Encoded Sample Decriptions */ + + bmdDeckLinkEncoderConfigMPEG4SampleDescription = 'stsE', // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more + bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = 'esds' // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more +}; + +// Forward Declarations + +class IDeckLinkConfiguration; +class IDeckLinkEncoderConfiguration; + +/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ + +class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkEncoderConfiguration - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ + +class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0; + +protected: + virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h new file mode 100644 index 00000000000..2c989a06949 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h @@ -0,0 +1,60 @@ +/* -LICENSE-START- +** Copyright (c) 2014 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_2_H +#define BMD_DECKLINKAPICONFIGURATION_v10_2_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_2 = /* C679A35B-610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0}; + +// Forward Declarations + +class IDeckLinkConfiguration_v10_2; + +/* Interface IDeckLinkConfiguration_v10_2 - DeckLink Configuration interface */ + +class IDeckLinkConfiguration_v10_2 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_2 () {} // call Release method to drop reference count +}; + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h new file mode 100644 index 00000000000..21e02ee3539 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h @@ -0,0 +1,62 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_4_H +#define BMD_DECKLINKAPICONFIGURATION_v10_4_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_4 = /* 1E69FCF6-4203-4936-8076-2A9F4CFD50CB */ {0x1E,0x69,0xFC,0xF6,0x42,0x03,0x49,0x36,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB}; + +// +// Forward Declarations + +class IDeckLinkConfiguration_v10_4; + +/* Interface IDeckLinkConfiguration_v10_4 - DeckLink Configuration interface */ + +class IDeckLinkConfiguration_v10_4 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_4 () {} // call Release method to drop reference count +}; + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h new file mode 100644 index 00000000000..0808367d5b1 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h @@ -0,0 +1,60 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_5_H +#define BMD_DECKLINKAPICONFIGURATION_v10_5_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration_v10_5 = /* 67455668-0848-45DF-8D8E-350A77C9A028 */ {0x67,0x45,0x56,0x68,0x08,0x48,0x45,0xDF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28}; + +// Forward Declarations + +class IDeckLinkConfiguration_v10_5; + +/* Interface IDeckLinkEncoderConfiguration_v10_5 - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ + +class IDeckLinkEncoderConfiguration_v10_5 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT GetDecoderConfigurationInfo (/* out */ void *buffer, /* in */ long bufferSize, /* out */ long *returnedSize) = 0; + +protected: + virtual ~IDeckLinkEncoderConfiguration_v10_5 () {} // call Release method to drop reference count +}; + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_5_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h new file mode 100644 index 00000000000..e49a3ee3bb6 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h @@ -0,0 +1,62 @@ +/* -LICENSE-START- +** Copyright (c) 2017 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPICONFIGURATION_v10_9_H +#define BMD_DECKLINKAPICONFIGURATION_v10_9_H + +#include "DeckLinkAPIConfiguration.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_9 = /* CB71734A-FE37-4E8D-8E13-802133A1C3F2 */ {0xCB,0x71,0x73,0x4A,0xFE,0x37,0x4E,0x8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2}; + +// +// Forward Declarations + +class IDeckLinkConfiguration_v10_9; + +/* Interface IDeckLinkConfiguration_v10_9 - DeckLink Configuration interface */ + +class IDeckLinkConfiguration_v10_9 : public IUnknown +{ +public: + virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; + virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; + virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; + virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; + virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; + virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; + virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + +protected: + virtual ~IDeckLinkConfiguration_v10_9 () {} // call Release method to drop reference count +}; + + +#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h new file mode 100644 index 00000000000..6de333fda9e --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h @@ -0,0 +1,219 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIDECKCONTROL_H +#define BMD_DECKLINKAPIDECKCONTROL_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF}; +BMD_CONST REFIID IID_IDeckLinkDeckControl = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE}; + +/* Enum BMDDeckControlMode - DeckControl mode */ + +typedef uint32_t BMDDeckControlMode; +enum _BMDDeckControlMode { + bmdDeckControlNotOpened = 'ntop', + bmdDeckControlVTRControlMode = 'vtrc', + bmdDeckControlExportMode = 'expm', + bmdDeckControlCaptureMode = 'capm' +}; + +/* Enum BMDDeckControlEvent - DeckControl event */ + +typedef uint32_t BMDDeckControlEvent; +enum _BMDDeckControlEvent { + bmdDeckControlAbortedEvent = 'abte', // This event is triggered when a capture or edit-to-tape operation is aborted. + + /* Export-To-Tape events */ + + bmdDeckControlPrepareForExportEvent = 'pfee', // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point. + bmdDeckControlExportCompleteEvent = 'exce', // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. + + /* Capture events */ + + bmdDeckControlPrepareForCaptureEvent = 'pfce', // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid. + bmdDeckControlCaptureCompleteEvent = 'ccev' // This event is triggered a few frames after reaching the out-point. +}; + +/* Enum BMDDeckControlVTRControlState - VTR Control state */ + +typedef uint32_t BMDDeckControlVTRControlState; +enum _BMDDeckControlVTRControlState { + bmdDeckControlNotInVTRControlMode = 'nvcm', + bmdDeckControlVTRControlPlaying = 'vtrp', + bmdDeckControlVTRControlRecording = 'vtrr', + bmdDeckControlVTRControlStill = 'vtra', + bmdDeckControlVTRControlShuttleForward = 'vtsf', + bmdDeckControlVTRControlShuttleReverse = 'vtsr', + bmdDeckControlVTRControlJogForward = 'vtjf', + bmdDeckControlVTRControlJogReverse = 'vtjr', + bmdDeckControlVTRControlStopped = 'vtro' +}; + +/* Enum BMDDeckControlStatusFlags - Deck Control status flags */ + +typedef uint32_t BMDDeckControlStatusFlags; +enum _BMDDeckControlStatusFlags { + bmdDeckControlStatusDeckConnected = 1 << 0, + bmdDeckControlStatusRemoteMode = 1 << 1, + bmdDeckControlStatusRecordInhibited = 1 << 2, + bmdDeckControlStatusCassetteOut = 1 << 3 +}; + +/* Enum BMDDeckControlExportModeOpsFlags - Export mode flags */ + +typedef uint32_t BMDDeckControlExportModeOpsFlags; +enum _BMDDeckControlExportModeOpsFlags { + bmdDeckControlExportModeInsertVideo = 1 << 0, + bmdDeckControlExportModeInsertAudio1 = 1 << 1, + bmdDeckControlExportModeInsertAudio2 = 1 << 2, + bmdDeckControlExportModeInsertAudio3 = 1 << 3, + bmdDeckControlExportModeInsertAudio4 = 1 << 4, + bmdDeckControlExportModeInsertAudio5 = 1 << 5, + bmdDeckControlExportModeInsertAudio6 = 1 << 6, + bmdDeckControlExportModeInsertAudio7 = 1 << 7, + bmdDeckControlExportModeInsertAudio8 = 1 << 8, + bmdDeckControlExportModeInsertAudio9 = 1 << 9, + bmdDeckControlExportModeInsertAudio10 = 1 << 10, + bmdDeckControlExportModeInsertAudio11 = 1 << 11, + bmdDeckControlExportModeInsertAudio12 = 1 << 12, + bmdDeckControlExportModeInsertTimeCode = 1 << 13, + bmdDeckControlExportModeInsertAssemble = 1 << 14, + bmdDeckControlExportModeInsertPreview = 1 << 15, + bmdDeckControlUseManualExport = 1 << 16 +}; + +/* Enum BMDDeckControlError - Deck Control error */ + +typedef uint32_t BMDDeckControlError; +enum _BMDDeckControlError { + bmdDeckControlNoError = 'noer', + bmdDeckControlModeError = 'moer', + bmdDeckControlMissedInPointError = 'mier', + bmdDeckControlDeckTimeoutError = 'dter', + bmdDeckControlCommandFailedError = 'cfer', + bmdDeckControlDeviceAlreadyOpenedError = 'dalo', + bmdDeckControlFailedToOpenDeviceError = 'fder', + bmdDeckControlInLocalModeError = 'lmer', + bmdDeckControlEndOfTapeError = 'eter', + bmdDeckControlUserAbortError = 'uaer', + bmdDeckControlNoTapeInDeckError = 'nter', + bmdDeckControlNoVideoFromCardError = 'nvfc', + bmdDeckControlNoCommunicationError = 'ncom', + bmdDeckControlBufferTooSmallError = 'btsm', + bmdDeckControlBadChecksumError = 'chks', + bmdDeckControlUnknownError = 'uner' +}; + +// Forward Declarations + +class IDeckLinkDeckControlStatusCallback; +class IDeckLinkDeckControl; + +/* Interface IDeckLinkDeckControlStatusCallback - Deck control state change callback. */ + +class BMD_PUBLIC IDeckLinkDeckControlStatusCallback : public IUnknown +{ +public: + virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; + virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState newState, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; + +protected: + virtual ~IDeckLinkDeckControlStatusCallback () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeckControl - Deck Control main interface */ + +class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ CFStringRef *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h new file mode 100644 index 00000000000..d63960d0592 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h @@ -0,0 +1,75 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIDISCOVERY_H +#define BMD_DECKLINKAPIDISCOVERY_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLink = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91}; + +// Forward Declarations + +class IDeckLink; + +/* Interface IDeckLink - represents a DeckLink device */ + +class BMD_PUBLIC IDeckLink : public IUnknown +{ +public: + virtual HRESULT GetModelName (/* out */ CFStringRef *modelName) = 0; + virtual HRESULT GetDisplayName (/* out */ CFStringRef *displayName) = 0; + +protected: + virtual ~IDeckLink () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp new file mode 100644 index 00000000000..7a6fd4c6eec --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp @@ -0,0 +1,193 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPIDispatch.cpp */ + +#include "DeckLinkAPI.h" +#include + +#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 + #error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h +#endif + +#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" + + +typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); +typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gDeckLinkAPIBundleRef = NULL; +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; +static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc= NULL; + + +void InitDeckLinkAPI (void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gDeckLinkAPIBundleRef != NULL) + { + gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0003")); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); + gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); + gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkDiscoveryInstance_0002")); + } + CFRelease(bundleURL); + } +} + +bool IsDeckLinkAPIPresent (void) +{ + // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller + if (gDeckLinkAPIBundleRef != NULL) + return true; + + return false; +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview (void* parentView) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateCocoaPreviewFunc == NULL) + return NULL; + + return gCreateCocoaPreviewFunc(parentView); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + + return gCreateVideoConversionFunc(); +} + +IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateDeckLinkDiscoveryFunc == NULL) + return NULL; + + return gCreateDeckLinkDiscoveryFunc(); +} + + +#define kBMDStreamingAPI_BundlePath "/Library/Application Support/Blackmagic Design/Streaming/BMDStreamingAPI.bundle" + +typedef IBMDStreamingDiscovery* (*CreateDiscoveryFunc)(void); +typedef IBMDStreamingH264NALParser* (*CreateNALParserFunc)(void); + +static pthread_once_t gBMDStreamingOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gBMDStreamingAPIBundleRef = NULL; +static CreateDiscoveryFunc gCreateDiscoveryFunc = NULL; +static CreateNALParserFunc gCreateNALParserFunc = NULL; + +void InitBMDStreamingAPI(void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDStreamingAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gBMDStreamingAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gBMDStreamingAPIBundleRef != NULL) + { + gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingDiscoveryInstance_0002")); + gCreateNALParserFunc = (CreateNALParserFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingH264NALParser_0001")); + } + + CFRelease(bundleURL); + } +} + +IBMDStreamingDiscovery* CreateBMDStreamingDiscoveryInstance() +{ + pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); + + if (gCreateDiscoveryFunc == NULL) + return NULL; + + return gCreateDiscoveryFunc(); +} + +IBMDStreamingH264NALParser* CreateBMDStreamingH264NALParser() +{ + pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); + + if (gCreateNALParserFunc == NULL) + return NULL; + + return gCreateNALParserFunc(); +} diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp new file mode 100644 index 00000000000..6449a08e0a6 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp @@ -0,0 +1,193 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPIDispatch.cpp */ + +#include "DeckLinkAPI.h" +#include + +#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 +#error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h +#endif + +#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" + + +typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); +typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gDeckLinkAPIBundleRef = NULL; +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; +static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; + + +void InitDeckLinkAPI(void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gDeckLinkAPIBundleRef != NULL) + { + gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0002")); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); + gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); + gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkDiscoveryInstance_0001")); + } + CFRelease(bundleURL); + } +} + +bool IsDeckLinkAPIPresent(void) +{ + // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller + if (gDeckLinkAPIBundleRef != NULL) + return true; + + return false; +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview(void* parentView) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateCocoaPreviewFunc == NULL) + return NULL; + + return gCreateCocoaPreviewFunc(parentView); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + + return gCreateVideoConversionFunc(); +} + +IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateDeckLinkDiscoveryFunc == NULL) + return NULL; + + return gCreateDeckLinkDiscoveryFunc(); +} + + +#define kBMDStreamingAPI_BundlePath "/Library/Application Support/Blackmagic Design/Streaming/BMDStreamingAPI.bundle" + +typedef IBMDStreamingDiscovery* (*CreateDiscoveryFunc)(void); +typedef IBMDStreamingH264NALParser* (*CreateNALParserFunc)(void); + +static pthread_once_t gBMDStreamingOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gBMDStreamingAPIBundleRef = NULL; +static CreateDiscoveryFunc gCreateDiscoveryFunc = NULL; +static CreateNALParserFunc gCreateNALParserFunc = NULL; + +void InitBMDStreamingAPI(void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDStreamingAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gBMDStreamingAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gBMDStreamingAPIBundleRef != NULL) + { + gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingDiscoveryInstance_0001")); + gCreateNALParserFunc = (CreateNALParserFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingH264NALParser_0001")); + } + + CFRelease(bundleURL); + } +} + +IBMDStreamingDiscovery* CreateBMDStreamingDiscoveryInstance() +{ + pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); + + if (gCreateDiscoveryFunc == NULL) + return NULL; + + return gCreateDiscoveryFunc(); +} + +IBMDStreamingH264NALParser* CreateBMDStreamingH264NALParser() +{ + pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); + + if (gCreateNALParserFunc == NULL) + return NULL; + + return gCreateNALParserFunc(); +} diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp new file mode 100644 index 00000000000..4b11bca412c --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp @@ -0,0 +1,105 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPIDispatch_v7_6.cpp */ + +#include "DeckLinkAPI_v7_6.h" +#include + +#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" + +typedef IDeckLinkIterator* (*CreateIteratorFunc_v7_6)(void); +typedef IDeckLinkGLScreenPreviewHelper_v7_6* (*CreateOpenGLScreenPreviewHelperFunc_v7_6)(void); +typedef IDeckLinkCocoaScreenPreviewCallback_v7_6* (*CreateCocoaScreenPreviewFunc_v7_6)(void*); +typedef IDeckLinkVideoConversion_v7_6* (*CreateVideoConversionInstanceFunc_v7_6)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gBundleRef = NULL; +static CreateIteratorFunc_v7_6 gCreateIteratorFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc_v7_6 gCreateOpenGLPreviewFunc = NULL; +static CreateCocoaScreenPreviewFunc_v7_6 gCreateCocoaPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc_v7_6 gCreateVideoConversionFunc = NULL; + + +void InitDeckLinkAPI_v7_6 (void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gBundleRef != NULL) + { + gCreateIteratorFunc = (CreateIteratorFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateDeckLinkIteratorInstance")); + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper")); + gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateCocoaScreenPreview")); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateVideoConversionInstance")); + } + CFRelease(bundleURL); + } +} + +IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateIteratorFunc == NULL) + return NULL; + + return gCreateIteratorFunc(); +} + +IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkCocoaScreenPreviewCallback_v7_6* CreateCocoaScreenPreview_v7_6 (void* parentView) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateCocoaPreviewFunc == NULL) + return NULL; + + return gCreateCocoaPreviewFunc(parentView); +} + +IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + + return gCreateVideoConversionFunc(); +} + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp new file mode 100644 index 00000000000..cd6857aa9bc --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp @@ -0,0 +1,131 @@ +/* -LICENSE-START- +** Copyright (c) 2011 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPIDispatch.cpp */ + +#include "DeckLinkAPI_v8_0.h" +#include + +#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 + #error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h +#endif + +#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" + +typedef IDeckLinkIterator_v8_0* (*CreateIteratorFunc)(void); +typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); +typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); +typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); +typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); + +static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; +static CFBundleRef gDeckLinkAPIBundleRef = NULL; +static CreateIteratorFunc gCreateIteratorFunc = NULL; +static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; +static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; +static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; +static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; + + +void InitDeckLinkAPI (void) +{ + CFURLRef bundleURL; + + bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); + if (bundleURL != NULL) + { + gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); + if (gDeckLinkAPIBundleRef != NULL) + { + gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0001")); + gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); + gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); + gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); + gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); + } + CFRelease(bundleURL); + } +} + +bool IsDeckLinkAPIPresent (void) +{ + // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller + if (gDeckLinkAPIBundleRef != NULL) + return true; + + return false; +} + +IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateIteratorFunc == NULL) + return NULL; + + return gCreateIteratorFunc(); +} + +IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateAPIInformationFunc == NULL) + return NULL; + + return gCreateAPIInformationFunc(); +} + +IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateOpenGLPreviewFunc == NULL) + return NULL; + + return gCreateOpenGLPreviewFunc(); +} + +IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview (void* parentView) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateCocoaPreviewFunc == NULL) + return NULL; + + return gCreateCocoaPreviewFunc(parentView); +} + +IDeckLinkVideoConversion* CreateVideoConversionInstance (void) +{ + pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); + + if (gCreateVideoConversionFunc == NULL) + return NULL; + + return gCreateVideoConversionFunc(); +} + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h new file mode 100644 index 00000000000..d3bba8eb75f --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h @@ -0,0 +1,200 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPIMODES_H +#define BMD_DECKLINKAPIMODES_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}; +BMD_CONST REFIID IID_IDeckLinkDisplayMode = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}; + +/* Enum BMDDisplayMode - Video display modes */ + +typedef uint32_t BMDDisplayMode; +enum _BMDDisplayMode { + + /* SD Modes */ + + bmdModeNTSC = 'ntsc', + bmdModeNTSC2398 = 'nt23', // 3:2 pulldown + bmdModePAL = 'pal ', + bmdModeNTSCp = 'ntsp', + bmdModePALp = 'palp', + + /* HD 1080 Modes */ + + bmdModeHD1080p2398 = '23ps', + bmdModeHD1080p24 = '24ps', + bmdModeHD1080p25 = 'Hp25', + bmdModeHD1080p2997 = 'Hp29', + bmdModeHD1080p30 = 'Hp30', + bmdModeHD1080i50 = 'Hi50', + bmdModeHD1080i5994 = 'Hi59', + bmdModeHD1080i6000 = 'Hi60', // N.B. This _really_ is 60.00 Hz. + bmdModeHD1080p50 = 'Hp50', + bmdModeHD1080p5994 = 'Hp59', + bmdModeHD1080p6000 = 'Hp60', // N.B. This _really_ is 60.00 Hz. + + /* HD 720 Modes */ + + bmdModeHD720p50 = 'hp50', + bmdModeHD720p5994 = 'hp59', + bmdModeHD720p60 = 'hp60', + + /* 2k Modes */ + + bmdMode2k2398 = '2k23', + bmdMode2k24 = '2k24', + bmdMode2k25 = '2k25', + + /* DCI Modes (output only) */ + + bmdMode2kDCI2398 = '2d23', + bmdMode2kDCI24 = '2d24', + bmdMode2kDCI25 = '2d25', + + /* 4k Modes */ + + bmdMode4K2160p2398 = '4k23', + bmdMode4K2160p24 = '4k24', + bmdMode4K2160p25 = '4k25', + bmdMode4K2160p2997 = '4k29', + bmdMode4K2160p30 = '4k30', + bmdMode4K2160p50 = '4k50', + bmdMode4K2160p5994 = '4k59', + bmdMode4K2160p60 = '4k60', + + /* DCI Modes (output only) */ + + bmdMode4kDCI2398 = '4d23', + bmdMode4kDCI24 = '4d24', + bmdMode4kDCI25 = '4d25', + + /* Special Modes */ + + bmdModeUnknown = 'iunk' +}; + +/* Enum BMDFieldDominance - Video field dominance */ + +typedef uint32_t BMDFieldDominance; +enum _BMDFieldDominance { + bmdUnknownFieldDominance = 0, + bmdLowerFieldFirst = 'lowr', + bmdUpperFieldFirst = 'uppr', + bmdProgressiveFrame = 'prog', + bmdProgressiveSegmentedFrame = 'psf ' +}; + +/* Enum BMDPixelFormat - Video pixel formats supported for output/input */ + +typedef uint32_t BMDPixelFormat; +enum _BMDPixelFormat { + bmdFormat8BitYUV = '2vuy', + bmdFormat10BitYUV = 'v210', + bmdFormat8BitARGB = 32, + bmdFormat8BitBGRA = 'BGRA', + bmdFormat10BitRGB = 'r210', // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 + bmdFormat12BitRGB = 'R12B', // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component + bmdFormat12BitRGBLE = 'R12L', // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component + bmdFormat10BitRGBXLE = 'R10l', // Little-endian 10-bit RGB with SMPTE video levels (64-940) + bmdFormat10BitRGBX = 'R10b', // Big-endian 10-bit RGB with SMPTE video levels (64-940) + bmdFormatH265 = 'hev1', // High Efficiency Video Coding (HEVC/h.265) + + /* AVID DNxHR */ + + bmdFormatDNxHR = 'AVdh' +}; + +/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */ + +typedef uint32_t BMDDisplayModeFlags; +enum _BMDDisplayModeFlags { + bmdDisplayModeSupports3D = 1 << 0, + bmdDisplayModeColorspaceRec601 = 1 << 1, + bmdDisplayModeColorspaceRec709 = 1 << 2 +}; + +// Forward Declarations + +class IDeckLinkDisplayModeIterator; +class IDeckLinkDisplayMode; + +/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ + +class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; + +protected: + virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count +}; + +/* Interface IDeckLinkDisplayMode - represents a display mode */ + +class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown +{ +public: + virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; + virtual BMDFieldDominance GetFieldDominance (void) = 0; + virtual BMDDisplayModeFlags GetFlags (void) = 0; + +protected: + virtual ~IDeckLinkDisplayMode () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPIMODES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h new file mode 100644 index 00000000000..b5f16bb372f --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h @@ -0,0 +1,379 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPISTREAMING_H +#define BMD_DECKLINKAPISTREAMING_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + + +// Interface ID Declarations + +BMD_CONST REFIID IID_IBMDStreamingDeviceNotificationCallback = /* F9531D64-3305-4B29-A387-7F74BB0D0E84 */ {0xF9,0x53,0x1D,0x64,0x33,0x05,0x4B,0x29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84}; +BMD_CONST REFIID IID_IBMDStreamingH264InputCallback = /* 823C475F-55AE-46F9-890C-537CC5CEDCCA */ {0x82,0x3C,0x47,0x5F,0x55,0xAE,0x46,0xF9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA}; +BMD_CONST REFIID IID_IBMDStreamingDiscovery = /* 2C837444-F989-4D87-901A-47C8A36D096D */ {0x2C,0x83,0x74,0x44,0xF9,0x89,0x4D,0x87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D}; +BMD_CONST REFIID IID_IBMDStreamingVideoEncodingMode = /* 1AB8035B-CD13-458D-B6DF-5E8F7C2141D9 */ {0x1A,0xB8,0x03,0x5B,0xCD,0x13,0x45,0x8D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9}; +BMD_CONST REFIID IID_IBMDStreamingMutableVideoEncodingMode = /* 19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D */ {0x19,0xBF,0x7D,0x90,0x1E,0x0A,0x40,0x0D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D}; +BMD_CONST REFIID IID_IBMDStreamingVideoEncodingModePresetIterator = /* 7AC731A3-C950-4AD0-804A-8377AA51C6C4 */ {0x7A,0xC7,0x31,0xA3,0xC9,0x50,0x4A,0xD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4}; +BMD_CONST REFIID IID_IBMDStreamingDeviceInput = /* 24B6B6EC-1727-44BB-9818-34FF086ACF98 */ {0x24,0xB6,0xB6,0xEC,0x17,0x27,0x44,0xBB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98}; +BMD_CONST REFIID IID_IBMDStreamingH264NALPacket = /* E260E955-14BE-4395-9775-9F02CC0A9D89 */ {0xE2,0x60,0xE9,0x55,0x14,0xBE,0x43,0x95,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89}; +BMD_CONST REFIID IID_IBMDStreamingAudioPacket = /* D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19 */ {0xD9,0xEB,0x59,0x02,0x1A,0xD2,0x43,0xF4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19}; +BMD_CONST REFIID IID_IBMDStreamingMPEG2TSPacket = /* 91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C */ {0x91,0x81,0x0D,0x1C,0x4F,0xB3,0x4A,0xAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C}; +BMD_CONST REFIID IID_IBMDStreamingH264NALParser = /* 5867F18C-5BFA-4CCC-B2A7-9DFD140417D2 */ {0x58,0x67,0xF1,0x8C,0x5B,0xFA,0x4C,0xCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2}; + +/* Enum BMDStreamingDeviceMode - Device modes */ + +typedef uint32_t BMDStreamingDeviceMode; +enum _BMDStreamingDeviceMode { + bmdStreamingDeviceIdle = 'idle', + bmdStreamingDeviceEncoding = 'enco', + bmdStreamingDeviceStopping = 'stop', + bmdStreamingDeviceUnknown = 'munk' +}; + +/* Enum BMDStreamingEncodingFrameRate - Encoded frame rates */ + +typedef uint32_t BMDStreamingEncodingFrameRate; +enum _BMDStreamingEncodingFrameRate { + + /* Interlaced rates */ + + bmdStreamingEncodedFrameRate50i = 'e50i', + bmdStreamingEncodedFrameRate5994i = 'e59i', + bmdStreamingEncodedFrameRate60i = 'e60i', + + /* Progressive rates */ + + bmdStreamingEncodedFrameRate2398p = 'e23p', + bmdStreamingEncodedFrameRate24p = 'e24p', + bmdStreamingEncodedFrameRate25p = 'e25p', + bmdStreamingEncodedFrameRate2997p = 'e29p', + bmdStreamingEncodedFrameRate30p = 'e30p', + bmdStreamingEncodedFrameRate50p = 'e50p', + bmdStreamingEncodedFrameRate5994p = 'e59p', + bmdStreamingEncodedFrameRate60p = 'e60p' +}; + +/* Enum BMDStreamingEncodingSupport - Output encoding mode supported flag */ + +typedef uint32_t BMDStreamingEncodingSupport; +enum _BMDStreamingEncodingSupport { + bmdStreamingEncodingModeNotSupported = 0, + bmdStreamingEncodingModeSupported, + bmdStreamingEncodingModeSupportedWithChanges +}; + +/* Enum BMDStreamingVideoCodec - Video codecs */ + +typedef uint32_t BMDStreamingVideoCodec; +enum _BMDStreamingVideoCodec { + bmdStreamingVideoCodecH264 = 'H264' +}; + +/* Enum BMDStreamingH264Profile - H264 encoding profile */ + +typedef uint32_t BMDStreamingH264Profile; +enum _BMDStreamingH264Profile { + bmdStreamingH264ProfileHigh = 'high', + bmdStreamingH264ProfileMain = 'main', + bmdStreamingH264ProfileBaseline = 'base' +}; + +/* Enum BMDStreamingH264Level - H264 encoding level */ + +typedef uint32_t BMDStreamingH264Level; +enum _BMDStreamingH264Level { + bmdStreamingH264Level12 = 'lv12', + bmdStreamingH264Level13 = 'lv13', + bmdStreamingH264Level2 = 'lv2 ', + bmdStreamingH264Level21 = 'lv21', + bmdStreamingH264Level22 = 'lv22', + bmdStreamingH264Level3 = 'lv3 ', + bmdStreamingH264Level31 = 'lv31', + bmdStreamingH264Level32 = 'lv32', + bmdStreamingH264Level4 = 'lv4 ', + bmdStreamingH264Level41 = 'lv41', + bmdStreamingH264Level42 = 'lv42' +}; + +/* Enum BMDStreamingH264EntropyCoding - H264 entropy coding */ + +typedef uint32_t BMDStreamingH264EntropyCoding; +enum _BMDStreamingH264EntropyCoding { + bmdStreamingH264EntropyCodingCAVLC = 'EVLC', + bmdStreamingH264EntropyCodingCABAC = 'EBAC' +}; + +/* Enum BMDStreamingAudioCodec - Audio codecs */ + +typedef uint32_t BMDStreamingAudioCodec; +enum _BMDStreamingAudioCodec { + bmdStreamingAudioCodecAAC = 'AAC ' +}; + +/* Enum BMDStreamingEncodingModePropertyID - Encoding mode properties */ + +typedef uint32_t BMDStreamingEncodingModePropertyID; +enum _BMDStreamingEncodingModePropertyID { + + /* Integers, Video Properties */ + + bmdStreamingEncodingPropertyVideoFrameRate = 'vfrt', // Uses values of type BMDStreamingEncodingFrameRate + bmdStreamingEncodingPropertyVideoBitRateKbps = 'vbrt', + + /* Integers, H264 Properties */ + + bmdStreamingEncodingPropertyH264Profile = 'hprf', + bmdStreamingEncodingPropertyH264Level = 'hlvl', + bmdStreamingEncodingPropertyH264EntropyCoding = 'hent', + + /* Flags, H264 Properties */ + + bmdStreamingEncodingPropertyH264HasBFrames = 'hBfr', + + /* Integers, Audio Properties */ + + bmdStreamingEncodingPropertyAudioCodec = 'acdc', + bmdStreamingEncodingPropertyAudioSampleRate = 'asrt', + bmdStreamingEncodingPropertyAudioChannelCount = 'achc', + bmdStreamingEncodingPropertyAudioBitRateKbps = 'abrt' +}; + +// Forward Declarations + +class IBMDStreamingDeviceNotificationCallback; +class IBMDStreamingH264InputCallback; +class IBMDStreamingDiscovery; +class IBMDStreamingVideoEncodingMode; +class IBMDStreamingMutableVideoEncodingMode; +class IBMDStreamingVideoEncodingModePresetIterator; +class IBMDStreamingDeviceInput; +class IBMDStreamingH264NALPacket; +class IBMDStreamingAudioPacket; +class IBMDStreamingMPEG2TSPacket; +class IBMDStreamingH264NALParser; + +/* Interface IBMDStreamingDeviceNotificationCallback - Device notification callbacks. */ + +class BMD_PUBLIC IBMDStreamingDeviceNotificationCallback : public IUnknown +{ +public: + virtual HRESULT StreamingDeviceArrived (/* in */ IDeckLink* device) = 0; + virtual HRESULT StreamingDeviceRemoved (/* in */ IDeckLink* device) = 0; + virtual HRESULT StreamingDeviceModeChanged (/* in */ IDeckLink* device, /* in */ BMDStreamingDeviceMode mode) = 0; + +protected: + virtual ~IBMDStreamingDeviceNotificationCallback () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingH264InputCallback - H264 input callbacks. */ + +class BMD_PUBLIC IBMDStreamingH264InputCallback : public IUnknown +{ +public: + virtual HRESULT H264NALPacketArrived (/* in */ IBMDStreamingH264NALPacket* nalPacket) = 0; + virtual HRESULT H264AudioPacketArrived (/* in */ IBMDStreamingAudioPacket* audioPacket) = 0; + virtual HRESULT MPEG2TSPacketArrived (/* in */ IBMDStreamingMPEG2TSPacket* tsPacket) = 0; + virtual HRESULT H264VideoInputConnectorScanningChanged (void) = 0; + virtual HRESULT H264VideoInputConnectorChanged (void) = 0; + virtual HRESULT H264VideoInputModeChanged (void) = 0; + +protected: + virtual ~IBMDStreamingH264InputCallback () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingDiscovery - Installs device notifications */ + +class BMD_PUBLIC IBMDStreamingDiscovery : public IUnknown +{ +public: + virtual HRESULT InstallDeviceNotifications (/* in */ IBMDStreamingDeviceNotificationCallback* theCallback) = 0; + virtual HRESULT UninstallDeviceNotifications (void) = 0; + +protected: + virtual ~IBMDStreamingDiscovery () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingVideoEncodingMode - Represents an encoded video mode. */ + +class BMD_PUBLIC IBMDStreamingVideoEncodingMode : public IUnknown +{ +public: + virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; + virtual unsigned int GetPresetID (void) = 0; + virtual unsigned int GetSourcePositionX (void) = 0; + virtual unsigned int GetSourcePositionY (void) = 0; + virtual unsigned int GetSourceWidth (void) = 0; + virtual unsigned int GetSourceHeight (void) = 0; + virtual unsigned int GetDestWidth (void) = 0; + virtual unsigned int GetDestHeight (void) = 0; + virtual HRESULT GetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ bool* value) = 0; + virtual HRESULT GetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ int64_t* value) = 0; + virtual HRESULT GetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ double* value) = 0; + virtual HRESULT GetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ CFStringRef *value) = 0; + virtual HRESULT CreateMutableVideoEncodingMode (/* out */ IBMDStreamingMutableVideoEncodingMode** newEncodingMode) = 0; // Creates a mutable copy of the encoding mode + +protected: + virtual ~IBMDStreamingVideoEncodingMode () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingMutableVideoEncodingMode - Represents a mutable encoded video mode. */ + +class BMD_PUBLIC IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode +{ +public: + virtual HRESULT SetSourceRect (/* in */ uint32_t posX, /* in */ uint32_t posY, /* in */ uint32_t width, /* in */ uint32_t height) = 0; + virtual HRESULT SetDestSize (/* in */ uint32_t width, /* in */ uint32_t height) = 0; + virtual HRESULT SetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ bool value) = 0; + virtual HRESULT SetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ int64_t value) = 0; + virtual HRESULT SetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ double value) = 0; + virtual HRESULT SetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ CFStringRef value) = 0; + +protected: + virtual ~IBMDStreamingMutableVideoEncodingMode () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingVideoEncodingModePresetIterator - Enumerates encoding mode presets */ + +class BMD_PUBLIC IBMDStreamingVideoEncodingModePresetIterator : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IBMDStreamingVideoEncodingMode** videoEncodingMode) = 0; + +protected: + virtual ~IBMDStreamingVideoEncodingModePresetIterator () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingDeviceInput - Created by QueryInterface from IDeckLink */ + +class BMD_PUBLIC IBMDStreamingDeviceInput : public IUnknown +{ +public: + + /* Input modes */ + + virtual HRESULT DoesSupportVideoInputMode (/* in */ BMDDisplayMode inputMode, /* out */ bool* result) = 0; + virtual HRESULT GetVideoInputModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0; + virtual HRESULT SetVideoInputMode (/* in */ BMDDisplayMode inputMode) = 0; + virtual HRESULT GetCurrentDetectedVideoInputMode (/* out */ BMDDisplayMode* detectedMode) = 0; + + /* Capture modes */ + + virtual HRESULT GetVideoEncodingMode (/* out */ IBMDStreamingVideoEncodingMode** encodingMode) = 0; + virtual HRESULT GetVideoEncodingModePresetIterator (/* in */ BMDDisplayMode inputMode, /* out */ IBMDStreamingVideoEncodingModePresetIterator** iterator) = 0; + virtual HRESULT DoesSupportVideoEncodingMode (/* in */ BMDDisplayMode inputMode, /* in */ IBMDStreamingVideoEncodingMode* encodingMode, /* out */ BMDStreamingEncodingSupport* result, /* out */ IBMDStreamingVideoEncodingMode** changedEncodingMode) = 0; + virtual HRESULT SetVideoEncodingMode (/* in */ IBMDStreamingVideoEncodingMode* encodingMode) = 0; + + /* Input control */ + + virtual HRESULT StartCapture (void) = 0; + virtual HRESULT StopCapture (void) = 0; + virtual HRESULT SetCallback (/* in */ IUnknown* theCallback) = 0; + +protected: + virtual ~IBMDStreamingDeviceInput () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingH264NALPacket - Represent an H.264 NAL packet */ + +class BMD_PUBLIC IBMDStreamingH264NALPacket : public IUnknown +{ +public: + virtual long GetPayloadSize (void) = 0; + virtual HRESULT GetBytes (/* out */ void** buffer) = 0; + virtual HRESULT GetBytesWithSizePrefix (/* out */ void** buffer) = 0; // Contains a 32-bit unsigned big endian size prefix + virtual HRESULT GetDisplayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* displayTime) = 0; + virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated + +protected: + virtual ~IBMDStreamingH264NALPacket () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingAudioPacket - Represents a chunk of audio data */ + +class BMD_PUBLIC IBMDStreamingAudioPacket : public IUnknown +{ +public: + virtual BMDStreamingAudioCodec GetCodec (void) = 0; + virtual long GetPayloadSize (void) = 0; + virtual HRESULT GetBytes (/* out */ void** buffer) = 0; + virtual HRESULT GetPlayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* playTime) = 0; + virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated + +protected: + virtual ~IBMDStreamingAudioPacket () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingMPEG2TSPacket - Represent an MPEG2 Transport Stream packet */ + +class BMD_PUBLIC IBMDStreamingMPEG2TSPacket : public IUnknown +{ +public: + virtual long GetPayloadSize (void) = 0; + virtual HRESULT GetBytes (/* out */ void** buffer) = 0; + +protected: + virtual ~IBMDStreamingMPEG2TSPacket () {} // call Release method to drop reference count +}; + +/* Interface IBMDStreamingH264NALParser - For basic NAL parsing */ + +class BMD_PUBLIC IBMDStreamingH264NALParser : public IUnknown +{ +public: + virtual HRESULT IsNALSequenceParameterSet (/* in */ IBMDStreamingH264NALPacket* nal) = 0; + virtual HRESULT IsNALPictureParameterSet (/* in */ IBMDStreamingH264NALPacket* nal) = 0; + virtual HRESULT GetProfileAndLevelFromSPS (/* in */ IBMDStreamingH264NALPacket* nal, /* out */ uint32_t* profileIdc, /* out */ uint32_t* profileCompatability, /* out */ uint32_t* levelIdc) = 0; + +protected: + virtual ~IBMDStreamingH264NALParser () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + IBMDStreamingDiscovery* BMD_PUBLIC CreateBMDStreamingDiscoveryInstance (void); + IBMDStreamingH264NALParser* BMD_PUBLIC CreateBMDStreamingH264NALParser (void); + +} + + +#endif /* defined(BMD_DECKLINKAPISTREAMING_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h new file mode 100644 index 00000000000..9739cf8cbc6 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h @@ -0,0 +1,125 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPITYPES_H +#define BMD_DECKLINKAPITYPES_H + + +#ifndef BMD_CONST + #if defined(_MSC_VER) + #define BMD_CONST __declspec(selectany) static const + #else + #define BMD_CONST static const + #endif +#endif + +#ifndef BMD_PUBLIC + #define BMD_PUBLIC +#endif + +// Type Declarations + +typedef int64_t BMDTimeValue; +typedef int64_t BMDTimeScale; +typedef uint32_t BMDTimecodeBCD; +typedef uint32_t BMDTimecodeUserBits; + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkTimecode = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40}; + +/* Enum BMDTimecodeFlags - Timecode flags */ + +typedef uint32_t BMDTimecodeFlags; +enum _BMDTimecodeFlags { + bmdTimecodeFlagDefault = 0, + bmdTimecodeIsDropFrame = 1 << 0, + bmdTimecodeFieldMark = 1 << 1, + bmdTimecodeColorFrame = 1 << 2 +}; + +/* Enum BMDVideoConnection - Video connection types */ + +typedef uint32_t BMDVideoConnection; +enum _BMDVideoConnection { + bmdVideoConnectionSDI = 1 << 0, + bmdVideoConnectionHDMI = 1 << 1, + bmdVideoConnectionOpticalSDI = 1 << 2, + bmdVideoConnectionComponent = 1 << 3, + bmdVideoConnectionComposite = 1 << 4, + bmdVideoConnectionSVideo = 1 << 5 +}; + +/* Enum BMDAudioConnection - Audio connection types */ + +typedef uint32_t BMDAudioConnection; +enum _BMDAudioConnection { + bmdAudioConnectionEmbedded = 1 << 0, + bmdAudioConnectionAESEBU = 1 << 1, + bmdAudioConnectionAnalog = 1 << 2, + bmdAudioConnectionAnalogXLR = 1 << 3, + bmdAudioConnectionAnalogRCA = 1 << 4, + bmdAudioConnectionMicrophone = 1 << 5, + bmdAudioConnectionHeadphones = 1 << 6 +}; + +/* Enum BMDDeckControlConnection - Deck control connections */ + +typedef uint32_t BMDDeckControlConnection; +enum _BMDDeckControlConnection { + bmdDeckControlConnectionRS422Remote1 = 1 << 0, + bmdDeckControlConnectionRS422Remote2 = 1 << 1 +}; + +// Forward Declarations + +class IDeckLinkTimecode; + +/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ + +class BMD_PUBLIC IDeckLinkTimecode : public IUnknown +{ +public: + virtual BMDTimecodeBCD GetBCD (void) = 0; + virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; + virtual HRESULT GetString (/* out */ CFStringRef *timecode) = 0; + virtual BMDTimecodeFlags GetFlags (void) = 0; + virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0; + +protected: + virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count +}; + +/* Functions */ + +extern "C" { + + +} + + +#endif /* defined(BMD_DECKLINKAPITYPES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h new file mode 100644 index 00000000000..a2565e04fc2 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h @@ -0,0 +1,37 @@ +/* -LICENSE-START- + * ** Copyright (c) 2014 Blackmagic Design + * ** + * ** Permission is hereby granted, free of charge, to any person or organization + * ** obtaining a copy of the software and accompanying documentation covered by + * ** this license (the "Software") to use, reproduce, display, distribute, + * ** execute, and transmit the Software, and to prepare derivative works of the + * ** Software, and to permit third-parties to whom the Software is furnished to + * ** do so, all subject to the following: + * ** + * ** The copyright notices in the Software and this entire statement, including + * ** the above license grant, this restriction and the following disclaimer, + * ** must be included in all copies of the Software, in whole or in part, and + * ** all derivative works of the Software, unless such copies or derivative + * ** works are solely in the form of machine-executable object code generated by + * ** a source language processor. + * ** + * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * ** DEALINGS IN THE SOFTWARE. + * ** -LICENSE-END- + * */ + +/* DeckLinkAPIVersion.h */ + +#ifndef __DeckLink_API_Version_h__ +#define __DeckLink_API_Version_h__ + +#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 +#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" + +#endif // __DeckLink_API_Version_h__ + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h new file mode 100644 index 00000000000..e5c95e476cd --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h @@ -0,0 +1,55 @@ +/* -LICENSE-START- +** Copyright (c) 2014 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_2_H +#define BMD_DECKLINKAPI_v10_2_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_2; +enum _BMDDeckLinkConfigurationID_v10_2 { + /* Video output flags */ + + bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = '3gbs', +}; + +/* Enum BMDAudioConnection_v10_2 - Audio connection types */ + +typedef uint32_t BMDAudioConnection_v10_2; +enum _BMDAudioConnection_v10_2 { + bmdAudioConnectionEmbedded_v10_2 = 'embd', + bmdAudioConnectionAESEBU_v10_2 = 'aes ', + bmdAudioConnectionAnalog_v10_2 = 'anlg', + bmdAudioConnectionAnalogXLR_v10_2 = 'axlr', + bmdAudioConnectionAnalogRCA_v10_2 = 'arca' +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h new file mode 100644 index 00000000000..7e5019ca2b0 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h @@ -0,0 +1,45 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_4_H +#define BMD_DECKLINKAPI_v10_4_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_4; +enum _BMDDeckLinkConfigurationID_v10_4 { + + /* Video output flags */ + + bmdDeckLinkConfigSingleLinkVideoOutput_v10_4 = /* 'sglo' */ 0x73676C6F, +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h new file mode 100644 index 00000000000..4439daef7b0 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h @@ -0,0 +1,46 @@ +/* -LICENSE-START- +** Copyright (c) 2015 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_5_H +#define BMD_DECKLINKAPI_v10_5_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID_v10_5; +enum _BMDDeckLinkAttributeID_v10_5 { + + /* Integers */ + + BMDDeckLinkDeviceBusyState_v10_5 = /* 'dbst' */ 0x64627374, +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_5_H) */ + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h new file mode 100644 index 00000000000..7f78e53e6d1 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h @@ -0,0 +1,51 @@ +/* -LICENSE-START- +** Copyright (c) 2016 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_6_H +#define BMD_DECKLINKAPI_v10_6_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkAttributeID_c10_6; +enum _BMDDeckLinkAttributeID_v10_6 { + + /* Flags */ + + BMDDeckLinkSupportsDesktopDisplay_v10_6 = 'extd', +}; + +typedef uint32_t BMDIdleVideoOutputOperation_v10_6; +enum _BMDIdleVideoOutputOperation_v10_6 { + bmdIdleVideoOutputDesktop_v10_6 = 'desk' +}; + + +#endif /* defined(BMD_DECKLINKAPI_v10_6_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h new file mode 100644 index 00000000000..aec8c7c2018 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h @@ -0,0 +1,45 @@ +/* -LICENSE-START- +** Copyright (c) 2017 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v10_9_H +#define BMD_DECKLINKAPI_v10_9_H + +#include "DeckLinkAPI.h" + +// Type Declarations + +/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ + +typedef uint32_t BMDDeckLinkConfigurationID_v10_9; +enum _BMDDeckLinkConfigurationID_v10_9 { + + /* Flags */ + + bmdDeckLinkConfig1080pNotPsF_v10_9 = 'fpro', +}; + +#endif /* defined(BMD_DECKLINKAPI_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h new file mode 100644 index 00000000000..68d0beb31af --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h @@ -0,0 +1,198 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ +/* DeckLinkAPI_v7_1.h */ + +#ifndef __DeckLink_API_v7_1_h__ +#define __DeckLink_API_v7_1_h__ + +#include "DeckLinkAPI.h" + +// "B28131B6-59AC-4857-B5AC-CD75D5883E2F" +#define IID_IDeckLinkDisplayModeIterator_v7_1 (REFIID){0xB2,0x81,0x31,0xB6,0x59,0xAC,0x48,0x57,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F} + +// "AF0CD6D5-8376-435E-8433-54F9DD530AC3" +#define IID_IDeckLinkDisplayMode_v7_1 (REFIID){0xAF,0x0C,0xD6,0xD5,0x83,0x76,0x43,0x5E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3} + +// "EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9" +#define IID_IDeckLinkVideoOutputCallback_v7_1 (REFIID){0xEB,0xD0,0x1A,0xFA,0xE4,0xB0,0x49,0xC6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9} + +// "7F94F328-5ED4-4E9F-9729-76A86BDC99CC" +#define IID_IDeckLinkInputCallback_v7_1 (REFIID){0x7F,0x94,0xF3,0x28,0x5E,0xD4,0x4E,0x9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC} + +// "AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5" +#define IID_IDeckLinkOutput_v7_1 (REFIID){0xAE,0x5B,0x3E,0x9B,0x4E,0x1E,0x45,0x35,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5} + +// "2B54EDEF-5B32-429F-BA11-BB990596EACD" +#define IID_IDeckLinkInput_v7_1 (REFIID){0x2B,0x54,0xED,0xEF,0x5B,0x32,0x42,0x9F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD} + +// "333F3A10-8C2D-43CF-B79D-46560FEEA1CE" +#define IID_IDeckLinkVideoFrame_v7_1 (REFIID){0x33,0x3F,0x3A,0x10,0x8C,0x2D,0x43,0xCF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE} + +// "C8B41D95-8848-40EE-9B37-6E3417FB114B" +#define IID_IDeckLinkVideoInputFrame_v7_1 (REFIID){0xC8,0xB4,0x1D,0x95,0x88,0x48,0x40,0xEE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B} + +// "C86DE4F6-A29F-42E3-AB3A-1363E29F0788" +#define IID_IDeckLinkAudioInputPacket_v7_1 (REFIID){0xC8,0x6D,0xE4,0xF6,0xA2,0x9F,0x42,0xE3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88} + +#if defined(__cplusplus) + +class IDeckLinkVideoFrame_v7_1; +class IDeckLinkDisplayModeIterator_v7_1; +class IDeckLinkDisplayMode_v7_1; +class IDeckLinkVideoInputFrame_v7_1; +class IDeckLinkAudioInputPacket_v7_1; + +class IDeckLinkDisplayModeIterator_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE Next (IDeckLinkDisplayMode_v7_1* *deckLinkDisplayMode) = 0; +}; + + +class IDeckLinkDisplayMode_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE GetName (CFStringRef* name) = 0; + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode () = 0; + virtual long STDMETHODCALLTYPE GetWidth () = 0; + virtual long STDMETHODCALLTYPE GetHeight () = 0; + virtual HRESULT STDMETHODCALLTYPE GetFrameRate (BMDTimeValue *frameDuration, BMDTimeScale *timeScale) = 0; +}; + +class IDeckLinkVideoOutputCallback_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted (IDeckLinkVideoFrame_v7_1* completedFrame, BMDOutputFrameCompletionResult result) = 0; +}; + +class IDeckLinkInputCallback_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived (IDeckLinkVideoInputFrame_v7_1* videoFrame, IDeckLinkAudioInputPacket_v7_1* audioPacket) = 0; +}; + +// IDeckLinkOutput_v7_1. Created by QueryInterface from IDeckLink. +class IDeckLinkOutput_v7_1 : public IUnknown +{ +public: + // Display mode predicates + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1* *iterator) = 0; + + + // Video output + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput (BMDDisplayMode displayMode) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput () = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator (IDeckLinkMemoryAllocator* theAllocator) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer (void* buffer, int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync (IDeckLinkVideoFrame_v7_1* theFrame) = 0; + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame (IDeckLinkVideoFrame_v7_1* theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback (IDeckLinkVideoOutputCallback_v7_1* theCallback) = 0; + + + // Audio output + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput () = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll () = 0; + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll () = 0; + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples (void* buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples () = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback (IDeckLinkAudioOutputCallback* theCallback) = 0; + + + // Output control + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; +}; + +// IDeckLinkInput_v7_1. Created by QueryInterface from IDeckLink. +class IDeckLinkInput_v7_1 : public IUnknown +{ +public: + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + // Video input + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput () = 0; + + // Audio input + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput () = 0; + virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesRead, BMDTimeValue *audioPacketTime, BMDTimeScale timeScale) = 0; + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; + + // Input control + virtual HRESULT STDMETHODCALLTYPE StartStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE StopStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE PauseStreams () = 0; + virtual HRESULT STDMETHODCALLTYPE SetCallback (IDeckLinkInputCallback_v7_1* theCallback) = 0; +}; + +// IDeckLinkVideoFrame_v7_1. Created by IDeckLinkOutput::CreateVideoFrame. +class IDeckLinkVideoFrame_v7_1 : public IUnknown +{ +public: + virtual long STDMETHODCALLTYPE GetWidth () = 0; + virtual long STDMETHODCALLTYPE GetHeight () = 0; + virtual long STDMETHODCALLTYPE GetRowBytes () = 0; + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat () = 0; + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags () = 0; + virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; +}; + +// IDeckLinkVideoInputFrame_v7_1. Provided by the IDeckLinkInput_v7_1 frame arrival callback. +class IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 +{ +public: + virtual HRESULT STDMETHODCALLTYPE GetFrameTime (BMDTimeValue *frameTime, BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; +}; + +// IDeckLinkAudioInputPacket_v7_1. Provided by the IDeckLinkInput_v7_1 callback. +class IDeckLinkAudioInputPacket_v7_1 : public IUnknown +{ +public: + virtual long STDMETHODCALLTYPE GetSampleCount () = 0; + virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime (BMDTimeValue *packetTime, BMDTimeScale timeScale) = 0; +}; + +#endif // defined(__cplusplus) + +#endif // __DeckLink_API_v7_1_h__ + diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h new file mode 100644 index 00000000000..430a905a976 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h @@ -0,0 +1,173 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_3.h */ + +#ifndef __DeckLink_API_v7_3_h__ +#define __DeckLink_API_v7_3_h__ + +#include "DeckLinkAPI.h" +#include "DeckLinkAPI_v7_6.h" + +/* Interface ID Declarations */ + +#define IID_IDeckLinkInputCallback_v7_3 /* FD6F311D-4D00-444B-9ED4-1F25B5730AD0 */ (REFIID){0xFD,0x6F,0x31,0x1D,0x4D,0x00,0x44,0x4B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0} +#define IID_IDeckLinkOutput_v7_3 /* 271C65E3-C323-4344-A30F-D908BCB20AA3 */ (REFIID){0x27,0x1C,0x65,0xE3,0xC3,0x23,0x43,0x44,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3} +#define IID_IDeckLinkInput_v7_3 /* 4973F012-9925-458C-871C-18774CDBBECB */ (REFIID){0x49,0x73,0xF0,0x12,0x99,0x25,0x45,0x8C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB} +#define IID_IDeckLinkVideoInputFrame_v7_3 /* CF317790-2894-11DE-8C30-0800200C9A66 */ (REFIID){0xCF,0x31,0x77,0x90,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66} + +/* End Interface ID Declarations */ + +#if defined(__cplusplus) + +/* Forward Declarations */ + +class IDeckLinkVideoInputFrame_v7_3; + +/* End Forward Declarations */ + + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkOutput_v7_3 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (BMDDisplayMode displayMode, BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + virtual HRESULT CreateAncillaryData (BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount, BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + +protected: + virtual ~IDeckLinkOutput_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkOutput */ + + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class IDeckLinkInputCallback_v7_3 : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, /* in */ IDeckLinkAudioInputPacket *audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkInputCallback */ + + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkInput_v7_3 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_3 *theCallback) = 0; + +protected: + virtual ~IDeckLinkInput_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkInput */ + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame_v7_3 () {}; // call Release method to drop reference count +}; + +/* End Interface IDeckLinkVideoInputFrame */ + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_3_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h new file mode 100644 index 00000000000..a90d497a779 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h @@ -0,0 +1,421 @@ +/* -LICENSE-START- +** Copyright (c) 2009 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_6.h */ + +#ifndef __DeckLink_API_v7_6_h__ +#define __DeckLink_API_v7_6_h__ + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +#define IID_IDeckLinkVideoOutputCallback_v7_6 /* E763A626-4A3C-49D1-BF13-E7AD3692AE52 */ (REFIID){0xE7,0x63,0xA6,0x26,0x4A,0x3C,0x49,0xD1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52} +#define IID_IDeckLinkInputCallback_v7_6 /* 31D28EE7-88B6-4CB1-897A-CDBF79A26414 */ (REFIID){0x31,0xD2,0x8E,0xE7,0x88,0xB6,0x4C,0xB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14} +#define IID_IDeckLinkDisplayModeIterator_v7_6 /* 455D741F-1779-4800-86F5-0B5D13D79751 */ (REFIID){0x45,0x5D,0x74,0x1F,0x17,0x79,0x48,0x00,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51} +#define IID_IDeckLinkDisplayMode_v7_6 /* 87451E84-2B7E-439E-A629-4393EA4A8550 */ (REFIID){0x87,0x45,0x1E,0x84,0x2B,0x7E,0x43,0x9E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50} +#define IID_IDeckLinkOutput_v7_6 /* 29228142-EB8C-4141-A621-F74026450955 */ (REFIID){0x29,0x22,0x81,0x42,0xEB,0x8C,0x41,0x41,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55} +#define IID_IDeckLinkInput_v7_6 /* 300C135A-9F43-48E2-9906-6D7911D93CF1 */ (REFIID){0x30,0x0C,0x13,0x5A,0x9F,0x43,0x48,0xE2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1} +#define IID_IDeckLinkTimecode_v7_6 /* EFB9BCA6-A521-44F7-BD69-2332F24D9EE6 */ (REFIID){0xEF,0xB9,0xBC,0xA6,0xA5,0x21,0x44,0xF7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6} +#define IID_IDeckLinkVideoFrame_v7_6 /* A8D8238E-6B18-4196-99E1-5AF717B83D32 */ (REFIID){0xA8,0xD8,0x23,0x8E,0x6B,0x18,0x41,0x96,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32} +#define IID_IDeckLinkMutableVideoFrame_v7_6 /* 46FCEE00-B4E6-43D0-91C0-023A7FCEB34F */ (REFIID){0x46,0xFC,0xEE,0x00,0xB4,0xE6,0x43,0xD0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F} +#define IID_IDeckLinkVideoInputFrame_v7_6 /* 9A74FA41-AE9F-47AC-8CF4-01F42DD59965 */ (REFIID){0x9A,0x74,0xFA,0x41,0xAE,0x9F,0x47,0xAC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65} +#define IID_IDeckLinkScreenPreviewCallback_v7_6 /* 373F499D-4B4D-4518-AD22-6354E5A5825E */ (REFIID){0x37,0x3F,0x49,0x9D,0x4B,0x4D,0x45,0x18,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E} +#define IID_IDeckLinkCocoaScreenPreviewCallback_v7_6 /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ (REFIID){0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA} +#define IID_IDeckLinkGLScreenPreviewHelper_v7_6 /* BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA */ (REFIID){0xBA,0x57,0x5C,0xD9,0xA1,0x5E,0x49,0x7B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA} +#define IID_IDeckLinkVideoConversion_v7_6 /* 3EB504C9-F97D-40FE-A158-D407D48CB53B */ (REFIID){0x3E,0xB5,0x04,0xC9,0xF9,0x7D,0x40,0xFE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B} +#define IID_IDeckLinkConfiguration_v7_6 /* B8EAD569-B764-47F0-A73F-AE40DF6CBF10 */ (REFIID){0xB8,0xEA,0xD5,0x69,0xB7,0x64,0x47,0xF0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10} + + +#if defined(__cplusplus) + +/* Enum BMDVideoConnection - Video connection types */ + +typedef uint32_t BMDVideoConnection_v7_6; +enum _BMDVideoConnection_v7_6 { + bmdVideoConnectionSDI_v7_6 = 'sdi ', + bmdVideoConnectionHDMI_v7_6 = 'hdmi', + bmdVideoConnectionOpticalSDI_v7_6 = 'opti', + bmdVideoConnectionComponent_v7_6 = 'cpnt', + bmdVideoConnectionComposite_v7_6 = 'cmst', + bmdVideoConnectionSVideo_v7_6 = 'svid' +}; + + +// Forward Declarations + +class IDeckLinkVideoOutputCallback_v7_6; +class IDeckLinkInputCallback_v7_6; +class IDeckLinkDisplayModeIterator_v7_6; +class IDeckLinkDisplayMode_v7_6; +class IDeckLinkOutput_v7_6; +class IDeckLinkInput_v7_6; +class IDeckLinkTimecode_v7_6; +class IDeckLinkVideoFrame_v7_6; +class IDeckLinkMutableVideoFrame_v7_6; +class IDeckLinkVideoInputFrame_v7_6; +class IDeckLinkScreenPreviewCallback_v7_6; +class IDeckLinkCocoaScreenPreviewCallback_v7_6; +class IDeckLinkGLScreenPreviewHelper_v7_6; +class IDeckLinkVideoConversion_v7_6; + + +/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ + +class IDeckLinkVideoOutputCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame_v7_6 *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; + virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; + +protected: + virtual ~IDeckLinkVideoOutputCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkInputCallback - Frame arrival callback. */ + +class IDeckLinkInputCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_6* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; + +protected: + virtual ~IDeckLinkInputCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ + +class IDeckLinkDisplayModeIterator_v7_6 : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; + +protected: + virtual ~IDeckLinkDisplayModeIterator_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkDisplayMode - represents a display mode */ + +class IDeckLinkDisplayMode_v7_6 : public IUnknown +{ +public: + virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; + virtual BMDDisplayMode GetDisplayMode (void) = 0; + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; + virtual BMDFieldDominance GetFieldDominance (void) = 0; + +protected: + virtual ~IDeckLinkDisplayMode_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkOutput_v7_6 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkOutput_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkInput_v7_6 - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkInput_v7_6 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_6 *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ + +class IDeckLinkTimecode_v7_6 : public IUnknown +{ +public: + virtual BMDTimecodeBCD GetBCD (void) = 0; + virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; + virtual HRESULT GetString (/* out */ CFStringRef *timecode) = 0; + virtual BMDTimecodeFlags GetFlags (void) = 0; + +protected: + virtual ~IDeckLinkTimecode_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ + +class IDeckLinkVideoFrame_v7_6 : public IUnknown +{ +public: + virtual long GetWidth (void) = 0; + virtual long GetHeight (void) = 0; + virtual long GetRowBytes (void) = 0; + virtual BMDPixelFormat GetPixelFormat (void) = 0; + virtual BMDFrameFlags GetFlags (void) = 0; + virtual HRESULT GetBytes (/* out */ void **buffer) = 0; + + virtual HRESULT GetTimecode (BMDTimecodeFormat format, /* out */ IDeckLinkTimecode_v7_6 **timecode) = 0; + virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; + +protected: + virtual ~IDeckLinkVideoFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ + +class IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT SetFlags (BMDFrameFlags newFlags) = 0; + + virtual HRESULT SetTimecode (BMDTimecodeFormat format, /* in */ IDeckLinkTimecode_v7_6 *timecode) = 0; + virtual HRESULT SetTimecodeFromComponents (BMDTimecodeFormat format, uint8_t hours, uint8_t minutes, uint8_t seconds, uint8_t frames, BMDTimecodeFlags flags) = 0; + virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; + +protected: + virtual ~IDeckLinkMutableVideoFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ + +class IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ +public: + virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; + virtual HRESULT GetHardwareReferenceTimestamp (BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; + +protected: + virtual ~IDeckLinkVideoInputFrame_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ + +class IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown +{ +public: + virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +protected: + virtual ~IDeckLinkScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications */ + +class IDeckLinkCocoaScreenPreviewCallback_v7_6 : public IDeckLinkScreenPreviewCallback_v7_6 +{ +public: + +protected: + virtual ~IDeckLinkCocoaScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ + +class IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown +{ +public: + + /* Methods must be called with OpenGL context set */ + + virtual HRESULT InitializeGL (void) = 0; + virtual HRESULT PaintGL (void) = 0; + virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +protected: + virtual ~IDeckLinkGLScreenPreviewHelper_v7_6 () {}; // call Release method to drop reference count +}; + + +/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ + +class IDeckLinkVideoConversion_v7_6 : public IUnknown +{ +public: + virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame_v7_6* srcFrame, /* in */ IDeckLinkVideoFrame_v7_6* dstFrame) = 0; + +protected: + virtual ~IDeckLinkVideoConversion_v7_6 () {}; // call Release method to drop reference count +}; + +/* Interface IDeckLinkConfiguration - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkConfiguration_v7_6 : public IUnknown +{ +public: + virtual HRESULT GetConfigurationValidator (/* out */ IDeckLinkConfiguration_v7_6 **configObject) = 0; + virtual HRESULT WriteConfigurationToPreferences (void) = 0; + + /* Video Output Configuration */ + + virtual HRESULT SetVideoOutputFormat (/* in */ BMDVideoConnection_v7_6 videoOutputConnection) = 0; + virtual HRESULT IsVideoOutputActive (/* in */ BMDVideoConnection_v7_6 videoOutputConnection, /* out */ bool *active) = 0; + + virtual HRESULT SetAnalogVideoOutputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; + virtual HRESULT GetAnalogVideoOutputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT EnableFieldFlickerRemovalWhenPaused (/* in */ bool enable) = 0; + virtual HRESULT IsEnabledFieldFlickerRemovalWhenPaused (/* out */ bool *enabled) = 0; + + virtual HRESULT Set444And3GBpsVideoOutput (/* in */ bool enable444VideoOutput, /* in */ bool enable3GbsOutput) = 0; + virtual HRESULT Get444And3GBpsVideoOutput (/* out */ bool *is444VideoOutputEnabled, /* out */ bool *threeGbsOutputEnabled) = 0; + + virtual HRESULT SetVideoOutputConversionMode (/* in */ BMDVideoOutputConversionMode conversionMode) = 0; + virtual HRESULT GetVideoOutputConversionMode (/* out */ BMDVideoOutputConversionMode *conversionMode) = 0; + + virtual HRESULT Set_HD1080p24_to_HD1080i5994_Conversion (/* in */ bool enable) = 0; + virtual HRESULT Get_HD1080p24_to_HD1080i5994_Conversion (/* out */ bool *enabled) = 0; + + /* Video Input Configuration */ + + virtual HRESULT SetVideoInputFormat (/* in */ BMDVideoConnection_v7_6 videoInputFormat) = 0; + virtual HRESULT GetVideoInputFormat (/* out */ BMDVideoConnection_v7_6 *videoInputFormat) = 0; + + virtual HRESULT SetAnalogVideoInputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; + virtual HRESULT GetAnalogVideoInputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT SetVideoInputConversionMode (/* in */ BMDVideoInputConversionMode conversionMode) = 0; + virtual HRESULT GetVideoInputConversionMode (/* out */ BMDVideoInputConversionMode *conversionMode) = 0; + + virtual HRESULT SetBlackVideoOutputDuringCapture (/* in */ bool blackOutInCapture) = 0; + virtual HRESULT GetBlackVideoOutputDuringCapture (/* out */ bool *blackOutInCapture) = 0; + + virtual HRESULT Set32PulldownSequenceInitialTimecodeFrame (/* in */ uint32_t aFrameTimecode) = 0; + virtual HRESULT Get32PulldownSequenceInitialTimecodeFrame (/* out */ uint32_t *aFrameTimecode) = 0; + + virtual HRESULT SetVancSourceLineMapping (/* in */ uint32_t activeLine1VANCsource, /* in */ uint32_t activeLine2VANCsource, /* in */ uint32_t activeLine3VANCsource) = 0; + virtual HRESULT GetVancSourceLineMapping (/* out */ uint32_t *activeLine1VANCsource, /* out */ uint32_t *activeLine2VANCsource, /* out */ uint32_t *activeLine3VANCsource) = 0; + + /* Audio Input Configuration */ + + virtual HRESULT SetAudioInputFormat (/* in */ BMDAudioConnection audioInputFormat) = 0; + virtual HRESULT GetAudioInputFormat (/* out */ BMDAudioConnection *audioInputFormat) = 0; +}; + + + +/* Functions */ + +extern "C" { + + IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void); + IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void); + IDeckLinkCocoaScreenPreviewCallback_v7_6* CreateCocoaScreenPreview_v7_6 (void* /* (NSView*) */ parentView); + IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void); + +}; + + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_6_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h new file mode 100644 index 00000000000..c882f61863c --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h @@ -0,0 +1,91 @@ +/* -LICENSE-START- +** Copyright (c) 2010 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +/* DeckLinkAPI_v7_9.h */ + +#ifndef __DeckLink_API_v7_9_h__ +#define __DeckLink_API_v7_9_h__ + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +#define IID_IDeckLinkDeckControl_v7_9 /* A4D81043-0619-42B7-8ED6-602D29041DF7 */ (REFIID){0xA4,0xD8,0x10,0x43,0x06,0x19,0x42,0xB7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7} + + +#if defined(__cplusplus) + +// Forward Declarations + +class IDeckLinkDeckControl_v7_9; + + +/* Interface IDeckLinkDeckControl_v7_9 - Deck Control main interface */ + +class IDeckLinkDeckControl_v7_9 : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ BMDstring *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl_v7_9 () {}; // call Release method to drop reference count +}; + + +#endif // defined(__cplusplus) +#endif // __DeckLink_API_v7_9_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h new file mode 100644 index 00000000000..ea061834f5a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h @@ -0,0 +1,63 @@ +/* -LICENSE-START- +** Copyright (c) 2011 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v8_0_H +#define BMD_DECKLINKAPI_v8_0_H + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +#define IID_IDeckLink_v8_0 /* 62BFF75D-6569-4E55-8D4D-66AA03829ABC */ (REFIID){0x62,0xBF,0xF7,0x5D,0x65,0x69,0x4E,0x55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC} +#define IID_IDeckLinkIterator_v8_0 /* 74E936FC-CC28-4A67-81A0-1E94E52D4E69 */ (REFIID){0x74,0xE9,0x36,0xFC,0xCC,0x28,0x4A,0x67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69} + +#if defined (__cplusplus) + +/* Interface IDeckLink_v8_0 - represents a DeckLink device */ + +class IDeckLink_v8_0 : public IUnknown +{ +public: + virtual HRESULT GetModelName (/* out */ CFStringRef *modelName) = 0; +}; + +/* Interface IDeckLinkIterator_v8_0 - enumerates installed DeckLink hardware */ + +class IDeckLinkIterator_v8_0 : public IUnknown +{ +public: + virtual HRESULT Next (/* out */ IDeckLink_v8_0 **deckLinkInstance) = 0; +}; + +extern "C" { + IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance_v8_0 (void); +}; + + +#endif // defined __cplusplus + +#endif /* defined(BMD_DECKLINKAPI_v8_0_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h new file mode 100644 index 00000000000..0eea69532dc --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h @@ -0,0 +1,111 @@ +/* -LICENSE-START- + ** Copyright (c) 2011 Blackmagic Design + ** + ** Permission is hereby granted, free of charge, to any person or organization + ** obtaining a copy of the software and accompanying documentation covered by + ** this license (the "Software") to use, reproduce, display, distribute, + ** execute, and transmit the Software, and to prepare derivative works of the + ** Software, and to permit third-parties to whom the Software is furnished to + ** do so, all subject to the following: + ** + ** The copyright notices in the Software and this entire statement, including + ** the above license grant, this restriction and the following disclaimer, + ** must be included in all copies of the Software, in whole or in part, and + ** all derivative works of the Software, unless such copies or derivative + ** works are solely in the form of machine-executable object code generated by + ** a source language processor. + ** + ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + ** DEALINGS IN THE SOFTWARE. + ** -LICENSE-END- + */ + +#ifndef BMD_DECKLINKAPI_v8_1_H +#define BMD_DECKLINKAPI_v8_1_H + +#include "DeckLinkAPI.h" + + +// Interface ID Declarations + +#define IID_IDeckLinkDeckControlStatusCallback_v8_1 /* E5F693C1-4283-4716-B18F-C1431521955B */ (REFIID){0xE5,0xF6,0x93,0xC1,0x42,0x83,0x47,0x16,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B} +#define IID_IDeckLinkDeckControl_v8_1 /* 522A9E39-0F3C-4742-94EE-D80DE335DA1D */ (REFIID){0x52,0x2A,0x9E,0x39,0x0F,0x3C,0x47,0x42,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D} + + +/* Enum BMDDeckControlVTRControlState_v8_1 - VTR Control state */ + +typedef uint32_t BMDDeckControlVTRControlState_v8_1; +enum _BMDDeckControlVTRControlState_v8_1 { + bmdDeckControlNotInVTRControlMode_v8_1 = 'nvcm', + bmdDeckControlVTRControlPlaying_v8_1 = 'vtrp', + bmdDeckControlVTRControlRecording_v8_1 = 'vtrr', + bmdDeckControlVTRControlStill_v8_1 = 'vtra', + bmdDeckControlVTRControlSeeking_v8_1 = 'vtrs', + bmdDeckControlVTRControlStopped_v8_1 = 'vtro' +}; + + +/* Interface IDeckLinkDeckControlStatusCallback_v8_1 - Deck control state change callback. */ + +class IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown +{ +public: + virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; + virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState_v8_1 newState, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; + virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; + +protected: + virtual ~IDeckLinkDeckControlStatusCallback_v8_1 () {}; // call Release method to drop reference count +}; + +/* Interface IDeckLinkDeckControl_v8_1 - Deck Control main interface */ + +class IDeckLinkDeckControl_v8_1 : public IUnknown +{ +public: + virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Close (/* in */ bool standbyOn) = 0; + virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState_v8_1 *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; + virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; + virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeString (/* out */ CFStringRef *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; + virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; + virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; + virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; + virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; + virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; + virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; + virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; + virtual HRESULT Abort (void) = 0; + virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0; + +protected: + virtual ~IDeckLinkDeckControl_v8_1 () {}; // call Release method to drop reference count +}; + + +#endif // BMD_DECKLINKAPI_v8_1_H diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h new file mode 100644 index 00000000000..ab2aa032030 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h @@ -0,0 +1,81 @@ +/* -LICENSE-START- +** Copyright (c) 2012 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v9_2_H +#define BMD_DECKLINKAPI_v9_2_H + +#include "DeckLinkAPI.h" + + +// Interface ID Declarations + +#define IID_IDeckLinkInput_v9_2 /* 6D40EF78-28B9-4E21-990D-95BB7750A04F */ (REFIID){0x6D,0x40,0xEF,0x78,0x28,0xB9,0x4E,0x21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F} + + +#if defined(__cplusplus) + +/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkInput_v9_2 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Input */ + + virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; + virtual HRESULT DisableVideoInput (void) = 0; + virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; + + /* Audio Input */ + + virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; + virtual HRESULT DisableAudioInput (void) = 0; + virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; + + /* Input Control */ + + virtual HRESULT StartStreams (void) = 0; + virtual HRESULT StopStreams (void) = 0; + virtual HRESULT PauseStreams (void) = 0; + virtual HRESULT FlushStreams (void) = 0; + virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkInput_v9_2 () {}; // call Release method to drop reference count +}; + + +#endif // defined(__cplusplus) +#endif // BMD_DECKLINKAPI_v9_2_H diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h new file mode 100644 index 00000000000..966c8ad7e5a --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h @@ -0,0 +1,101 @@ +/* -LICENSE-START- +** Copyright (c) 2013 Blackmagic Design +** +** Permission is hereby granted, free of charge, to any person or organization +** obtaining a copy of the software and accompanying documentation covered by +** this license (the "Software") to use, reproduce, display, distribute, +** execute, and transmit the Software, and to prepare derivative works of the +** Software, and to permit third-parties to whom the Software is furnished to +** do so, all subject to the following: +** +** The copyright notices in the Software and this entire statement, including +** the above license grant, this restriction and the following disclaimer, +** must be included in all copies of the Software, in whole or in part, and +** all derivative works of the Software, unless such copies or derivative +** works are solely in the form of machine-executable object code generated by +** a source language processor. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +** DEALINGS IN THE SOFTWARE. +** -LICENSE-END- +*/ + +#ifndef BMD_DECKLINKAPI_v9_9_H +#define BMD_DECKLINKAPI_v9_9_H + +#include "DeckLinkAPI.h" + +// Interface ID Declarations + +BMD_CONST REFIID IID_IDeckLinkOutput_v9_9 = /* A3EF0963-0862-44ED-92A9-EE89ABF431C7 */ {0xA3,0xEF,0x09,0x63,0x08,0x62,0x44,0xED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7}; + + +#if defined(__cplusplus) + +// Forward Declarations +class IDeckLinkOutput_v9_9; + +/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ + +class IDeckLinkOutput_v9_9 : public IUnknown +{ +public: + virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; + virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + /* Video Output */ + + virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; + virtual HRESULT DisableVideoOutput (void) = 0; + + virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; + virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; + virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; + virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; + virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; + + /* Audio Output */ + + virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; + virtual HRESULT DisableAudioOutput (void) = 0; + + virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT BeginAudioPreroll (void) = 0; + virtual HRESULT EndAudioPreroll (void) = 0; + virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; + + virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; + virtual HRESULT FlushBufferedAudioSamples (void) = 0; + + virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; + + /* Output Control */ + + virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; + virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; + virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; + virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; + virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; + + /* Hardware Timing */ + + virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; + +protected: + virtual ~IDeckLinkOutput_v9_9 () {}; // call Release method to drop reference count +}; + +#endif // defined(__cplusplus) +#endif /* defined(BMD_DECKLINKAPI_v9_9_H) */ + diff --git a/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI.h b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI.h new file mode 100644 index 00000000000..a95b31ae69c --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI.h @@ -0,0 +1,16409 @@ +/*** Autogenerated by WIDL 3.1 from DeckLinkAPI.idl - Do not edit ***/ + +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include +#include + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __decklinkapi_h__ +#define __decklinkapi_h__ + +/* Forward declarations */ + +#ifndef __IDeckLinkTimecode_FWD_DEFINED__ +#define __IDeckLinkTimecode_FWD_DEFINED__ +typedef interface IDeckLinkTimecode IDeckLinkTimecode; +#ifdef __cplusplus +interface IDeckLinkTimecode; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode; +#ifdef __cplusplus +interface IDeckLinkDisplayMode; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLink_FWD_DEFINED__ +#define __IDeckLink_FWD_DEFINED__ +typedef interface IDeckLink IDeckLink; +#ifdef __cplusplus +interface IDeckLink; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkConfiguration_FWD_DEFINED__ +#define __IDeckLinkConfiguration_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration IDeckLinkConfiguration; +#ifdef __cplusplus +interface IDeckLinkConfiguration; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderConfiguration_FWD_DEFINED__ +#define __IDeckLinkEncoderConfiguration_FWD_DEFINED__ +typedef interface IDeckLinkEncoderConfiguration IDeckLinkEncoderConfiguration; +#ifdef __cplusplus +interface IDeckLinkEncoderConfiguration; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback; +#ifdef __cplusplus +interface IDeckLinkDeckControlStatusCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControl_FWD_DEFINED__ +#define __IDeckLinkDeckControl_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl IDeckLinkDeckControl; +#ifdef __cplusplus +interface IDeckLinkDeckControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ +#define __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ +typedef interface IBMDStreamingDeviceNotificationCallback IBMDStreamingDeviceNotificationCallback; +#ifdef __cplusplus +interface IBMDStreamingDeviceNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264InputCallback_FWD_DEFINED__ +#define __IBMDStreamingH264InputCallback_FWD_DEFINED__ +typedef interface IBMDStreamingH264InputCallback IBMDStreamingH264InputCallback; +#ifdef __cplusplus +interface IBMDStreamingH264InputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingDiscovery_FWD_DEFINED__ +#define __IBMDStreamingDiscovery_FWD_DEFINED__ +typedef interface IBMDStreamingDiscovery IBMDStreamingDiscovery; +#ifdef __cplusplus +interface IBMDStreamingDiscovery; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ +#define __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ +typedef interface IBMDStreamingVideoEncodingMode IBMDStreamingVideoEncodingMode; +#ifdef __cplusplus +interface IBMDStreamingVideoEncodingMode; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ +#define __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ +typedef interface IBMDStreamingMutableVideoEncodingMode IBMDStreamingMutableVideoEncodingMode; +#ifdef __cplusplus +interface IBMDStreamingMutableVideoEncodingMode; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ +#define __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ +typedef interface IBMDStreamingVideoEncodingModePresetIterator IBMDStreamingVideoEncodingModePresetIterator; +#ifdef __cplusplus +interface IBMDStreamingVideoEncodingModePresetIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingDeviceInput_FWD_DEFINED__ +#define __IBMDStreamingDeviceInput_FWD_DEFINED__ +typedef interface IBMDStreamingDeviceInput IBMDStreamingDeviceInput; +#ifdef __cplusplus +interface IBMDStreamingDeviceInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264NALPacket_FWD_DEFINED__ +#define __IBMDStreamingH264NALPacket_FWD_DEFINED__ +typedef interface IBMDStreamingH264NALPacket IBMDStreamingH264NALPacket; +#ifdef __cplusplus +interface IBMDStreamingH264NALPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingAudioPacket_FWD_DEFINED__ +#define __IBMDStreamingAudioPacket_FWD_DEFINED__ +typedef interface IBMDStreamingAudioPacket IBMDStreamingAudioPacket; +#ifdef __cplusplus +interface IBMDStreamingAudioPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ +#define __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ +typedef interface IBMDStreamingMPEG2TSPacket IBMDStreamingMPEG2TSPacket; +#ifdef __cplusplus +interface IBMDStreamingMPEG2TSPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264NALParser_FWD_DEFINED__ +#define __IBMDStreamingH264NALParser_FWD_DEFINED__ +typedef interface IBMDStreamingH264NALParser IBMDStreamingH264NALParser; +#ifdef __cplusplus +interface IBMDStreamingH264NALParser; +#endif /* __cplusplus */ +#endif + +#ifndef __CBMDStreamingDiscovery_FWD_DEFINED__ +#define __CBMDStreamingDiscovery_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CBMDStreamingDiscovery CBMDStreamingDiscovery; +#else +typedef struct CBMDStreamingDiscovery CBMDStreamingDiscovery; +#endif /* defined __cplusplus */ +#endif /* defined __CBMDStreamingDiscovery_FWD_DEFINED__ */ + +#ifndef __CBMDStreamingH264NALParser_FWD_DEFINED__ +#define __CBMDStreamingH264NALParser_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CBMDStreamingH264NALParser CBMDStreamingH264NALParser; +#else +typedef struct CBMDStreamingH264NALParser CBMDStreamingH264NALParser; +#endif /* defined __cplusplus */ +#endif /* defined __CBMDStreamingH264NALParser_FWD_DEFINED__ */ + +#ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback; +#ifdef __cplusplus +interface IDeckLinkVideoOutputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInputCallback_FWD_DEFINED__ +#define __IDeckLinkInputCallback_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback IDeckLinkInputCallback; +#ifdef __cplusplus +interface IDeckLinkInputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderInputCallback_FWD_DEFINED__ +#define __IDeckLinkEncoderInputCallback_FWD_DEFINED__ +typedef interface IDeckLinkEncoderInputCallback IDeckLinkEncoderInputCallback; +#ifdef __cplusplus +interface IDeckLinkEncoderInputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__ +#define __IDeckLinkMemoryAllocator_FWD_DEFINED__ +typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator; +#ifdef __cplusplus +interface IDeckLinkMemoryAllocator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +#define __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback; +#ifdef __cplusplus +interface IDeckLinkAudioOutputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkIterator_FWD_DEFINED__ +#define __IDeckLinkIterator_FWD_DEFINED__ +typedef interface IDeckLinkIterator IDeckLinkIterator; +#ifdef __cplusplus +interface IDeckLinkIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAPIInformation_FWD_DEFINED__ +#define __IDeckLinkAPIInformation_FWD_DEFINED__ +typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation; +#ifdef __cplusplus +interface IDeckLinkAPIInformation; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_FWD_DEFINED__ +#define __IDeckLinkOutput_FWD_DEFINED__ +typedef interface IDeckLinkOutput IDeckLinkOutput; +#ifdef __cplusplus +interface IDeckLinkOutput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_FWD_DEFINED__ +#define __IDeckLinkInput_FWD_DEFINED__ +typedef interface IDeckLinkInput IDeckLinkInput; +#ifdef __cplusplus +interface IDeckLinkInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderInput_FWD_DEFINED__ +#define __IDeckLinkEncoderInput_FWD_DEFINED__ +typedef interface IDeckLinkEncoderInput IDeckLinkEncoderInput; +#ifdef __cplusplus +interface IDeckLinkEncoderInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame; +#ifdef __cplusplus +interface IDeckLinkVideoFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame; +#ifdef __cplusplus +interface IDeckLinkMutableVideoFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +#define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions; +#ifdef __cplusplus +interface IDeckLinkVideoFrame3DExtensions; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ +#define __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrameMetadataExtensions IDeckLinkVideoFrameMetadataExtensions; +#ifdef __cplusplus +interface IDeckLinkVideoFrameMetadataExtensions; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +#define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary; +#ifdef __cplusplus +interface IDeckLinkVideoFrameAncillary; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderPacket IDeckLinkEncoderPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderVideoPacket IDeckLinkEncoderVideoPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderVideoPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderAudioPacket IDeckLinkEncoderAudioPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderAudioPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkH265NALPacket_FWD_DEFINED__ +#define __IDeckLinkH265NALPacket_FWD_DEFINED__ +typedef interface IDeckLinkH265NALPacket IDeckLinkH265NALPacket; +#ifdef __cplusplus +interface IDeckLinkH265NALPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket; +#ifdef __cplusplus +interface IDeckLinkAudioInputPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback; +#ifdef __cplusplus +interface IDeckLinkScreenPreviewCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper; +#ifdef __cplusplus +interface IDeckLinkGLScreenPreviewHelper; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +#define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper; +#ifdef __cplusplus +interface IDeckLinkDX9ScreenPreviewHelper; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__ +#define __IDeckLinkNotificationCallback_FWD_DEFINED__ +typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback; +#ifdef __cplusplus +interface IDeckLinkNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkNotification_FWD_DEFINED__ +#define __IDeckLinkNotification_FWD_DEFINED__ +typedef interface IDeckLinkNotification IDeckLinkNotification; +#ifdef __cplusplus +interface IDeckLinkNotification; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAttributes_FWD_DEFINED__ +#define __IDeckLinkAttributes_FWD_DEFINED__ +typedef interface IDeckLinkAttributes IDeckLinkAttributes; +#ifdef __cplusplus +interface IDeckLinkAttributes; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkStatus_FWD_DEFINED__ +#define __IDeckLinkStatus_FWD_DEFINED__ +typedef interface IDeckLinkStatus IDeckLinkStatus; +#ifdef __cplusplus +interface IDeckLinkStatus; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkKeyer_FWD_DEFINED__ +#define __IDeckLinkKeyer_FWD_DEFINED__ +typedef interface IDeckLinkKeyer IDeckLinkKeyer; +#ifdef __cplusplus +interface IDeckLinkKeyer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoConversion_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion; +#ifdef __cplusplus +interface IDeckLinkVideoConversion; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ +#define __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeviceNotificationCallback IDeckLinkDeviceNotificationCallback; +#ifdef __cplusplus +interface IDeckLinkDeviceNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDiscovery_FWD_DEFINED__ +#define __IDeckLinkDiscovery_FWD_DEFINED__ +typedef interface IDeckLinkDiscovery IDeckLinkDiscovery; +#ifdef __cplusplus +interface IDeckLinkDiscovery; +#endif /* __cplusplus */ +#endif + +#ifndef __CDeckLinkIterator_FWD_DEFINED__ +#define __CDeckLinkIterator_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkIterator CDeckLinkIterator; +#else +typedef struct CDeckLinkIterator CDeckLinkIterator; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkIterator_FWD_DEFINED__ */ + +#ifndef __CDeckLinkAPIInformation_FWD_DEFINED__ +#define __CDeckLinkAPIInformation_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation; +#else +typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkAPIInformation_FWD_DEFINED__ */ + +#ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper; +#else +typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */ + +#ifndef __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +#define __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper; +#else +typedef struct CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */ + +#ifndef __CDeckLinkVideoConversion_FWD_DEFINED__ +#define __CDeckLinkVideoConversion_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion; +#else +typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkVideoConversion_FWD_DEFINED__ */ + +#ifndef __CDeckLinkDiscovery_FWD_DEFINED__ +#define __CDeckLinkDiscovery_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkDiscovery CDeckLinkDiscovery; +#else +typedef struct CDeckLinkDiscovery CDeckLinkDiscovery; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkDiscovery_FWD_DEFINED__ */ + +#ifndef __IDeckLinkConfiguration_v10_9_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_9_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_9 IDeckLinkConfiguration_v10_9; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_9; +#endif /* __cplusplus */ +#endif + +#ifndef __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__ +#define __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CBMDStreamingDiscovery_v10_8 CBMDStreamingDiscovery_v10_8; +#else +typedef struct CBMDStreamingDiscovery_v10_8 CBMDStreamingDiscovery_v10_8; +#endif /* defined __cplusplus */ +#endif /* defined __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__ */ + +#ifndef __CDeckLinkIterator_v10_8_FWD_DEFINED__ +#define __CDeckLinkIterator_v10_8_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkIterator_v10_8 CDeckLinkIterator_v10_8; +#else +typedef struct CDeckLinkIterator_v10_8 CDeckLinkIterator_v10_8; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkIterator_v10_8_FWD_DEFINED__ */ + +#ifndef __CDeckLinkDiscovery_v10_8_FWD_DEFINED__ +#define __CDeckLinkDiscovery_v10_8_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkDiscovery_v10_8 CDeckLinkDiscovery_v10_8; +#else +typedef struct CDeckLinkDiscovery_v10_8 CDeckLinkDiscovery_v10_8; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkDiscovery_v10_8_FWD_DEFINED__ */ + +#ifndef __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ +#define __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ +typedef interface IDeckLinkEncoderConfiguration_v10_5 IDeckLinkEncoderConfiguration_v10_5; +#ifdef __cplusplus +interface IDeckLinkEncoderConfiguration_v10_5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v9_9_FWD_DEFINED__ +#define __IDeckLinkOutput_v9_9_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v9_9 IDeckLinkOutput_v9_9; +#ifdef __cplusplus +interface IDeckLinkOutput_v9_9; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v9_2_FWD_DEFINED__ +#define __IDeckLinkInput_v9_2_FWD_DEFINED__ +typedef interface IDeckLinkInput_v9_2 IDeckLinkInput_v9_2; +#ifdef __cplusplus +interface IDeckLinkInput_v9_2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ +typedef interface IDeckLinkDeckControlStatusCallback_v8_1 IDeckLinkDeckControlStatusCallback_v8_1; +#ifdef __cplusplus +interface IDeckLinkDeckControlStatusCallback_v8_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ +#define __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl_v8_1 IDeckLinkDeckControl_v8_1; +#ifdef __cplusplus +interface IDeckLinkDeckControl_v8_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLink_v8_0_FWD_DEFINED__ +#define __IDeckLink_v8_0_FWD_DEFINED__ +typedef interface IDeckLink_v8_0 IDeckLink_v8_0; +#ifdef __cplusplus +interface IDeckLink_v8_0; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkIterator_v8_0_FWD_DEFINED__ +#define __IDeckLinkIterator_v8_0_FWD_DEFINED__ +typedef interface IDeckLinkIterator_v8_0 IDeckLinkIterator_v8_0; +#ifdef __cplusplus +interface IDeckLinkIterator_v8_0; +#endif /* __cplusplus */ +#endif + +#ifndef __CDeckLinkIterator_v8_0_FWD_DEFINED__ +#define __CDeckLinkIterator_v8_0_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0; +#else +typedef struct CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkIterator_v8_0_FWD_DEFINED__ */ + +#ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ +#define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9; +#ifdef __cplusplus +interface IDeckLinkDeckControl_v7_9; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoOutputCallback_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6; +#ifdef __cplusplus +interface IDeckLinkInputCallback_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6; +#ifdef __cplusplus +interface IDeckLinkDisplayMode_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6; +#ifdef __cplusplus +interface IDeckLinkOutput_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__ +#define __IDeckLinkInput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6; +#ifdef __cplusplus +interface IDeckLinkInput_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +#define __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6; +#ifdef __cplusplus +interface IDeckLinkTimecode_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkMutableVideoFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6; +#ifdef __cplusplus +interface IDeckLinkScreenPreviewCallback_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6; +#ifdef __cplusplus +interface IDeckLinkGLScreenPreviewHelper_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoConversion_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6; +#else +typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */ + +#ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#ifdef __cplusplus +typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6; +#else +typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6; +#endif /* defined __cplusplus */ +#endif /* defined __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */ + +#ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3; +#ifdef __cplusplus +interface IDeckLinkInputCallback_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3; +#ifdef __cplusplus +interface IDeckLinkOutput_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__ +#define __IDeckLinkInput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3; +#ifdef __cplusplus +interface IDeckLinkInput_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1; +#ifdef __cplusplus +interface IDeckLinkDisplayMode_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1; +#ifdef __cplusplus +interface IDeckLinkVideoOutputCallback_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1; +#ifdef __cplusplus +interface IDeckLinkInputCallback_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1; +#ifdef __cplusplus +interface IDeckLinkOutput_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__ +#define __IDeckLinkInput_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1; +#ifdef __cplusplus +interface IDeckLinkInput_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1; +#ifdef __cplusplus +interface IDeckLinkVideoFrame_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1; +#ifdef __cplusplus +interface IDeckLinkAudioInputPacket_v7_1; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +DEFINE_GUID(LIBID_DeckLinkAPI, 0xd864517a, 0xedd5, 0x466d, 0x86,0x7d, 0xc8,0x19,0xf1,0xc0,0x52,0xbb); + +typedef LONGLONG BMDTimeValue; +typedef LONGLONG BMDTimeScale; +typedef unsigned int BMDTimecodeBCD; +typedef unsigned int BMDTimecodeUserBits; +typedef unsigned int BMDTimecodeFlags; +#if 0 +typedef enum _BMDTimecodeFlags BMDTimecodeFlags; +#endif +enum _BMDTimecodeFlags { + bmdTimecodeFlagDefault = 0, + bmdTimecodeIsDropFrame = 1 << 0, + bmdTimecodeFieldMark = 1 << 1, + bmdTimecodeColorFrame = 1 << 2 +}; +typedef enum _BMDVideoConnection { + bmdVideoConnectionSDI = 1 << 0, + bmdVideoConnectionHDMI = 1 << 1, + bmdVideoConnectionOpticalSDI = 1 << 2, + bmdVideoConnectionComponent = 1 << 3, + bmdVideoConnectionComposite = 1 << 4, + bmdVideoConnectionSVideo = 1 << 5 +} BMDVideoConnection; +typedef enum _BMDAudioConnection { + bmdAudioConnectionEmbedded = 1 << 0, + bmdAudioConnectionAESEBU = 1 << 1, + bmdAudioConnectionAnalog = 1 << 2, + bmdAudioConnectionAnalogXLR = 1 << 3, + bmdAudioConnectionAnalogRCA = 1 << 4, + bmdAudioConnectionMicrophone = 1 << 5, + bmdAudioConnectionHeadphones = 1 << 6 +} BMDAudioConnection; +typedef enum _BMDDeckControlConnection { + bmdDeckControlConnectionRS422Remote1 = 1 << 0, + bmdDeckControlConnectionRS422Remote2 = 1 << 1 +} BMDDeckControlConnection; +#ifndef __IDeckLinkTimecode_FWD_DEFINED__ +#define __IDeckLinkTimecode_FWD_DEFINED__ +typedef interface IDeckLinkTimecode IDeckLinkTimecode; +#ifdef __cplusplus +interface IDeckLinkTimecode; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkTimecode interface + */ +#ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__ +#define __IDeckLinkTimecode_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkTimecode, 0xbc6cfbd3, 0x8317, 0x4325, 0xac,0x1c, 0x12,0x16,0x39,0x1e,0x93,0x40); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("bc6cfbd3-8317-4325-ac1c-1216391e9340") +IDeckLinkTimecode : public IUnknown +{ + virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponents( + unsigned char *hours, + unsigned char *minutes, + unsigned char *seconds, + unsigned char *frames) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BSTR *timecode) = 0; + + virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( + BMDTimecodeUserBits *userBits) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkTimecode, 0xbc6cfbd3, 0x8317, 0x4325, 0xac,0x1c, 0x12,0x16,0x39,0x1e,0x93,0x40) +#endif +#else +typedef struct IDeckLinkTimecodeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkTimecode *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkTimecode *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkTimecode *This); + + /*** IDeckLinkTimecode methods ***/ + BMDTimecodeBCD (STDMETHODCALLTYPE *GetBCD)( + IDeckLinkTimecode *This); + + HRESULT (STDMETHODCALLTYPE *GetComponents)( + IDeckLinkTimecode *This, + unsigned char *hours, + unsigned char *minutes, + unsigned char *seconds, + unsigned char *frames); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkTimecode *This, + BSTR *timecode); + + BMDTimecodeFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkTimecode *This); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeUserBits)( + IDeckLinkTimecode *This, + BMDTimecodeUserBits *userBits); + + END_INTERFACE +} IDeckLinkTimecodeVtbl; + +interface IDeckLinkTimecode { + CONST_VTBL IDeckLinkTimecodeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkTimecode_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkTimecode_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkTimecode methods ***/ +#define IDeckLinkTimecode_GetBCD(This) (This)->lpVtbl->GetBCD(This) +#define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames) (This)->lpVtbl->GetComponents(This,hours,minutes,seconds,frames) +#define IDeckLinkTimecode_GetString(This,timecode) (This)->lpVtbl->GetString(This,timecode) +#define IDeckLinkTimecode_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits) (This)->lpVtbl->GetTimecodeUserBits(This,userBits) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkTimecode_QueryInterface(IDeckLinkTimecode* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkTimecode_AddRef(IDeckLinkTimecode* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkTimecode_Release(IDeckLinkTimecode* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkTimecode methods ***/ +static FORCEINLINE BMDTimecodeBCD IDeckLinkTimecode_GetBCD(IDeckLinkTimecode* This) { + return This->lpVtbl->GetBCD(This); +} +static FORCEINLINE HRESULT IDeckLinkTimecode_GetComponents(IDeckLinkTimecode* This,unsigned char *hours,unsigned char *minutes,unsigned char *seconds,unsigned char *frames) { + return This->lpVtbl->GetComponents(This,hours,minutes,seconds,frames); +} +static FORCEINLINE HRESULT IDeckLinkTimecode_GetString(IDeckLinkTimecode* This,BSTR *timecode) { + return This->lpVtbl->GetString(This,timecode); +} +static FORCEINLINE BMDTimecodeFlags IDeckLinkTimecode_GetFlags(IDeckLinkTimecode* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkTimecode_GetTimecodeUserBits(IDeckLinkTimecode* This,BMDTimecodeUserBits *userBits) { + return This->lpVtbl->GetTimecodeUserBits(This,userBits); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */ + +typedef unsigned int BMDDisplayModeFlags; +#if 0 +typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags; +#endif +typedef enum _BMDDisplayMode { + bmdModeNTSC = 0x6e747363, + bmdModeNTSC2398 = 0x6e743233, + bmdModePAL = 0x70616c20, + bmdModeNTSCp = 0x6e747370, + bmdModePALp = 0x70616c70, + bmdModeHD1080p2398 = 0x32337073, + bmdModeHD1080p24 = 0x32347073, + bmdModeHD1080p25 = 0x48703235, + bmdModeHD1080p2997 = 0x48703239, + bmdModeHD1080p30 = 0x48703330, + bmdModeHD1080i50 = 0x48693530, + bmdModeHD1080i5994 = 0x48693539, + bmdModeHD1080i6000 = 0x48693630, + bmdModeHD1080p50 = 0x48703530, + bmdModeHD1080p5994 = 0x48703539, + bmdModeHD1080p6000 = 0x48703630, + bmdModeHD720p50 = 0x68703530, + bmdModeHD720p5994 = 0x68703539, + bmdModeHD720p60 = 0x68703630, + bmdMode2k2398 = 0x326b3233, + bmdMode2k24 = 0x326b3234, + bmdMode2k25 = 0x326b3235, + bmdMode2kDCI2398 = 0x32643233, + bmdMode2kDCI24 = 0x32643234, + bmdMode2kDCI25 = 0x32643235, + bmdMode4K2160p2398 = 0x346b3233, + bmdMode4K2160p24 = 0x346b3234, + bmdMode4K2160p25 = 0x346b3235, + bmdMode4K2160p2997 = 0x346b3239, + bmdMode4K2160p30 = 0x346b3330, + bmdMode4K2160p50 = 0x346b3530, + bmdMode4K2160p5994 = 0x346b3539, + bmdMode4K2160p60 = 0x346b3630, + bmdMode4kDCI2398 = 0x34643233, + bmdMode4kDCI24 = 0x34643234, + bmdMode4kDCI25 = 0x34643235, + bmdModeUnknown = 0x69756e6b +} BMDDisplayMode; +typedef enum _BMDFieldDominance { + bmdUnknownFieldDominance = 0, + bmdLowerFieldFirst = 0x6c6f7772, + bmdUpperFieldFirst = 0x75707072, + bmdProgressiveFrame = 0x70726f67, + bmdProgressiveSegmentedFrame = 0x70736620 +} BMDFieldDominance; +typedef enum _BMDPixelFormat { + bmdFormat8BitYUV = 0x32767579, + bmdFormat10BitYUV = 0x76323130, + bmdFormat8BitARGB = 32, + bmdFormat8BitBGRA = 0x42475241, + bmdFormat10BitRGB = 0x72323130, + bmdFormat12BitRGB = 0x52313242, + bmdFormat12BitRGBLE = 0x5231324c, + bmdFormat10BitRGBXLE = 0x5231306c, + bmdFormat10BitRGBX = 0x52313062, + bmdFormatH265 = 0x68657631, + bmdFormatDNxHR = 0x41566468 +} BMDPixelFormat; +enum _BMDDisplayModeFlags { + bmdDisplayModeSupports3D = 1 << 0, + bmdDisplayModeColorspaceRec601 = 1 << 1, + bmdDisplayModeColorspaceRec709 = 1 << 2 +}; +#ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode; +#ifdef __cplusplus +interface IDeckLinkDisplayMode; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkDisplayModeIterator interface + */ +#ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayModeIterator, 0x9c88499f, 0xf601, 0x4021, 0xb8,0x0b, 0x03,0x2e,0x4e,0xb4,0x1c,0x35); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9c88499f-f601-4021-b80b-032e4eb41c35") +IDeckLinkDisplayModeIterator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayModeIterator, 0x9c88499f, 0xf601, 0x4021, 0xb8,0x0b, 0x03,0x2e,0x4e,0xb4,0x1c,0x35) +#endif +#else +typedef struct IDeckLinkDisplayModeIteratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayModeIterator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayModeIterator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayModeIterator *This); + + /*** IDeckLinkDisplayModeIterator methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IDeckLinkDisplayModeIterator *This, + IDeckLinkDisplayMode **deckLinkDisplayMode); + + END_INTERFACE +} IDeckLinkDisplayModeIteratorVtbl; + +interface IDeckLinkDisplayModeIterator { + CONST_VTBL IDeckLinkDisplayModeIteratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayModeIterator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayModeIterator_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayModeIterator methods ***/ +#define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode) (This)->lpVtbl->Next(This,deckLinkDisplayMode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_QueryInterface(IDeckLinkDisplayModeIterator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_AddRef(IDeckLinkDisplayModeIterator* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_Release(IDeckLinkDisplayModeIterator* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayModeIterator methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_Next(IDeckLinkDisplayModeIterator* This,IDeckLinkDisplayMode **deckLinkDisplayMode) { + return This->lpVtbl->Next(This,deckLinkDisplayMode); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDisplayMode interface + */ +#ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayMode, 0x3eb2c1ab, 0x0a3d, 0x4523, 0xa3,0xad, 0xf4,0x0d,0x7f,0xb1,0x4e,0x78); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3eb2c1ab-0a3d-4523-a3ad-f40d7fb14e78") +IDeckLinkDisplayMode : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetName( + BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale) = 0; + + virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( + ) = 0; + + virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayMode, 0x3eb2c1ab, 0x0a3d, 0x4523, 0xa3,0xad, 0xf4,0x0d,0x7f,0xb1,0x4e,0x78) +#endif +#else +typedef struct IDeckLinkDisplayModeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayMode *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayMode *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayMode *This); + + /*** IDeckLinkDisplayMode methods ***/ + HRESULT (STDMETHODCALLTYPE *GetName)( + IDeckLinkDisplayMode *This, + BSTR *name); + + BMDDisplayMode (STDMETHODCALLTYPE *GetDisplayMode)( + IDeckLinkDisplayMode *This); + + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkDisplayMode *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkDisplayMode *This); + + HRESULT (STDMETHODCALLTYPE *GetFrameRate)( + IDeckLinkDisplayMode *This, + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale); + + BMDFieldDominance (STDMETHODCALLTYPE *GetFieldDominance)( + IDeckLinkDisplayMode *This); + + BMDDisplayModeFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkDisplayMode *This); + + END_INTERFACE +} IDeckLinkDisplayModeVtbl; + +interface IDeckLinkDisplayMode { + CONST_VTBL IDeckLinkDisplayModeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayMode_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayMode_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayMode methods ***/ +#define IDeckLinkDisplayMode_GetName(This,name) (This)->lpVtbl->GetName(This,name) +#define IDeckLinkDisplayMode_GetDisplayMode(This) (This)->lpVtbl->GetDisplayMode(This) +#define IDeckLinkDisplayMode_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkDisplayMode_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) (This)->lpVtbl->GetFrameRate(This,frameDuration,timeScale) +#define IDeckLinkDisplayMode_GetFieldDominance(This) (This)->lpVtbl->GetFieldDominance(This) +#define IDeckLinkDisplayMode_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_QueryInterface(IDeckLinkDisplayMode* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_AddRef(IDeckLinkDisplayMode* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_Release(IDeckLinkDisplayMode* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayMode methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_GetName(IDeckLinkDisplayMode* This,BSTR *name) { + return This->lpVtbl->GetName(This,name); +} +static FORCEINLINE BMDDisplayMode IDeckLinkDisplayMode_GetDisplayMode(IDeckLinkDisplayMode* This) { + return This->lpVtbl->GetDisplayMode(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_GetWidth(IDeckLinkDisplayMode* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_GetHeight(IDeckLinkDisplayMode* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE HRESULT IDeckLinkDisplayMode_GetFrameRate(IDeckLinkDisplayMode* This,BMDTimeValue *frameDuration,BMDTimeScale *timeScale) { + return This->lpVtbl->GetFrameRate(This,frameDuration,timeScale); +} +static FORCEINLINE BMDFieldDominance IDeckLinkDisplayMode_GetFieldDominance(IDeckLinkDisplayMode* This) { + return This->lpVtbl->GetFieldDominance(This); +} +static FORCEINLINE BMDDisplayModeFlags IDeckLinkDisplayMode_GetFlags(IDeckLinkDisplayMode* This) { + return This->lpVtbl->GetFlags(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */ + +#if 0 +#endif +#ifndef __IDeckLink_FWD_DEFINED__ +#define __IDeckLink_FWD_DEFINED__ +typedef interface IDeckLink IDeckLink; +#ifdef __cplusplus +interface IDeckLink; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLink interface + */ +#ifndef __IDeckLink_INTERFACE_DEFINED__ +#define __IDeckLink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLink, 0xc418fbdd, 0x0587, 0x48ed, 0x8f,0xe5, 0x64,0x0f,0x0a,0x14,0xaf,0x91); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c418fbdd-0587-48ed-8fe5-640f0a14af91") +IDeckLink : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetModelName( + BSTR *modelName) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayName( + BSTR *displayName) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLink, 0xc418fbdd, 0x0587, 0x48ed, 0x8f,0xe5, 0x64,0x0f,0x0a,0x14,0xaf,0x91) +#endif +#else +typedef struct IDeckLinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLink *This); + + /*** IDeckLink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetModelName)( + IDeckLink *This, + BSTR *modelName); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IDeckLink *This, + BSTR *displayName); + + END_INTERFACE +} IDeckLinkVtbl; + +interface IDeckLink { + CONST_VTBL IDeckLinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLink_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLink methods ***/ +#define IDeckLink_GetModelName(This,modelName) (This)->lpVtbl->GetModelName(This,modelName) +#define IDeckLink_GetDisplayName(This,displayName) (This)->lpVtbl->GetDisplayName(This,displayName) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLink_QueryInterface(IDeckLink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLink_AddRef(IDeckLink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLink_Release(IDeckLink* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLink methods ***/ +static FORCEINLINE HRESULT IDeckLink_GetModelName(IDeckLink* This,BSTR *modelName) { + return This->lpVtbl->GetModelName(This,modelName); +} +static FORCEINLINE HRESULT IDeckLink_GetDisplayName(IDeckLink* This,BSTR *displayName) { + return This->lpVtbl->GetDisplayName(This,displayName); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLink_INTERFACE_DEFINED__ */ + +#if 0 +#endif +typedef enum _BMDDeckLinkConfigurationID { + bmdDeckLinkConfigSwapSerialRxTx = 0x73737274, + bmdDeckLinkConfigHDMI3DPackingFormat = 0x33647066, + bmdDeckLinkConfigBypass = 0x62797073, + bmdDeckLinkConfigClockTimingAdjustment = 0x63746164, + bmdDeckLinkConfigDuplexMode = 0x64757078, + bmdDeckLinkConfigAnalogAudioConsumerLevels = 0x6161636c, + bmdDeckLinkConfigFieldFlickerRemoval = 0x66646672, + bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 0x746f3539, + bmdDeckLinkConfig444SDIVideoOutput = 0x3434346f, + bmdDeckLinkConfigBlackVideoOutputDuringCapture = 0x62766f63, + bmdDeckLinkConfigLowLatencyVideoOutput = 0x6c6c766f, + bmdDeckLinkConfigDownConversionOnAllAnalogOutput = 0x6361616f, + bmdDeckLinkConfigSMPTELevelAOutput = 0x736d7461, + bmdDeckLinkConfigOutput1080pAsPsF = 0x70667072, + bmdDeckLinkConfigVideoOutputConnection = 0x766f636e, + bmdDeckLinkConfigVideoOutputConversionMode = 0x766f636d, + bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66, + bmdDeckLinkConfigReferenceInputTimingOffset = 0x676c6f74, + bmdDeckLinkConfigVideoOutputIdleOperation = 0x766f696f, + bmdDeckLinkConfigDefaultVideoOutputMode = 0x64766f6d, + bmdDeckLinkConfigDefaultVideoOutputModeFlags = 0x64766f66, + bmdDeckLinkConfigSDIOutputLinkConfiguration = 0x736f6c63, + bmdDeckLinkConfigVideoOutputComponentLumaGain = 0x6f636c67, + bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 0x6f636362, + bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 0x6f636372, + bmdDeckLinkConfigVideoOutputCompositeLumaGain = 0x6f696c67, + bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367, + bmdDeckLinkConfigVideoOutputSVideoLumaGain = 0x6f736c67, + bmdDeckLinkConfigVideoOutputSVideoChromaGain = 0x6f736367, + bmdDeckLinkConfigVideoInputScanning = 0x76697363, + bmdDeckLinkConfigUseDedicatedLTCInput = 0x646c7463, + bmdDeckLinkConfigSDIInput3DPayloadOverride = 0x33646473, + bmdDeckLinkConfigCapture1080pAsPsF = 0x63667072, + bmdDeckLinkConfigVideoInputConnection = 0x7669636e, + bmdDeckLinkConfigAnalogVideoInputFlags = 0x61766966, + bmdDeckLinkConfigVideoInputConversionMode = 0x7669636d, + bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966, + bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31, + bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32, + bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33, + bmdDeckLinkConfigCapturePassThroughMode = 0x6370746d, + bmdDeckLinkConfigVideoInputComponentLumaGain = 0x69636c67, + bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 0x69636362, + bmdDeckLinkConfigVideoInputComponentChromaRedGain = 0x69636372, + bmdDeckLinkConfigVideoInputCompositeLumaGain = 0x69696c67, + bmdDeckLinkConfigVideoInputCompositeChromaGain = 0x69696367, + bmdDeckLinkConfigVideoInputSVideoLumaGain = 0x69736c67, + bmdDeckLinkConfigVideoInputSVideoChromaGain = 0x69736367, + bmdDeckLinkConfigMicrophonePhantomPower = 0x6d706870, + bmdDeckLinkConfigAudioInputConnection = 0x6169636e, + bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331, + bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 0x61697332, + bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 0x61697333, + bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 0x61697334, + bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973, + bmdDeckLinkConfigMicrophoneInputGain = 0x6d696367, + bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 0x616f6161, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333, + bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334, + bmdDeckLinkConfigDigitalAudioOutputScale = 0x64616f73, + bmdDeckLinkConfigHeadphoneVolume = 0x68766f6c, + bmdDeckLinkConfigDeviceInformationLabel = 0x64696c61, + bmdDeckLinkConfigDeviceInformationSerialNumber = 0x6469736e, + bmdDeckLinkConfigDeviceInformationCompany = 0x6469636f, + bmdDeckLinkConfigDeviceInformationPhone = 0x64697068, + bmdDeckLinkConfigDeviceInformationEmail = 0x6469656d, + bmdDeckLinkConfigDeviceInformationDate = 0x64696461, + bmdDeckLinkConfigDeckControlConnection = 0x6463636f +} BMDDeckLinkConfigurationID; +typedef enum _BMDDeckLinkEncoderConfigurationID { + bmdDeckLinkEncoderConfigPreferredBitDepth = 0x65706272, + bmdDeckLinkEncoderConfigFrameCodingMode = 0x6566636d, + bmdDeckLinkEncoderConfigH265TargetBitrate = 0x68746272, + bmdDeckLinkEncoderConfigDNxHRCompressionID = 0x64636964, + bmdDeckLinkEncoderConfigDNxHRLevel = 0x646c6576, + bmdDeckLinkEncoderConfigMPEG4SampleDescription = 0x73747345, + bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = 0x65736473 +} BMDDeckLinkEncoderConfigurationID; +#ifndef __IDeckLinkConfiguration_FWD_DEFINED__ +#define __IDeckLinkConfiguration_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration IDeckLinkConfiguration; +#ifdef __cplusplus +interface IDeckLinkConfiguration; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderConfiguration_FWD_DEFINED__ +#define __IDeckLinkEncoderConfiguration_FWD_DEFINED__ +typedef interface IDeckLinkEncoderConfiguration IDeckLinkEncoderConfiguration; +#ifdef __cplusplus +interface IDeckLinkEncoderConfiguration; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkConfiguration interface + */ +#ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkConfiguration, 0xef90380b, 0x4ae5, 0x4346, 0x90,0x77, 0xe2,0x88,0xe1,0x49,0xf1,0x29); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ef90380b-4ae5-4346-9077-e288e149f129") +IDeckLinkConfiguration : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkConfiguration, 0xef90380b, 0x4ae5, 0x4346, 0x90,0x77, 0xe2,0x88,0xe1,0x49,0xf1,0x29) +#endif +#else +typedef struct IDeckLinkConfigurationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkConfiguration *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkConfiguration *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkConfiguration *This); + + /*** IDeckLinkConfiguration methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkConfiguration *This, + BMDDeckLinkConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *WriteConfigurationToPreferences)( + IDeckLinkConfiguration *This); + + END_INTERFACE +} IDeckLinkConfigurationVtbl; + +interface IDeckLinkConfiguration { + CONST_VTBL IDeckLinkConfigurationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkConfiguration_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkConfiguration methods ***/ +#define IDeckLinkConfiguration_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkConfiguration_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkConfiguration_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkConfiguration_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkConfiguration_WriteConfigurationToPreferences(This) (This)->lpVtbl->WriteConfigurationToPreferences(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_QueryInterface(IDeckLinkConfiguration* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_AddRef(IDeckLinkConfiguration* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_Release(IDeckLinkConfiguration* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkConfiguration methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_SetFlag(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_GetFlag(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_SetInt(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_GetInt(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_SetFloat(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_GetFloat(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_SetString(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_GetString(IDeckLinkConfiguration* This,BMDDeckLinkConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_WriteConfigurationToPreferences(IDeckLinkConfiguration* This) { + return This->lpVtbl->WriteConfigurationToPreferences(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderConfiguration interface + */ +#ifndef __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderConfiguration, 0x138050e5, 0xc60a, 0x4552, 0xbf,0x3f, 0x0f,0x35,0x80,0x49,0x32,0x7e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("138050e5-c60a-4552-bf3f-0f358049327e") +IDeckLinkEncoderConfiguration : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkEncoderConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkEncoderConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + BMDDeckLinkEncoderConfigurationID cfgID, + void *buffer, + unsigned int *bufferSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderConfiguration, 0x138050e5, 0xc60a, 0x4552, 0xbf,0x3f, 0x0f,0x35,0x80,0x49,0x32,0x7e) +#endif +#else +typedef struct IDeckLinkEncoderConfigurationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderConfiguration *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderConfiguration *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderConfiguration *This); + + /*** IDeckLinkEncoderConfiguration methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkEncoderConfiguration *This, + BMDDeckLinkEncoderConfigurationID cfgID, + void *buffer, + unsigned int *bufferSize); + + END_INTERFACE +} IDeckLinkEncoderConfigurationVtbl; + +interface IDeckLinkEncoderConfiguration { + CONST_VTBL IDeckLinkEncoderConfigurationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderConfiguration_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderConfiguration methods ***/ +#define IDeckLinkEncoderConfiguration_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_GetBytes(This,cfgID,buffer,bufferSize) (This)->lpVtbl->GetBytes(This,cfgID,buffer,bufferSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_QueryInterface(IDeckLinkEncoderConfiguration* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderConfiguration_AddRef(IDeckLinkEncoderConfiguration* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderConfiguration_Release(IDeckLinkEncoderConfiguration* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderConfiguration methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_SetFlag(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_GetFlag(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_SetInt(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_GetInt(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_SetFloat(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_GetFloat(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_SetString(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_GetString(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_GetBytes(IDeckLinkEncoderConfiguration* This,BMDDeckLinkEncoderConfigurationID cfgID,void *buffer,unsigned int *bufferSize) { + return This->lpVtbl->GetBytes(This,cfgID,buffer,bufferSize); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__ */ + +typedef unsigned int BMDDeckControlStatusFlags; +typedef unsigned int BMDDeckControlExportModeOpsFlags; +#if 0 +typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags; +typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags; +#endif +typedef enum _BMDDeckControlMode { + bmdDeckControlNotOpened = 0x6e746f70, + bmdDeckControlVTRControlMode = 0x76747263, + bmdDeckControlExportMode = 0x6578706d, + bmdDeckControlCaptureMode = 0x6361706d +} BMDDeckControlMode; +typedef enum _BMDDeckControlEvent { + bmdDeckControlAbortedEvent = 0x61627465, + bmdDeckControlPrepareForExportEvent = 0x70666565, + bmdDeckControlExportCompleteEvent = 0x65786365, + bmdDeckControlPrepareForCaptureEvent = 0x70666365, + bmdDeckControlCaptureCompleteEvent = 0x63636576 +} BMDDeckControlEvent; +typedef enum _BMDDeckControlVTRControlState { + bmdDeckControlNotInVTRControlMode = 0x6e76636d, + bmdDeckControlVTRControlPlaying = 0x76747270, + bmdDeckControlVTRControlRecording = 0x76747272, + bmdDeckControlVTRControlStill = 0x76747261, + bmdDeckControlVTRControlShuttleForward = 0x76747366, + bmdDeckControlVTRControlShuttleReverse = 0x76747372, + bmdDeckControlVTRControlJogForward = 0x76746a66, + bmdDeckControlVTRControlJogReverse = 0x76746a72, + bmdDeckControlVTRControlStopped = 0x7674726f +} BMDDeckControlVTRControlState; +enum _BMDDeckControlStatusFlags { + bmdDeckControlStatusDeckConnected = 1 << 0, + bmdDeckControlStatusRemoteMode = 1 << 1, + bmdDeckControlStatusRecordInhibited = 1 << 2, + bmdDeckControlStatusCassetteOut = 1 << 3 +}; +enum _BMDDeckControlExportModeOpsFlags { + bmdDeckControlExportModeInsertVideo = 1 << 0, + bmdDeckControlExportModeInsertAudio1 = 1 << 1, + bmdDeckControlExportModeInsertAudio2 = 1 << 2, + bmdDeckControlExportModeInsertAudio3 = 1 << 3, + bmdDeckControlExportModeInsertAudio4 = 1 << 4, + bmdDeckControlExportModeInsertAudio5 = 1 << 5, + bmdDeckControlExportModeInsertAudio6 = 1 << 6, + bmdDeckControlExportModeInsertAudio7 = 1 << 7, + bmdDeckControlExportModeInsertAudio8 = 1 << 8, + bmdDeckControlExportModeInsertAudio9 = 1 << 9, + bmdDeckControlExportModeInsertAudio10 = 1 << 10, + bmdDeckControlExportModeInsertAudio11 = 1 << 11, + bmdDeckControlExportModeInsertAudio12 = 1 << 12, + bmdDeckControlExportModeInsertTimeCode = 1 << 13, + bmdDeckControlExportModeInsertAssemble = 1 << 14, + bmdDeckControlExportModeInsertPreview = 1 << 15, + bmdDeckControlUseManualExport = 1 << 16 +}; +typedef enum _BMDDeckControlError { + bmdDeckControlNoError = 0x6e6f6572, + bmdDeckControlModeError = 0x6d6f6572, + bmdDeckControlMissedInPointError = 0x6d696572, + bmdDeckControlDeckTimeoutError = 0x64746572, + bmdDeckControlCommandFailedError = 0x63666572, + bmdDeckControlDeviceAlreadyOpenedError = 0x64616c6f, + bmdDeckControlFailedToOpenDeviceError = 0x66646572, + bmdDeckControlInLocalModeError = 0x6c6d6572, + bmdDeckControlEndOfTapeError = 0x65746572, + bmdDeckControlUserAbortError = 0x75616572, + bmdDeckControlNoTapeInDeckError = 0x6e746572, + bmdDeckControlNoVideoFromCardError = 0x6e766663, + bmdDeckControlNoCommunicationError = 0x6e636f6d, + bmdDeckControlBufferTooSmallError = 0x6274736d, + bmdDeckControlBadChecksumError = 0x63686b73, + bmdDeckControlUnknownError = 0x756e6572 +} BMDDeckControlError; +#ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback; +#ifdef __cplusplus +interface IDeckLinkDeckControlStatusCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControl_FWD_DEFINED__ +#define __IDeckLinkDeckControl_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl IDeckLinkDeckControl; +#ifdef __cplusplus +interface IDeckLinkDeckControl; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkDeckControlStatusCallback interface + */ +#ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeckControlStatusCallback, 0x53436ffb, 0xb434, 0x4906, 0xba,0xdc, 0xae,0x30,0x60,0xff,0xe8,0xef); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53436ffb-b434-4906-badc-ae3060ffe8ef") +IDeckLinkDeckControlStatusCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( + BMDTimecodeBCD currentTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( + BMDDeckControlVTRControlState newState, + BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( + BMDDeckControlEvent event, + BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( + BMDDeckControlStatusFlags flags, + unsigned int mask) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeckControlStatusCallback, 0x53436ffb, 0xb434, 0x4906, 0xba,0xdc, 0xae,0x30,0x60,0xff,0xe8,0xef) +#endif +#else +typedef struct IDeckLinkDeckControlStatusCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeckControlStatusCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeckControlStatusCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeckControlStatusCallback *This); + + /*** IDeckLinkDeckControlStatusCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *TimecodeUpdate)( + IDeckLinkDeckControlStatusCallback *This, + BMDTimecodeBCD currentTimecode); + + HRESULT (STDMETHODCALLTYPE *VTRControlStateChanged)( + IDeckLinkDeckControlStatusCallback *This, + BMDDeckControlVTRControlState newState, + BMDDeckControlError error); + + HRESULT (STDMETHODCALLTYPE *DeckControlEventReceived)( + IDeckLinkDeckControlStatusCallback *This, + BMDDeckControlEvent event, + BMDDeckControlError error); + + HRESULT (STDMETHODCALLTYPE *DeckControlStatusChanged)( + IDeckLinkDeckControlStatusCallback *This, + BMDDeckControlStatusFlags flags, + unsigned int mask); + + END_INTERFACE +} IDeckLinkDeckControlStatusCallbackVtbl; + +interface IDeckLinkDeckControlStatusCallback { + CONST_VTBL IDeckLinkDeckControlStatusCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeckControlStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeckControlStatusCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeckControlStatusCallback methods ***/ +#define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) (This)->lpVtbl->TimecodeUpdate(This,currentTimecode) +#define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) (This)->lpVtbl->VTRControlStateChanged(This,newState,error) +#define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error) (This)->lpVtbl->DeckControlEventReceived(This,event,error) +#define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask) (This)->lpVtbl->DeckControlStatusChanged(This,flags,mask) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_QueryInterface(IDeckLinkDeckControlStatusCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeckControlStatusCallback_AddRef(IDeckLinkDeckControlStatusCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeckControlStatusCallback_Release(IDeckLinkDeckControlStatusCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeckControlStatusCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_TimecodeUpdate(IDeckLinkDeckControlStatusCallback* This,BMDTimecodeBCD currentTimecode) { + return This->lpVtbl->TimecodeUpdate(This,currentTimecode); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(IDeckLinkDeckControlStatusCallback* This,BMDDeckControlVTRControlState newState,BMDDeckControlError error) { + return This->lpVtbl->VTRControlStateChanged(This,newState,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(IDeckLinkDeckControlStatusCallback* This,BMDDeckControlEvent event,BMDDeckControlError error) { + return This->lpVtbl->DeckControlEventReceived(This,event,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(IDeckLinkDeckControlStatusCallback* This,BMDDeckControlStatusFlags flags,unsigned int mask) { + return This->lpVtbl->DeckControlStatusChanged(This,flags,mask); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDeckControl interface + */ +#ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeckControl, 0x8e1c3ace, 0x19c7, 0x4e00, 0x8b,0x92, 0xd8,0x04,0x31,0xd9,0x58,0xbe); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8e1c3ace-19c7-4e00-8b92-d80431d958be") +IDeckLinkDeckControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Open( + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentState( + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState *vtrControlState, + BMDDeckControlStatusFlags *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStandby( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendCommand( + unsigned char *inBuffer, + unsigned int inBufferSize, + unsigned char *outBuffer, + unsigned int *outDataSize, + unsigned int outBufferSize, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Play( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Eject( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GoToTimecode( + BMDTimecodeBCD timecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastForward( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Rewind( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepForward( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepBack( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Jog( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Shuttle( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( + BSTR *currentTimeCode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + unsigned int prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreroll( + unsigned int *prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetExportOffset( + int exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExportOffset( + int *exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( + int *deckManualExportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( + int captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( + int *captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartExport( + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + unsigned short *deviceId, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Abort( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkDeckControlStatusCallback *callback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeckControl, 0x8e1c3ace, 0x19c7, 0x4e00, 0x8b,0x92, 0xd8,0x04,0x31,0xd9,0x58,0xbe) +#endif +#else +typedef struct IDeckLinkDeckControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeckControl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeckControl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeckControl *This); + + /*** IDeckLinkDeckControl methods ***/ + HRESULT (STDMETHODCALLTYPE *Open)( + IDeckLinkDeckControl *This, + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Close)( + IDeckLinkDeckControl *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *GetCurrentState)( + IDeckLinkDeckControl *This, + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState *vtrControlState, + BMDDeckControlStatusFlags *flags); + + HRESULT (STDMETHODCALLTYPE *SetStandby)( + IDeckLinkDeckControl *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *SendCommand)( + IDeckLinkDeckControl *This, + unsigned char *inBuffer, + unsigned int inBufferSize, + unsigned char *outBuffer, + unsigned int *outDataSize, + unsigned int outBufferSize, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Play)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *TogglePlayStop)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Eject)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GoToTimecode)( + IDeckLinkDeckControl *This, + BMDTimecodeBCD timecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *FastForward)( + IDeckLinkDeckControl *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Rewind)( + IDeckLinkDeckControl *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepForward)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepBack)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Jog)( + IDeckLinkDeckControl *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Shuttle)( + IDeckLinkDeckControl *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeString)( + IDeckLinkDeckControl *This, + BSTR *currentTimeCode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkDeckControl *This, + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeBCD)( + IDeckLinkDeckControl *This, + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetPreroll)( + IDeckLinkDeckControl *This, + unsigned int prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *GetPreroll)( + IDeckLinkDeckControl *This, + unsigned int *prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *SetExportOffset)( + IDeckLinkDeckControl *This, + int exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetExportOffset)( + IDeckLinkDeckControl *This, + int *exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetManualExportOffset)( + IDeckLinkDeckControl *This, + int *deckManualExportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *SetCaptureOffset)( + IDeckLinkDeckControl *This, + int captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetCaptureOffset)( + IDeckLinkDeckControl *This, + int *captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *StartExport)( + IDeckLinkDeckControl *This, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StartCapture)( + IDeckLinkDeckControl *This, + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetDeviceID)( + IDeckLinkDeckControl *This, + unsigned short *deviceId, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Abort)( + IDeckLinkDeckControl *This); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStart)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStop)( + IDeckLinkDeckControl *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkDeckControl *This, + IDeckLinkDeckControlStatusCallback *callback); + + END_INTERFACE +} IDeckLinkDeckControlVtbl; + +interface IDeckLinkDeckControl { + CONST_VTBL IDeckLinkDeckControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeckControl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeckControl_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeckControl methods ***/ +#define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) (This)->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error) +#define IDeckLinkDeckControl_Close(This,standbyOn) (This)->lpVtbl->Close(This,standbyOn) +#define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags) (This)->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags) +#define IDeckLinkDeckControl_SetStandby(This,standbyOn) (This)->lpVtbl->SetStandby(This,standbyOn) +#define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) (This)->lpVtbl->SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) +#define IDeckLinkDeckControl_Play(This,error) (This)->lpVtbl->Play(This,error) +#define IDeckLinkDeckControl_Stop(This,error) (This)->lpVtbl->Stop(This,error) +#define IDeckLinkDeckControl_TogglePlayStop(This,error) (This)->lpVtbl->TogglePlayStop(This,error) +#define IDeckLinkDeckControl_Eject(This,error) (This)->lpVtbl->Eject(This,error) +#define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) (This)->lpVtbl->GoToTimecode(This,timecode,error) +#define IDeckLinkDeckControl_FastForward(This,viewTape,error) (This)->lpVtbl->FastForward(This,viewTape,error) +#define IDeckLinkDeckControl_Rewind(This,viewTape,error) (This)->lpVtbl->Rewind(This,viewTape,error) +#define IDeckLinkDeckControl_StepForward(This,error) (This)->lpVtbl->StepForward(This,error) +#define IDeckLinkDeckControl_StepBack(This,error) (This)->lpVtbl->StepBack(This,error) +#define IDeckLinkDeckControl_Jog(This,rate,error) (This)->lpVtbl->Jog(This,rate,error) +#define IDeckLinkDeckControl_Shuttle(This,rate,error) (This)->lpVtbl->Shuttle(This,rate,error) +#define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error) (This)->lpVtbl->GetTimecodeString(This,currentTimeCode,error) +#define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error) (This)->lpVtbl->GetTimecode(This,currentTimecode,error) +#define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) (This)->lpVtbl->GetTimecodeBCD(This,currentTimecode,error) +#define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds) (This)->lpVtbl->SetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds) (This)->lpVtbl->GetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields) (This)->lpVtbl->SetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields) (This)->lpVtbl->GetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields) (This)->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields) +#define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->SetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->GetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error) (This)->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error) +#define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error) (This)->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error) +#define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error) (This)->lpVtbl->GetDeviceID(This,deviceId,error) +#define IDeckLinkDeckControl_Abort(This) (This)->lpVtbl->Abort(This) +#define IDeckLinkDeckControl_CrashRecordStart(This,error) (This)->lpVtbl->CrashRecordStart(This,error) +#define IDeckLinkDeckControl_CrashRecordStop(This,error) (This)->lpVtbl->CrashRecordStop(This,error) +#define IDeckLinkDeckControl_SetCallback(This,callback) (This)->lpVtbl->SetCallback(This,callback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_QueryInterface(IDeckLinkDeckControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_AddRef(IDeckLinkDeckControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_Release(IDeckLinkDeckControl* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeckControl methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_Open(IDeckLinkDeckControl* This,BMDTimeScale timeScale,BMDTimeValue timeValue,BOOL timecodeIsDropFrame,BMDDeckControlError *error) { + return This->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Close(IDeckLinkDeckControl* This,BOOL standbyOn) { + return This->lpVtbl->Close(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetCurrentState(IDeckLinkDeckControl* This,BMDDeckControlMode *mode,BMDDeckControlVTRControlState *vtrControlState,BMDDeckControlStatusFlags *flags) { + return This->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SetStandby(IDeckLinkDeckControl* This,BOOL standbyOn) { + return This->lpVtbl->SetStandby(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SendCommand(IDeckLinkDeckControl* This,unsigned char *inBuffer,unsigned int inBufferSize,unsigned char *outBuffer,unsigned int *outDataSize,unsigned int outBufferSize,BMDDeckControlError *error) { + return This->lpVtbl->SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Play(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->Play(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Stop(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->Stop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_TogglePlayStop(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->TogglePlayStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Eject(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->Eject(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GoToTimecode(IDeckLinkDeckControl* This,BMDTimecodeBCD timecode,BMDDeckControlError *error) { + return This->lpVtbl->GoToTimecode(This,timecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_FastForward(IDeckLinkDeckControl* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->FastForward(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Rewind(IDeckLinkDeckControl* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->Rewind(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_StepForward(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->StepForward(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_StepBack(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->StepBack(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Jog(IDeckLinkDeckControl* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Jog(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Shuttle(IDeckLinkDeckControl* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Shuttle(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetTimecodeString(IDeckLinkDeckControl* This,BSTR *currentTimeCode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeString(This,currentTimeCode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetTimecode(IDeckLinkDeckControl* This,IDeckLinkTimecode **currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecode(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetTimecodeBCD(IDeckLinkDeckControl* This,BMDTimecodeBCD *currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeBCD(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SetPreroll(IDeckLinkDeckControl* This,unsigned int prerollSeconds) { + return This->lpVtbl->SetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetPreroll(IDeckLinkDeckControl* This,unsigned int *prerollSeconds) { + return This->lpVtbl->GetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SetExportOffset(IDeckLinkDeckControl* This,int exportOffsetFields) { + return This->lpVtbl->SetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetExportOffset(IDeckLinkDeckControl* This,int *exportOffsetFields) { + return This->lpVtbl->GetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetManualExportOffset(IDeckLinkDeckControl* This,int *deckManualExportOffsetFields) { + return This->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SetCaptureOffset(IDeckLinkDeckControl* This,int captureOffsetFields) { + return This->lpVtbl->SetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetCaptureOffset(IDeckLinkDeckControl* This,int *captureOffsetFields) { + return This->lpVtbl->GetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_StartExport(IDeckLinkDeckControl* This,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlExportModeOpsFlags exportModeOps,BMDDeckControlError *error) { + return This->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_StartCapture(IDeckLinkDeckControl* This,BOOL useVITC,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlError *error) { + return This->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_GetDeviceID(IDeckLinkDeckControl* This,unsigned short *deviceId,BMDDeckControlError *error) { + return This->lpVtbl->GetDeviceID(This,deviceId,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_Abort(IDeckLinkDeckControl* This) { + return This->lpVtbl->Abort(This); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_CrashRecordStart(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStart(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_CrashRecordStop(IDeckLinkDeckControl* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_SetCallback(IDeckLinkDeckControl* This,IDeckLinkDeckControlStatusCallback *callback) { + return This->lpVtbl->SetCallback(This,callback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */ + +#if 0 +#endif +typedef enum _BMDStreamingDeviceMode { + bmdStreamingDeviceIdle = 0x69646c65, + bmdStreamingDeviceEncoding = 0x656e636f, + bmdStreamingDeviceStopping = 0x73746f70, + bmdStreamingDeviceUnknown = 0x6d756e6b +} BMDStreamingDeviceMode; +typedef enum _BMDStreamingEncodingFrameRate { + bmdStreamingEncodedFrameRate50i = 0x65353069, + bmdStreamingEncodedFrameRate5994i = 0x65353969, + bmdStreamingEncodedFrameRate60i = 0x65363069, + bmdStreamingEncodedFrameRate2398p = 0x65323370, + bmdStreamingEncodedFrameRate24p = 0x65323470, + bmdStreamingEncodedFrameRate25p = 0x65323570, + bmdStreamingEncodedFrameRate2997p = 0x65323970, + bmdStreamingEncodedFrameRate30p = 0x65333070, + bmdStreamingEncodedFrameRate50p = 0x65353070, + bmdStreamingEncodedFrameRate5994p = 0x65353970, + bmdStreamingEncodedFrameRate60p = 0x65363070 +} BMDStreamingEncodingFrameRate; +typedef enum _BMDStreamingEncodingSupport { + bmdStreamingEncodingModeNotSupported = 0, + bmdStreamingEncodingModeSupported = 1, + bmdStreamingEncodingModeSupportedWithChanges = 2 +} BMDStreamingEncodingSupport; +typedef enum _BMDStreamingVideoCodec { + bmdStreamingVideoCodecH264 = 0x48323634 +} BMDStreamingVideoCodec; +typedef enum _BMDStreamingH264Profile { + bmdStreamingH264ProfileHigh = 0x68696768, + bmdStreamingH264ProfileMain = 0x6d61696e, + bmdStreamingH264ProfileBaseline = 0x62617365 +} BMDStreamingH264Profile; +typedef enum _BMDStreamingH264Level { + bmdStreamingH264Level12 = 0x6c763132, + bmdStreamingH264Level13 = 0x6c763133, + bmdStreamingH264Level2 = 0x6c763220, + bmdStreamingH264Level21 = 0x6c763231, + bmdStreamingH264Level22 = 0x6c763232, + bmdStreamingH264Level3 = 0x6c763320, + bmdStreamingH264Level31 = 0x6c763331, + bmdStreamingH264Level32 = 0x6c763332, + bmdStreamingH264Level4 = 0x6c763420, + bmdStreamingH264Level41 = 0x6c763431, + bmdStreamingH264Level42 = 0x6c763432 +} BMDStreamingH264Level; +typedef enum _BMDStreamingH264EntropyCoding { + bmdStreamingH264EntropyCodingCAVLC = 0x45564c43, + bmdStreamingH264EntropyCodingCABAC = 0x45424143 +} BMDStreamingH264EntropyCoding; +typedef enum _BMDStreamingAudioCodec { + bmdStreamingAudioCodecAAC = 0x41414320 +} BMDStreamingAudioCodec; +typedef enum _BMDStreamingEncodingModePropertyID { + bmdStreamingEncodingPropertyVideoFrameRate = 0x76667274, + bmdStreamingEncodingPropertyVideoBitRateKbps = 0x76627274, + bmdStreamingEncodingPropertyH264Profile = 0x68707266, + bmdStreamingEncodingPropertyH264Level = 0x686c766c, + bmdStreamingEncodingPropertyH264EntropyCoding = 0x68656e74, + bmdStreamingEncodingPropertyH264HasBFrames = 0x68426672, + bmdStreamingEncodingPropertyAudioCodec = 0x61636463, + bmdStreamingEncodingPropertyAudioSampleRate = 0x61737274, + bmdStreamingEncodingPropertyAudioChannelCount = 0x61636863, + bmdStreamingEncodingPropertyAudioBitRateKbps = 0x61627274 +} BMDStreamingEncodingModePropertyID; +#ifndef __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ +#define __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ +typedef interface IBMDStreamingDeviceNotificationCallback IBMDStreamingDeviceNotificationCallback; +#ifdef __cplusplus +interface IBMDStreamingDeviceNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264InputCallback_FWD_DEFINED__ +#define __IBMDStreamingH264InputCallback_FWD_DEFINED__ +typedef interface IBMDStreamingH264InputCallback IBMDStreamingH264InputCallback; +#ifdef __cplusplus +interface IBMDStreamingH264InputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingDiscovery_FWD_DEFINED__ +#define __IBMDStreamingDiscovery_FWD_DEFINED__ +typedef interface IBMDStreamingDiscovery IBMDStreamingDiscovery; +#ifdef __cplusplus +interface IBMDStreamingDiscovery; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ +#define __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ +typedef interface IBMDStreamingVideoEncodingMode IBMDStreamingVideoEncodingMode; +#ifdef __cplusplus +interface IBMDStreamingVideoEncodingMode; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ +#define __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ +typedef interface IBMDStreamingMutableVideoEncodingMode IBMDStreamingMutableVideoEncodingMode; +#ifdef __cplusplus +interface IBMDStreamingMutableVideoEncodingMode; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ +#define __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ +typedef interface IBMDStreamingVideoEncodingModePresetIterator IBMDStreamingVideoEncodingModePresetIterator; +#ifdef __cplusplus +interface IBMDStreamingVideoEncodingModePresetIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingDeviceInput_FWD_DEFINED__ +#define __IBMDStreamingDeviceInput_FWD_DEFINED__ +typedef interface IBMDStreamingDeviceInput IBMDStreamingDeviceInput; +#ifdef __cplusplus +interface IBMDStreamingDeviceInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264NALPacket_FWD_DEFINED__ +#define __IBMDStreamingH264NALPacket_FWD_DEFINED__ +typedef interface IBMDStreamingH264NALPacket IBMDStreamingH264NALPacket; +#ifdef __cplusplus +interface IBMDStreamingH264NALPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingAudioPacket_FWD_DEFINED__ +#define __IBMDStreamingAudioPacket_FWD_DEFINED__ +typedef interface IBMDStreamingAudioPacket IBMDStreamingAudioPacket; +#ifdef __cplusplus +interface IBMDStreamingAudioPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ +#define __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ +typedef interface IBMDStreamingMPEG2TSPacket IBMDStreamingMPEG2TSPacket; +#ifdef __cplusplus +interface IBMDStreamingMPEG2TSPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IBMDStreamingH264NALParser_FWD_DEFINED__ +#define __IBMDStreamingH264NALParser_FWD_DEFINED__ +typedef interface IBMDStreamingH264NALParser IBMDStreamingH264NALParser; +#ifdef __cplusplus +interface IBMDStreamingH264NALParser; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IBMDStreamingDeviceNotificationCallback interface + */ +#ifndef __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ +#define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingDeviceNotificationCallback, 0xf9531d64, 0x3305, 0x4b29, 0xa3,0x87, 0x7f,0x74,0xbb,0x0d,0x0e,0x84); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f9531d64-3305-4b29-a387-7f74bb0d0e84") +IBMDStreamingDeviceNotificationCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived( + IDeckLink *device) = 0; + + virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved( + IDeckLink *device) = 0; + + virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged( + IDeckLink *device, + BMDStreamingDeviceMode mode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingDeviceNotificationCallback, 0xf9531d64, 0x3305, 0x4b29, 0xa3,0x87, 0x7f,0x74,0xbb,0x0d,0x0e,0x84) +#endif +#else +typedef struct IBMDStreamingDeviceNotificationCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingDeviceNotificationCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingDeviceNotificationCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingDeviceNotificationCallback *This); + + /*** IBMDStreamingDeviceNotificationCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *StreamingDeviceArrived)( + IBMDStreamingDeviceNotificationCallback *This, + IDeckLink *device); + + HRESULT (STDMETHODCALLTYPE *StreamingDeviceRemoved)( + IBMDStreamingDeviceNotificationCallback *This, + IDeckLink *device); + + HRESULT (STDMETHODCALLTYPE *StreamingDeviceModeChanged)( + IBMDStreamingDeviceNotificationCallback *This, + IDeckLink *device, + BMDStreamingDeviceMode mode); + + END_INTERFACE +} IBMDStreamingDeviceNotificationCallbackVtbl; + +interface IBMDStreamingDeviceNotificationCallback { + CONST_VTBL IBMDStreamingDeviceNotificationCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingDeviceNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingDeviceNotificationCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingDeviceNotificationCallback methods ***/ +#define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device) (This)->lpVtbl->StreamingDeviceArrived(This,device) +#define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device) (This)->lpVtbl->StreamingDeviceRemoved(This,device) +#define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode) (This)->lpVtbl->StreamingDeviceModeChanged(This,device,mode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDeviceNotificationCallback_QueryInterface(IBMDStreamingDeviceNotificationCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingDeviceNotificationCallback_AddRef(IBMDStreamingDeviceNotificationCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingDeviceNotificationCallback_Release(IBMDStreamingDeviceNotificationCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingDeviceNotificationCallback methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(IBMDStreamingDeviceNotificationCallback* This,IDeckLink *device) { + return This->lpVtbl->StreamingDeviceArrived(This,device); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(IBMDStreamingDeviceNotificationCallback* This,IDeckLink *device) { + return This->lpVtbl->StreamingDeviceRemoved(This,device); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(IBMDStreamingDeviceNotificationCallback* This,IDeckLink *device,BMDStreamingDeviceMode mode) { + return This->lpVtbl->StreamingDeviceModeChanged(This,device,mode); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingH264InputCallback interface + */ +#ifndef __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ +#define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingH264InputCallback, 0x823c475f, 0x55ae, 0x46f9, 0x89,0x0c, 0x53,0x7c,0xc5,0xce,0xdc,0xca); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("823c475f-55ae-46f9-890c-537cc5cedcca") +IBMDStreamingH264InputCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived( + IBMDStreamingH264NALPacket *nalPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived( + IBMDStreamingAudioPacket *audioPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived( + IBMDStreamingMPEG2TSPacket *tsPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingH264InputCallback, 0x823c475f, 0x55ae, 0x46f9, 0x89,0x0c, 0x53,0x7c,0xc5,0xce,0xdc,0xca) +#endif +#else +typedef struct IBMDStreamingH264InputCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingH264InputCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingH264InputCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingH264InputCallback *This); + + /*** IBMDStreamingH264InputCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *H264NALPacketArrived)( + IBMDStreamingH264InputCallback *This, + IBMDStreamingH264NALPacket *nalPacket); + + HRESULT (STDMETHODCALLTYPE *H264AudioPacketArrived)( + IBMDStreamingH264InputCallback *This, + IBMDStreamingAudioPacket *audioPacket); + + HRESULT (STDMETHODCALLTYPE *MPEG2TSPacketArrived)( + IBMDStreamingH264InputCallback *This, + IBMDStreamingMPEG2TSPacket *tsPacket); + + HRESULT (STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged)( + IBMDStreamingH264InputCallback *This); + + HRESULT (STDMETHODCALLTYPE *H264VideoInputConnectorChanged)( + IBMDStreamingH264InputCallback *This); + + HRESULT (STDMETHODCALLTYPE *H264VideoInputModeChanged)( + IBMDStreamingH264InputCallback *This); + + END_INTERFACE +} IBMDStreamingH264InputCallbackVtbl; + +interface IBMDStreamingH264InputCallback { + CONST_VTBL IBMDStreamingH264InputCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingH264InputCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingH264InputCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingH264InputCallback methods ***/ +#define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket) (This)->lpVtbl->H264NALPacketArrived(This,nalPacket) +#define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket) (This)->lpVtbl->H264AudioPacketArrived(This,audioPacket) +#define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket) (This)->lpVtbl->MPEG2TSPacketArrived(This,tsPacket) +#define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This) (This)->lpVtbl->H264VideoInputConnectorScanningChanged(This) +#define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This) (This)->lpVtbl->H264VideoInputConnectorChanged(This) +#define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This) (This)->lpVtbl->H264VideoInputModeChanged(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_QueryInterface(IBMDStreamingH264InputCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingH264InputCallback_AddRef(IBMDStreamingH264InputCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingH264InputCallback_Release(IBMDStreamingH264InputCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingH264InputCallback methods ***/ +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_H264NALPacketArrived(IBMDStreamingH264InputCallback* This,IBMDStreamingH264NALPacket *nalPacket) { + return This->lpVtbl->H264NALPacketArrived(This,nalPacket); +} +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_H264AudioPacketArrived(IBMDStreamingH264InputCallback* This,IBMDStreamingAudioPacket *audioPacket) { + return This->lpVtbl->H264AudioPacketArrived(This,audioPacket); +} +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(IBMDStreamingH264InputCallback* This,IBMDStreamingMPEG2TSPacket *tsPacket) { + return This->lpVtbl->MPEG2TSPacketArrived(This,tsPacket); +} +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(IBMDStreamingH264InputCallback* This) { + return This->lpVtbl->H264VideoInputConnectorScanningChanged(This); +} +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(IBMDStreamingH264InputCallback* This) { + return This->lpVtbl->H264VideoInputConnectorChanged(This); +} +static FORCEINLINE HRESULT IBMDStreamingH264InputCallback_H264VideoInputModeChanged(IBMDStreamingH264InputCallback* This) { + return This->lpVtbl->H264VideoInputModeChanged(This); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingDiscovery interface + */ +#ifndef __IBMDStreamingDiscovery_INTERFACE_DEFINED__ +#define __IBMDStreamingDiscovery_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingDiscovery, 0x2c837444, 0xf989, 0x4d87, 0x90,0x1a, 0x47,0xc8,0xa3,0x6d,0x09,0x6d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2c837444-f989-4d87-901a-47c8a36d096d") +IBMDStreamingDiscovery : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( + IBMDStreamingDeviceNotificationCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingDiscovery, 0x2c837444, 0xf989, 0x4d87, 0x90,0x1a, 0x47,0xc8,0xa3,0x6d,0x09,0x6d) +#endif +#else +typedef struct IBMDStreamingDiscoveryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingDiscovery *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingDiscovery *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingDiscovery *This); + + /*** IBMDStreamingDiscovery methods ***/ + HRESULT (STDMETHODCALLTYPE *InstallDeviceNotifications)( + IBMDStreamingDiscovery *This, + IBMDStreamingDeviceNotificationCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *UninstallDeviceNotifications)( + IBMDStreamingDiscovery *This); + + END_INTERFACE +} IBMDStreamingDiscoveryVtbl; + +interface IBMDStreamingDiscovery { + CONST_VTBL IBMDStreamingDiscoveryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingDiscovery_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingDiscovery_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingDiscovery methods ***/ +#define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback) (This)->lpVtbl->InstallDeviceNotifications(This,theCallback) +#define IBMDStreamingDiscovery_UninstallDeviceNotifications(This) (This)->lpVtbl->UninstallDeviceNotifications(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDiscovery_QueryInterface(IBMDStreamingDiscovery* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingDiscovery_AddRef(IBMDStreamingDiscovery* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingDiscovery_Release(IBMDStreamingDiscovery* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingDiscovery methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDiscovery_InstallDeviceNotifications(IBMDStreamingDiscovery* This,IBMDStreamingDeviceNotificationCallback *theCallback) { + return This->lpVtbl->InstallDeviceNotifications(This,theCallback); +} +static FORCEINLINE HRESULT IBMDStreamingDiscovery_UninstallDeviceNotifications(IBMDStreamingDiscovery* This) { + return This->lpVtbl->UninstallDeviceNotifications(This); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingDiscovery_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingVideoEncodingMode interface + */ +#ifndef __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ +#define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingVideoEncodingMode, 0x1ab8035b, 0xcd13, 0x458d, 0xb6,0xdf, 0x5e,0x8f,0x7c,0x21,0x41,0xd9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1ab8035b-cd13-458d-b6df-5e8f7c2141d9") +IBMDStreamingVideoEncodingMode : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetName( + BSTR *name) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetPresetID( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetDestWidth( + ) = 0; + + virtual unsigned int STDMETHODCALLTYPE GetDestHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDStreamingEncodingModePropertyID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDStreamingEncodingModePropertyID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDStreamingEncodingModePropertyID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDStreamingEncodingModePropertyID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode( + IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingVideoEncodingMode, 0x1ab8035b, 0xcd13, 0x458d, 0xb6,0xdf, 0x5e,0x8f,0x7c,0x21,0x41,0xd9) +#endif +#else +typedef struct IBMDStreamingVideoEncodingModeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingVideoEncodingMode *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingVideoEncodingMode *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingVideoEncodingMode *This); + + /*** IBMDStreamingVideoEncodingMode methods ***/ + HRESULT (STDMETHODCALLTYPE *GetName)( + IBMDStreamingVideoEncodingMode *This, + BSTR *name); + + unsigned int (STDMETHODCALLTYPE *GetPresetID)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourcePositionX)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourcePositionY)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourceWidth)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourceHeight)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetDestWidth)( + IBMDStreamingVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetDestHeight)( + IBMDStreamingVideoEncodingMode *This); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IBMDStreamingVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IBMDStreamingVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IBMDStreamingVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IBMDStreamingVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *CreateMutableVideoEncodingMode)( + IBMDStreamingVideoEncodingMode *This, + IBMDStreamingMutableVideoEncodingMode **newEncodingMode); + + END_INTERFACE +} IBMDStreamingVideoEncodingModeVtbl; + +interface IBMDStreamingVideoEncodingMode { + CONST_VTBL IBMDStreamingVideoEncodingModeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingVideoEncodingMode_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingVideoEncodingMode_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingVideoEncodingMode methods ***/ +#define IBMDStreamingVideoEncodingMode_GetName(This,name) (This)->lpVtbl->GetName(This,name) +#define IBMDStreamingVideoEncodingMode_GetPresetID(This) (This)->lpVtbl->GetPresetID(This) +#define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This) (This)->lpVtbl->GetSourcePositionX(This) +#define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This) (This)->lpVtbl->GetSourcePositionY(This) +#define IBMDStreamingVideoEncodingMode_GetSourceWidth(This) (This)->lpVtbl->GetSourceWidth(This) +#define IBMDStreamingVideoEncodingMode_GetSourceHeight(This) (This)->lpVtbl->GetSourceHeight(This) +#define IBMDStreamingVideoEncodingMode_GetDestWidth(This) (This)->lpVtbl->GetDestWidth(This) +#define IBMDStreamingVideoEncodingMode_GetDestHeight(This) (This)->lpVtbl->GetDestHeight(This) +#define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode) (This)->lpVtbl->CreateMutableVideoEncodingMode(This,newEncodingMode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_QueryInterface(IBMDStreamingVideoEncodingMode* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingVideoEncodingMode_AddRef(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingVideoEncodingMode_Release(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingVideoEncodingMode methods ***/ +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_GetName(IBMDStreamingVideoEncodingMode* This,BSTR *name) { + return This->lpVtbl->GetName(This,name); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetPresetID(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetPresetID(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetSourcePositionX(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetSourcePositionX(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetSourcePositionY(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetSourcePositionY(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetSourceWidth(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetSourceWidth(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetSourceHeight(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetSourceHeight(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetDestWidth(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetDestWidth(This); +} +static FORCEINLINE unsigned int IBMDStreamingVideoEncodingMode_GetDestHeight(IBMDStreamingVideoEncodingMode* This) { + return This->lpVtbl->GetDestHeight(This); +} +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_GetFlag(IBMDStreamingVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_GetInt(IBMDStreamingVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_GetFloat(IBMDStreamingVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_GetString(IBMDStreamingVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(IBMDStreamingVideoEncodingMode* This,IBMDStreamingMutableVideoEncodingMode **newEncodingMode) { + return This->lpVtbl->CreateMutableVideoEncodingMode(This,newEncodingMode); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingMutableVideoEncodingMode interface + */ +#ifndef __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ +#define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingMutableVideoEncodingMode, 0x19bf7d90, 0x1e0a, 0x400d, 0xb2,0xc6, 0xff,0xc4,0xe7,0x8a,0xd4,0x9d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("19bf7d90-1e0a-400d-b2c6-ffc4e78ad49d") +IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode +{ + virtual HRESULT STDMETHODCALLTYPE SetSourceRect( + unsigned int posX, + unsigned int posY, + unsigned int width, + unsigned int height) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDestSize( + unsigned int width, + unsigned int height) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDStreamingEncodingModePropertyID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDStreamingEncodingModePropertyID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDStreamingEncodingModePropertyID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDStreamingEncodingModePropertyID cfgID, + BSTR value) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingMutableVideoEncodingMode, 0x19bf7d90, 0x1e0a, 0x400d, 0xb2,0xc6, 0xff,0xc4,0xe7,0x8a,0xd4,0x9d) +#endif +#else +typedef struct IBMDStreamingMutableVideoEncodingModeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingMutableVideoEncodingMode *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingMutableVideoEncodingMode *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingMutableVideoEncodingMode *This); + + /*** IBMDStreamingVideoEncodingMode methods ***/ + HRESULT (STDMETHODCALLTYPE *GetName)( + IBMDStreamingMutableVideoEncodingMode *This, + BSTR *name); + + unsigned int (STDMETHODCALLTYPE *GetPresetID)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourcePositionX)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourcePositionY)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourceWidth)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetSourceHeight)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetDestWidth)( + IBMDStreamingMutableVideoEncodingMode *This); + + unsigned int (STDMETHODCALLTYPE *GetDestHeight)( + IBMDStreamingMutableVideoEncodingMode *This); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *CreateMutableVideoEncodingMode)( + IBMDStreamingMutableVideoEncodingMode *This, + IBMDStreamingMutableVideoEncodingMode **newEncodingMode); + + /*** IBMDStreamingMutableVideoEncodingMode methods ***/ + HRESULT (STDMETHODCALLTYPE *SetSourceRect)( + IBMDStreamingMutableVideoEncodingMode *This, + unsigned int posX, + unsigned int posY, + unsigned int width, + unsigned int height); + + HRESULT (STDMETHODCALLTYPE *SetDestSize)( + IBMDStreamingMutableVideoEncodingMode *This, + unsigned int width, + unsigned int height); + + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IBMDStreamingMutableVideoEncodingMode *This, + BMDStreamingEncodingModePropertyID cfgID, + BSTR value); + + END_INTERFACE +} IBMDStreamingMutableVideoEncodingModeVtbl; + +interface IBMDStreamingMutableVideoEncodingMode { + CONST_VTBL IBMDStreamingMutableVideoEncodingModeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingMutableVideoEncodingMode_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingMutableVideoEncodingMode_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingVideoEncodingMode methods ***/ +#define IBMDStreamingMutableVideoEncodingMode_GetName(This,name) (This)->lpVtbl->GetName(This,name) +#define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This) (This)->lpVtbl->GetPresetID(This) +#define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This) (This)->lpVtbl->GetSourcePositionX(This) +#define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This) (This)->lpVtbl->GetSourcePositionY(This) +#define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This) (This)->lpVtbl->GetSourceWidth(This) +#define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This) (This)->lpVtbl->GetSourceHeight(This) +#define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This) (This)->lpVtbl->GetDestWidth(This) +#define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This) (This)->lpVtbl->GetDestHeight(This) +#define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode) (This)->lpVtbl->CreateMutableVideoEncodingMode(This,newEncodingMode) +/*** IBMDStreamingMutableVideoEncodingMode methods ***/ +#define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height) (This)->lpVtbl->SetSourceRect(This,posX,posY,width,height) +#define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height) (This)->lpVtbl->SetDestSize(This,width,height) +#define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_QueryInterface(IBMDStreamingMutableVideoEncodingMode* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingMutableVideoEncodingMode_AddRef(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingMutableVideoEncodingMode_Release(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingVideoEncodingMode methods ***/ +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_GetName(IBMDStreamingMutableVideoEncodingMode* This,BSTR *name) { + return This->lpVtbl->GetName(This,name); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetPresetID(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetPresetID(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetSourcePositionX(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetSourcePositionY(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetSourceWidth(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetSourceHeight(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetDestWidth(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetDestWidth(This); +} +static FORCEINLINE unsigned int IBMDStreamingMutableVideoEncodingMode_GetDestHeight(IBMDStreamingMutableVideoEncodingMode* This) { + return This->lpVtbl->GetDestHeight(This); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_GetFlag(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_GetInt(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_GetFloat(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_GetString(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(IBMDStreamingMutableVideoEncodingMode* This,IBMDStreamingMutableVideoEncodingMode **newEncodingMode) { + return This->lpVtbl->CreateMutableVideoEncodingMode(This,newEncodingMode); +} +/*** IBMDStreamingMutableVideoEncodingMode methods ***/ +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetSourceRect(IBMDStreamingMutableVideoEncodingMode* This,unsigned int posX,unsigned int posY,unsigned int width,unsigned int height) { + return This->lpVtbl->SetSourceRect(This,posX,posY,width,height); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetDestSize(IBMDStreamingMutableVideoEncodingMode* This,unsigned int width,unsigned int height) { + return This->lpVtbl->SetDestSize(This,width,height); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetFlag(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetInt(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetFloat(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IBMDStreamingMutableVideoEncodingMode_SetString(IBMDStreamingMutableVideoEncodingMode* This,BMDStreamingEncodingModePropertyID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingVideoEncodingModePresetIterator interface + */ +#ifndef __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ +#define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingVideoEncodingModePresetIterator, 0x7ac731a3, 0xc950, 0x4ad0, 0x80,0x4a, 0x83,0x77,0xaa,0x51,0xc6,0xc4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7ac731a3-c950-4ad0-804a-8377aa51c6c4") +IBMDStreamingVideoEncodingModePresetIterator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingVideoEncodingModePresetIterator, 0x7ac731a3, 0xc950, 0x4ad0, 0x80,0x4a, 0x83,0x77,0xaa,0x51,0xc6,0xc4) +#endif +#else +typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingVideoEncodingModePresetIterator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingVideoEncodingModePresetIterator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingVideoEncodingModePresetIterator *This); + + /*** IBMDStreamingVideoEncodingModePresetIterator methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IBMDStreamingVideoEncodingModePresetIterator *This, + IBMDStreamingVideoEncodingMode **videoEncodingMode); + + END_INTERFACE +} IBMDStreamingVideoEncodingModePresetIteratorVtbl; + +interface IBMDStreamingVideoEncodingModePresetIterator { + CONST_VTBL IBMDStreamingVideoEncodingModePresetIteratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingVideoEncodingModePresetIterator_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingVideoEncodingModePresetIterator methods ***/ +#define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode) (This)->lpVtbl->Next(This,videoEncodingMode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(IBMDStreamingVideoEncodingModePresetIterator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingVideoEncodingModePresetIterator_AddRef(IBMDStreamingVideoEncodingModePresetIterator* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingVideoEncodingModePresetIterator_Release(IBMDStreamingVideoEncodingModePresetIterator* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingVideoEncodingModePresetIterator methods ***/ +static FORCEINLINE HRESULT IBMDStreamingVideoEncodingModePresetIterator_Next(IBMDStreamingVideoEncodingModePresetIterator* This,IBMDStreamingVideoEncodingMode **videoEncodingMode) { + return This->lpVtbl->Next(This,videoEncodingMode); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingDeviceInput interface + */ +#ifndef __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ +#define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingDeviceInput, 0x24b6b6ec, 0x1727, 0x44bb, 0x98,0x18, 0x34,0xff,0x08,0x6a,0xcf,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("24b6b6ec-1727-44bb-9818-34ff086acf98") +IBMDStreamingDeviceInput : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode( + BMDDisplayMode inputMode, + BOOL *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode( + BMDDisplayMode inputMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode( + BMDDisplayMode *detectedMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode( + IBMDStreamingVideoEncodingMode **encodingMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator( + BMDDisplayMode inputMode, + IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode( + BMDDisplayMode inputMode, + IBMDStreamingVideoEncodingMode *encodingMode, + BMDStreamingEncodingSupport *result, + IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode( + IBMDStreamingVideoEncodingMode *encodingMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopCapture( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IUnknown *theCallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingDeviceInput, 0x24b6b6ec, 0x1727, 0x44bb, 0x98,0x18, 0x34,0xff,0x08,0x6a,0xcf,0x98) +#endif +#else +typedef struct IBMDStreamingDeviceInputVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingDeviceInput *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingDeviceInput *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingDeviceInput *This); + + /*** IBMDStreamingDeviceInput methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoInputMode)( + IBMDStreamingDeviceInput *This, + BMDDisplayMode inputMode, + BOOL *result); + + HRESULT (STDMETHODCALLTYPE *GetVideoInputModeIterator)( + IBMDStreamingDeviceInput *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *SetVideoInputMode)( + IBMDStreamingDeviceInput *This, + BMDDisplayMode inputMode); + + HRESULT (STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode)( + IBMDStreamingDeviceInput *This, + BMDDisplayMode *detectedMode); + + HRESULT (STDMETHODCALLTYPE *GetVideoEncodingMode)( + IBMDStreamingDeviceInput *This, + IBMDStreamingVideoEncodingMode **encodingMode); + + HRESULT (STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator)( + IBMDStreamingDeviceInput *This, + BMDDisplayMode inputMode, + IBMDStreamingVideoEncodingModePresetIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoEncodingMode)( + IBMDStreamingDeviceInput *This, + BMDDisplayMode inputMode, + IBMDStreamingVideoEncodingMode *encodingMode, + BMDStreamingEncodingSupport *result, + IBMDStreamingVideoEncodingMode **changedEncodingMode); + + HRESULT (STDMETHODCALLTYPE *SetVideoEncodingMode)( + IBMDStreamingDeviceInput *This, + IBMDStreamingVideoEncodingMode *encodingMode); + + HRESULT (STDMETHODCALLTYPE *StartCapture)( + IBMDStreamingDeviceInput *This); + + HRESULT (STDMETHODCALLTYPE *StopCapture)( + IBMDStreamingDeviceInput *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IBMDStreamingDeviceInput *This, + IUnknown *theCallback); + + END_INTERFACE +} IBMDStreamingDeviceInputVtbl; + +interface IBMDStreamingDeviceInput { + CONST_VTBL IBMDStreamingDeviceInputVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingDeviceInput_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingDeviceInput_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingDeviceInput methods ***/ +#define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result) (This)->lpVtbl->DoesSupportVideoInputMode(This,inputMode,result) +#define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator) (This)->lpVtbl->GetVideoInputModeIterator(This,iterator) +#define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode) (This)->lpVtbl->SetVideoInputMode(This,inputMode) +#define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode) (This)->lpVtbl->GetCurrentDetectedVideoInputMode(This,detectedMode) +#define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode) (This)->lpVtbl->GetVideoEncodingMode(This,encodingMode) +#define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator) (This)->lpVtbl->GetVideoEncodingModePresetIterator(This,inputMode,iterator) +#define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) (This)->lpVtbl->DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) +#define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode) (This)->lpVtbl->SetVideoEncodingMode(This,encodingMode) +#define IBMDStreamingDeviceInput_StartCapture(This) (This)->lpVtbl->StartCapture(This) +#define IBMDStreamingDeviceInput_StopCapture(This) (This)->lpVtbl->StopCapture(This) +#define IBMDStreamingDeviceInput_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_QueryInterface(IBMDStreamingDeviceInput* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingDeviceInput_AddRef(IBMDStreamingDeviceInput* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingDeviceInput_Release(IBMDStreamingDeviceInput* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingDeviceInput methods ***/ +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_DoesSupportVideoInputMode(IBMDStreamingDeviceInput* This,BMDDisplayMode inputMode,BOOL *result) { + return This->lpVtbl->DoesSupportVideoInputMode(This,inputMode,result); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_GetVideoInputModeIterator(IBMDStreamingDeviceInput* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetVideoInputModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_SetVideoInputMode(IBMDStreamingDeviceInput* This,BMDDisplayMode inputMode) { + return This->lpVtbl->SetVideoInputMode(This,inputMode); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(IBMDStreamingDeviceInput* This,BMDDisplayMode *detectedMode) { + return This->lpVtbl->GetCurrentDetectedVideoInputMode(This,detectedMode); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_GetVideoEncodingMode(IBMDStreamingDeviceInput* This,IBMDStreamingVideoEncodingMode **encodingMode) { + return This->lpVtbl->GetVideoEncodingMode(This,encodingMode); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(IBMDStreamingDeviceInput* This,BMDDisplayMode inputMode,IBMDStreamingVideoEncodingModePresetIterator **iterator) { + return This->lpVtbl->GetVideoEncodingModePresetIterator(This,inputMode,iterator); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(IBMDStreamingDeviceInput* This,BMDDisplayMode inputMode,IBMDStreamingVideoEncodingMode *encodingMode,BMDStreamingEncodingSupport *result,IBMDStreamingVideoEncodingMode **changedEncodingMode) { + return This->lpVtbl->DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_SetVideoEncodingMode(IBMDStreamingDeviceInput* This,IBMDStreamingVideoEncodingMode *encodingMode) { + return This->lpVtbl->SetVideoEncodingMode(This,encodingMode); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_StartCapture(IBMDStreamingDeviceInput* This) { + return This->lpVtbl->StartCapture(This); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_StopCapture(IBMDStreamingDeviceInput* This) { + return This->lpVtbl->StopCapture(This); +} +static FORCEINLINE HRESULT IBMDStreamingDeviceInput_SetCallback(IBMDStreamingDeviceInput* This,IUnknown *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingH264NALPacket interface + */ +#ifndef __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ +#define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingH264NALPacket, 0xe260e955, 0x14be, 0x4395, 0x97,0x75, 0x9f,0x02,0xcc,0x0a,0x9d,0x89); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e260e955-14be-4395-9775-9f02cc0a9d89") +IBMDStreamingH264NALPacket : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetPayloadSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayTime( + ULONGLONG requestedTimeScale, + ULONGLONG *displayTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( + unsigned int *packetIndex) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingH264NALPacket, 0xe260e955, 0x14be, 0x4395, 0x97,0x75, 0x9f,0x02,0xcc,0x0a,0x9d,0x89) +#endif +#else +typedef struct IBMDStreamingH264NALPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingH264NALPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingH264NALPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingH264NALPacket *This); + + /*** IBMDStreamingH264NALPacket methods ***/ + LONG (STDMETHODCALLTYPE *GetPayloadSize)( + IBMDStreamingH264NALPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IBMDStreamingH264NALPacket *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetBytesWithSizePrefix)( + IBMDStreamingH264NALPacket *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetDisplayTime)( + IBMDStreamingH264NALPacket *This, + ULONGLONG requestedTimeScale, + ULONGLONG *displayTime); + + HRESULT (STDMETHODCALLTYPE *GetPacketIndex)( + IBMDStreamingH264NALPacket *This, + unsigned int *packetIndex); + + END_INTERFACE +} IBMDStreamingH264NALPacketVtbl; + +interface IBMDStreamingH264NALPacket { + CONST_VTBL IBMDStreamingH264NALPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingH264NALPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingH264NALPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingH264NALPacket methods ***/ +#define IBMDStreamingH264NALPacket_GetPayloadSize(This) (This)->lpVtbl->GetPayloadSize(This) +#define IBMDStreamingH264NALPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(This,buffer) (This)->lpVtbl->GetBytesWithSizePrefix(This,buffer) +#define IBMDStreamingH264NALPacket_GetDisplayTime(This,requestedTimeScale,displayTime) (This)->lpVtbl->GetDisplayTime(This,requestedTimeScale,displayTime) +#define IBMDStreamingH264NALPacket_GetPacketIndex(This,packetIndex) (This)->lpVtbl->GetPacketIndex(This,packetIndex) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingH264NALPacket_QueryInterface(IBMDStreamingH264NALPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingH264NALPacket_AddRef(IBMDStreamingH264NALPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingH264NALPacket_Release(IBMDStreamingH264NALPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingH264NALPacket methods ***/ +static FORCEINLINE LONG IBMDStreamingH264NALPacket_GetPayloadSize(IBMDStreamingH264NALPacket* This) { + return This->lpVtbl->GetPayloadSize(This); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALPacket_GetBytes(IBMDStreamingH264NALPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(IBMDStreamingH264NALPacket* This,void **buffer) { + return This->lpVtbl->GetBytesWithSizePrefix(This,buffer); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALPacket_GetDisplayTime(IBMDStreamingH264NALPacket* This,ULONGLONG requestedTimeScale,ULONGLONG *displayTime) { + return This->lpVtbl->GetDisplayTime(This,requestedTimeScale,displayTime); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALPacket_GetPacketIndex(IBMDStreamingH264NALPacket* This,unsigned int *packetIndex) { + return This->lpVtbl->GetPacketIndex(This,packetIndex); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingAudioPacket interface + */ +#ifndef __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ +#define __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingAudioPacket, 0xd9eb5902, 0x1ad2, 0x43f4, 0x9e,0x2c, 0x3c,0xfa,0x50,0xb5,0xee,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d9eb5902-1ad2-43f4-9e2c-3cfa50b5ee19") +IBMDStreamingAudioPacket : public IUnknown +{ + virtual BMDStreamingAudioCodec STDMETHODCALLTYPE GetCodec( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetPayloadSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPlayTime( + ULONGLONG requestedTimeScale, + ULONGLONG *playTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( + unsigned int *packetIndex) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingAudioPacket, 0xd9eb5902, 0x1ad2, 0x43f4, 0x9e,0x2c, 0x3c,0xfa,0x50,0xb5,0xee,0x19) +#endif +#else +typedef struct IBMDStreamingAudioPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingAudioPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingAudioPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingAudioPacket *This); + + /*** IBMDStreamingAudioPacket methods ***/ + BMDStreamingAudioCodec (STDMETHODCALLTYPE *GetCodec)( + IBMDStreamingAudioPacket *This); + + LONG (STDMETHODCALLTYPE *GetPayloadSize)( + IBMDStreamingAudioPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IBMDStreamingAudioPacket *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetPlayTime)( + IBMDStreamingAudioPacket *This, + ULONGLONG requestedTimeScale, + ULONGLONG *playTime); + + HRESULT (STDMETHODCALLTYPE *GetPacketIndex)( + IBMDStreamingAudioPacket *This, + unsigned int *packetIndex); + + END_INTERFACE +} IBMDStreamingAudioPacketVtbl; + +interface IBMDStreamingAudioPacket { + CONST_VTBL IBMDStreamingAudioPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingAudioPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingAudioPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingAudioPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingAudioPacket methods ***/ +#define IBMDStreamingAudioPacket_GetCodec(This) (This)->lpVtbl->GetCodec(This) +#define IBMDStreamingAudioPacket_GetPayloadSize(This) (This)->lpVtbl->GetPayloadSize(This) +#define IBMDStreamingAudioPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IBMDStreamingAudioPacket_GetPlayTime(This,requestedTimeScale,playTime) (This)->lpVtbl->GetPlayTime(This,requestedTimeScale,playTime) +#define IBMDStreamingAudioPacket_GetPacketIndex(This,packetIndex) (This)->lpVtbl->GetPacketIndex(This,packetIndex) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingAudioPacket_QueryInterface(IBMDStreamingAudioPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingAudioPacket_AddRef(IBMDStreamingAudioPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingAudioPacket_Release(IBMDStreamingAudioPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingAudioPacket methods ***/ +static FORCEINLINE BMDStreamingAudioCodec IBMDStreamingAudioPacket_GetCodec(IBMDStreamingAudioPacket* This) { + return This->lpVtbl->GetCodec(This); +} +static FORCEINLINE LONG IBMDStreamingAudioPacket_GetPayloadSize(IBMDStreamingAudioPacket* This) { + return This->lpVtbl->GetPayloadSize(This); +} +static FORCEINLINE HRESULT IBMDStreamingAudioPacket_GetBytes(IBMDStreamingAudioPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IBMDStreamingAudioPacket_GetPlayTime(IBMDStreamingAudioPacket* This,ULONGLONG requestedTimeScale,ULONGLONG *playTime) { + return This->lpVtbl->GetPlayTime(This,requestedTimeScale,playTime); +} +static FORCEINLINE HRESULT IBMDStreamingAudioPacket_GetPacketIndex(IBMDStreamingAudioPacket* This,unsigned int *packetIndex) { + return This->lpVtbl->GetPacketIndex(This,packetIndex); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingMPEG2TSPacket interface + */ +#ifndef __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ +#define __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingMPEG2TSPacket, 0x91810d1c, 0x4fb3, 0x4aaa, 0xae,0x56, 0xfa,0x30,0x1d,0x3d,0xfa,0x4c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("91810d1c-4fb3-4aaa-ae56-fa301d3dfa4c") +IBMDStreamingMPEG2TSPacket : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetPayloadSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingMPEG2TSPacket, 0x91810d1c, 0x4fb3, 0x4aaa, 0xae,0x56, 0xfa,0x30,0x1d,0x3d,0xfa,0x4c) +#endif +#else +typedef struct IBMDStreamingMPEG2TSPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingMPEG2TSPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingMPEG2TSPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingMPEG2TSPacket *This); + + /*** IBMDStreamingMPEG2TSPacket methods ***/ + LONG (STDMETHODCALLTYPE *GetPayloadSize)( + IBMDStreamingMPEG2TSPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IBMDStreamingMPEG2TSPacket *This, + void **buffer); + + END_INTERFACE +} IBMDStreamingMPEG2TSPacketVtbl; + +interface IBMDStreamingMPEG2TSPacket { + CONST_VTBL IBMDStreamingMPEG2TSPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingMPEG2TSPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingMPEG2TSPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingMPEG2TSPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingMPEG2TSPacket methods ***/ +#define IBMDStreamingMPEG2TSPacket_GetPayloadSize(This) (This)->lpVtbl->GetPayloadSize(This) +#define IBMDStreamingMPEG2TSPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingMPEG2TSPacket_QueryInterface(IBMDStreamingMPEG2TSPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingMPEG2TSPacket_AddRef(IBMDStreamingMPEG2TSPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingMPEG2TSPacket_Release(IBMDStreamingMPEG2TSPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingMPEG2TSPacket methods ***/ +static FORCEINLINE LONG IBMDStreamingMPEG2TSPacket_GetPayloadSize(IBMDStreamingMPEG2TSPacket* This) { + return This->lpVtbl->GetPayloadSize(This); +} +static FORCEINLINE HRESULT IBMDStreamingMPEG2TSPacket_GetBytes(IBMDStreamingMPEG2TSPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBMDStreamingH264NALParser interface + */ +#ifndef __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ +#define __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBMDStreamingH264NALParser, 0x5867f18c, 0x5bfa, 0x4ccc, 0xb2,0xa7, 0x9d,0xfd,0x14,0x04,0x17,0xd2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5867f18c-5bfa-4ccc-b2a7-9dfd140417d2") +IBMDStreamingH264NALParser : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet( + IBMDStreamingH264NALPacket *nal) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet( + IBMDStreamingH264NALPacket *nal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS( + IBMDStreamingH264NALPacket *nal, + unsigned int *profileIdc, + unsigned int *profileCompatability, + unsigned int *levelIdc) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBMDStreamingH264NALParser, 0x5867f18c, 0x5bfa, 0x4ccc, 0xb2,0xa7, 0x9d,0xfd,0x14,0x04,0x17,0xd2) +#endif +#else +typedef struct IBMDStreamingH264NALParserVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBMDStreamingH264NALParser *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBMDStreamingH264NALParser *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBMDStreamingH264NALParser *This); + + /*** IBMDStreamingH264NALParser methods ***/ + HRESULT (STDMETHODCALLTYPE *IsNALSequenceParameterSet)( + IBMDStreamingH264NALParser *This, + IBMDStreamingH264NALPacket *nal); + + HRESULT (STDMETHODCALLTYPE *IsNALPictureParameterSet)( + IBMDStreamingH264NALParser *This, + IBMDStreamingH264NALPacket *nal); + + HRESULT (STDMETHODCALLTYPE *GetProfileAndLevelFromSPS)( + IBMDStreamingH264NALParser *This, + IBMDStreamingH264NALPacket *nal, + unsigned int *profileIdc, + unsigned int *profileCompatability, + unsigned int *levelIdc); + + END_INTERFACE +} IBMDStreamingH264NALParserVtbl; + +interface IBMDStreamingH264NALParser { + CONST_VTBL IBMDStreamingH264NALParserVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBMDStreamingH264NALParser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBMDStreamingH264NALParser_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBMDStreamingH264NALParser_Release(This) (This)->lpVtbl->Release(This) +/*** IBMDStreamingH264NALParser methods ***/ +#define IBMDStreamingH264NALParser_IsNALSequenceParameterSet(This,nal) (This)->lpVtbl->IsNALSequenceParameterSet(This,nal) +#define IBMDStreamingH264NALParser_IsNALPictureParameterSet(This,nal) (This)->lpVtbl->IsNALPictureParameterSet(This,nal) +#define IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) (This)->lpVtbl->GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBMDStreamingH264NALParser_QueryInterface(IBMDStreamingH264NALParser* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBMDStreamingH264NALParser_AddRef(IBMDStreamingH264NALParser* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBMDStreamingH264NALParser_Release(IBMDStreamingH264NALParser* This) { + return This->lpVtbl->Release(This); +} +/*** IBMDStreamingH264NALParser methods ***/ +static FORCEINLINE HRESULT IBMDStreamingH264NALParser_IsNALSequenceParameterSet(IBMDStreamingH264NALParser* This,IBMDStreamingH264NALPacket *nal) { + return This->lpVtbl->IsNALSequenceParameterSet(This,nal); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALParser_IsNALPictureParameterSet(IBMDStreamingH264NALParser* This,IBMDStreamingH264NALPacket *nal) { + return This->lpVtbl->IsNALPictureParameterSet(This,nal); +} +static FORCEINLINE HRESULT IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(IBMDStreamingH264NALParser* This,IBMDStreamingH264NALPacket *nal,unsigned int *profileIdc,unsigned int *profileCompatability,unsigned int *levelIdc) { + return This->lpVtbl->GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc); +} +#endif +#endif + +#endif + + +#endif /* __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CBMDStreamingDiscovery coclass + */ + +DEFINE_GUID(CLSID_CBMDStreamingDiscovery, 0x23a4edf5, 0xa0e5, 0x432c, 0x94,0xef, 0x3b,0xab,0xb5,0xf8,0x1c,0x82); + +#ifdef __cplusplus +class DECLSPEC_UUID("23a4edf5-a0e5-432c-94ef-3babb5f81c82") CBMDStreamingDiscovery; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CBMDStreamingDiscovery, 0x23a4edf5, 0xa0e5, 0x432c, 0x94,0xef, 0x3b,0xab,0xb5,0xf8,0x1c,0x82) +#endif +#endif + +/***************************************************************************** + * CBMDStreamingH264NALParser coclass + */ + +DEFINE_GUID(CLSID_CBMDStreamingH264NALParser, 0x7753efbd, 0x951c, 0x407c, 0x97,0xa5, 0x23,0xc7,0x37,0xb7,0x3b,0x52); + +#ifdef __cplusplus +class DECLSPEC_UUID("7753efbd-951c-407c-97a5-23c737b73b52") CBMDStreamingH264NALParser; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CBMDStreamingH264NALParser, 0x7753efbd, 0x951c, 0x407c, 0x97,0xa5, 0x23,0xc7,0x37,0xb7,0x3b,0x52) +#endif +#endif + +typedef unsigned int BMDFrameFlags; +typedef unsigned int BMDVideoInputFlags; +typedef unsigned int BMDVideoInputFormatChangedEvents; +typedef unsigned int BMDDetectedVideoInputFormatFlags; +typedef unsigned int BMDDeckLinkCapturePassthroughMode; +typedef unsigned int BMDAnalogVideoFlags; +typedef unsigned int BMDDeviceBusyState; +#if 0 +typedef enum _BMDFrameFlags BMDFrameFlags; +typedef enum _BMDVideoInputFlags BMDVideoInputFlags; +typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents; +typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags; +typedef enum _BMDDeckLinkCapturePassthroughMode BMDDeckLinkCapturePassthroughMode; +typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags; +typedef enum _BMDDeviceBusyState BMDDeviceBusyState; +#endif +typedef enum _BMDVideoOutputFlags { + bmdVideoOutputFlagDefault = 0, + bmdVideoOutputVANC = 1 << 0, + bmdVideoOutputVITC = 1 << 1, + bmdVideoOutputRP188 = 1 << 2, + bmdVideoOutputDualStream3D = 1 << 4 +} BMDVideoOutputFlags; +typedef enum _BMDPacketType { + bmdPacketTypeStreamInterruptedMarker = 0x73696e74, + bmdPacketTypeStreamData = 0x73646174 +} BMDPacketType; +enum _BMDFrameFlags { + bmdFrameFlagDefault = 0, + bmdFrameFlagFlipVertical = 1 << 0, + bmdFrameContainsHDRMetadata = 1 << 1, + bmdFrameContainsCintelMetadata = 1 << 2, + bmdFrameHasNoInputSource = 1 << 31 +}; +enum _BMDVideoInputFlags { + bmdVideoInputFlagDefault = 0, + bmdVideoInputEnableFormatDetection = 1 << 0, + bmdVideoInputDualStream3D = 1 << 1 +}; +enum _BMDVideoInputFormatChangedEvents { + bmdVideoInputDisplayModeChanged = 1 << 0, + bmdVideoInputFieldDominanceChanged = 1 << 1, + bmdVideoInputColorspaceChanged = 1 << 2 +}; +enum _BMDDetectedVideoInputFormatFlags { + bmdDetectedVideoInputYCbCr422 = 1 << 0, + bmdDetectedVideoInputRGB444 = 1 << 1, + bmdDetectedVideoInputDualStream3D = 1 << 2 +}; +enum _BMDDeckLinkCapturePassthroughMode { + bmdDeckLinkCapturePassthroughModeDisabled = 0x70646973, + bmdDeckLinkCapturePassthroughModeDirect = 0x70646972, + bmdDeckLinkCapturePassthroughModeCleanSwitch = 0x70636c6e +}; +typedef enum _BMDOutputFrameCompletionResult { + bmdOutputFrameCompleted = 0, + bmdOutputFrameDisplayedLate = 1, + bmdOutputFrameDropped = 2, + bmdOutputFrameFlushed = 3 +} BMDOutputFrameCompletionResult; +typedef enum _BMDReferenceStatus { + bmdReferenceNotSupportedByHardware = 1 << 0, + bmdReferenceLocked = 1 << 1 +} BMDReferenceStatus; +typedef enum _BMDAudioFormat { + bmdAudioFormatPCM = 0x6c70636d +} BMDAudioFormat; +typedef enum _BMDAudioSampleRate { + bmdAudioSampleRate48kHz = 48000 +} BMDAudioSampleRate; +typedef enum _BMDAudioSampleType { + bmdAudioSampleType16bitInteger = 16, + bmdAudioSampleType32bitInteger = 32 +} BMDAudioSampleType; +typedef enum _BMDAudioOutputStreamType { + bmdAudioOutputStreamContinuous = 0, + bmdAudioOutputStreamContinuousDontResample = 1, + bmdAudioOutputStreamTimestamped = 2 +} BMDAudioOutputStreamType; +typedef enum _BMDDisplayModeSupport { + bmdDisplayModeNotSupported = 0, + bmdDisplayModeSupported = 1, + bmdDisplayModeSupportedWithConversion = 2 +} BMDDisplayModeSupport; +typedef enum _BMDTimecodeFormat { + bmdTimecodeRP188VITC1 = 0x72707631, + bmdTimecodeRP188VITC2 = 0x72703132, + bmdTimecodeRP188LTC = 0x72706c74, + bmdTimecodeRP188Any = 0x72703138, + bmdTimecodeVITC = 0x76697463, + bmdTimecodeVITCField2 = 0x76697432, + bmdTimecodeSerial = 0x73657269 +} BMDTimecodeFormat; +enum _BMDAnalogVideoFlags { + bmdAnalogVideoFlagCompositeSetup75 = 1 << 0, + bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1 +}; +typedef enum _BMDAudioOutputAnalogAESSwitch { + bmdAudioOutputSwitchAESEBU = 0x61657320, + bmdAudioOutputSwitchAnalog = 0x616e6c67 +} BMDAudioOutputAnalogAESSwitch; +typedef enum _BMDVideoOutputConversionMode { + bmdNoVideoOutputConversion = 0x6e6f6e65, + bmdVideoOutputLetterboxDownconversion = 0x6c746278, + bmdVideoOutputAnamorphicDownconversion = 0x616d7068, + bmdVideoOutputHD720toHD1080Conversion = 0x37323063, + bmdVideoOutputHardwareLetterboxDownconversion = 0x48576c62, + bmdVideoOutputHardwareAnamorphicDownconversion = 0x4857616d, + bmdVideoOutputHardwareCenterCutDownconversion = 0x48576363, + bmdVideoOutputHardware720p1080pCrossconversion = 0x78636170, + bmdVideoOutputHardwareAnamorphic720pUpconversion = 0x75613770, + bmdVideoOutputHardwareAnamorphic1080iUpconversion = 0x75613169, + bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 0x75343770, + bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 0x75343169, + bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770, + bmdVideoOutputHardwarePillarbox1080iUpconversion = 0x75703169 +} BMDVideoOutputConversionMode; +typedef enum _BMDVideoInputConversionMode { + bmdNoVideoInputConversion = 0x6e6f6e65, + bmdVideoInputLetterboxDownconversionFromHD1080 = 0x31306c62, + bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d, + bmdVideoInputLetterboxDownconversionFromHD720 = 0x37326c62, + bmdVideoInputAnamorphicDownconversionFromHD720 = 0x3732616d, + bmdVideoInputLetterboxUpconversion = 0x6c627570, + bmdVideoInputAnamorphicUpconversion = 0x616d7570 +} BMDVideoInputConversionMode; +typedef enum _BMDVideo3DPackingFormat { + bmdVideo3DPackingSidebySideHalf = 0x73627368, + bmdVideo3DPackingLinebyLine = 0x6c62796c, + bmdVideo3DPackingTopAndBottom = 0x7461626f, + bmdVideo3DPackingFramePacking = 0x6672706b, + bmdVideo3DPackingLeftOnly = 0x6c656674, + bmdVideo3DPackingRightOnly = 0x72696768 +} BMDVideo3DPackingFormat; +typedef enum _BMDIdleVideoOutputOperation { + bmdIdleVideoOutputBlack = 0x626c6163, + bmdIdleVideoOutputLastFrame = 0x6c616661 +} BMDIdleVideoOutputOperation; +typedef enum _BMDVideoEncoderFrameCodingMode { + bmdVideoEncoderFrameCodingModeInter = 0x696e7465, + bmdVideoEncoderFrameCodingModeIntra = 0x696e7472 +} BMDVideoEncoderFrameCodingMode; +typedef enum _BMDDNxHRLevel { + bmdDNxHRLevelSQ = 0x646e7371, + bmdDNxHRLevelLB = 0x646e6c62, + bmdDNxHRLevelHQ = 0x646e6871, + bmdDNxHRLevelHQX = 0x64687178, + bmdDNxHRLevel444 = 0x64343434 +} BMDDNxHRLevel; +typedef enum _BMDLinkConfiguration { + bmdLinkConfigurationSingleLink = 0x6c63736c, + bmdLinkConfigurationDualLink = 0x6c63646c, + bmdLinkConfigurationQuadLink = 0x6c63716c +} BMDLinkConfiguration; +typedef enum _BMDDeviceInterface { + bmdDeviceInterfacePCI = 0x70636920, + bmdDeviceInterfaceUSB = 0x75736220, + bmdDeviceInterfaceThunderbolt = 0x7468756e +} BMDDeviceInterface; +typedef enum _BMDDeckLinkFrameMetadataID { + bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc = 0x656f7466, + bmdDeckLinkFrameMetadataCintelFilmType = 0x63667479, + bmdDeckLinkFrameMetadataCintelFilmGauge = 0x63666761, + bmdDeckLinkFrameMetadataCintelOffsetDetectedHorizontal = 0x6f646668, + bmdDeckLinkFrameMetadataCintelOffsetDetectedVertical = 0x6f646676, + bmdDeckLinkFrameMetadataCintelOffsetAppliedHorizontal = 0x6f646168, + bmdDeckLinkFrameMetadataCintelOffsetAppliedVertical = 0x6f646176, + bmdDeckLinkFrameMetadataCintelKeykodeLow = 0x636b6b6c, + bmdDeckLinkFrameMetadataCintelKeykodeHigh = 0x636b6b68, + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed = 0x6d726972, + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed = 0x6d676972, + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed = 0x6d626972, + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen = 0x6d726967, + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen = 0x6d676967, + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = 0x6d626967, + bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue = 0x6d726962, + bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = 0x6d676962, + bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue = 0x6d626962, + bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed = 0x6d6c7272, + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed = 0x6d6c6772, + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed = 0x6d6c6272, + bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen = 0x6d6c7267, + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen = 0x6d6c6767, + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen = 0x6d6c6267, + bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue = 0x6d6c7262, + bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue = 0x6d6c6762, + bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue = 0x6d6c6262, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX = 0x68647278, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY = 0x68647279, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX = 0x68646778, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY = 0x68646779, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX = 0x68646278, + bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY = 0x68646279, + bmdDeckLinkFrameMetadataHDRWhitePointX = 0x68647778, + bmdDeckLinkFrameMetadataHDRWhitePointY = 0x68647779, + bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance = 0x68646d6c, + bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance = 0x686d696c, + bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel = 0x6d636c6c, + bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = 0x66616c6c, + bmdDeckLinkFrameMetadataCintel16mmCropRequired = 0x63313663, + bmdDeckLinkFrameMetadataCintelInversionRequired = 0x63696e76, + bmdDeckLinkFrameMetadataCintelFlipRequired = 0x63666c72, + bmdDeckLinkFrameMetadataCintelFocusAssistEnabled = 0x63666165, + bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated = 0x6b6b6969 +} BMDDeckLinkFrameMetadataID; +typedef enum _BMDDuplexMode { + bmdDuplexModeFull = 0x66647570, + bmdDuplexModeHalf = 0x68647570 +} BMDDuplexMode; +typedef enum _BMDDeckLinkAttributeID { + BMDDeckLinkSupportsInternalKeying = 0x6b657969, + BMDDeckLinkSupportsExternalKeying = 0x6b657965, + BMDDeckLinkSupportsHDKeying = 0x6b657968, + BMDDeckLinkSupportsInputFormatDetection = 0x696e6664, + BMDDeckLinkHasReferenceInput = 0x6872696e, + BMDDeckLinkHasSerialPort = 0x68737074, + BMDDeckLinkHasAnalogVideoOutputGain = 0x61766f67, + BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 0x6f766f67, + BMDDeckLinkHasVideoInputAntiAliasingFilter = 0x6161666c, + BMDDeckLinkHasBypass = 0x62797073, + BMDDeckLinkSupportsClockTimingAdjustment = 0x63746164, + BMDDeckLinkSupportsFullDuplex = 0x66647570, + BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = 0x6672696e, + BMDDeckLinkSupportsSMPTELevelAOutput = 0x6c766c61, + BMDDeckLinkSupportsDualLinkSDI = 0x73646c73, + BMDDeckLinkSupportsQuadLinkSDI = 0x73716c73, + BMDDeckLinkSupportsIdleOutput = 0x69646f75, + BMDDeckLinkHasLTCTimecodeInput = 0x686c7463, + BMDDeckLinkSupportsDuplexModeConfiguration = 0x64757078, + BMDDeckLinkSupportsHDRMetadata = 0x6864726d, + BMDDeckLinkMaximumAudioChannels = 0x6d616368, + BMDDeckLinkMaximumAnalogAudioInputChannels = 0x69616368, + BMDDeckLinkMaximumAnalogAudioOutputChannels = 0x61616368, + BMDDeckLinkNumberOfSubDevices = 0x6e736264, + BMDDeckLinkSubDeviceIndex = 0x73756269, + BMDDeckLinkPersistentID = 0x70656964, + BMDDeckLinkDeviceGroupID = 0x64676964, + BMDDeckLinkTopologicalID = 0x746f6964, + BMDDeckLinkVideoOutputConnections = 0x766f636e, + BMDDeckLinkVideoInputConnections = 0x7669636e, + BMDDeckLinkAudioOutputConnections = 0x616f636e, + BMDDeckLinkAudioInputConnections = 0x6169636e, + BMDDeckLinkVideoIOSupport = 0x76696f73, + BMDDeckLinkDeckControlConnections = 0x6463636e, + BMDDeckLinkDeviceInterface = 0x64627573, + BMDDeckLinkAudioInputRCAChannelCount = 0x61697263, + BMDDeckLinkAudioInputXLRChannelCount = 0x61697863, + BMDDeckLinkAudioOutputRCAChannelCount = 0x616f7263, + BMDDeckLinkAudioOutputXLRChannelCount = 0x616f7863, + BMDDeckLinkPairedDevicePersistentID = 0x70706964, + BMDDeckLinkVideoInputGainMinimum = 0x7669676d, + BMDDeckLinkVideoInputGainMaximum = 0x76696778, + BMDDeckLinkVideoOutputGainMinimum = 0x766f676d, + BMDDeckLinkVideoOutputGainMaximum = 0x766f6778, + BMDDeckLinkMicrophoneInputGainMinimum = 0x6d69676d, + BMDDeckLinkMicrophoneInputGainMaximum = 0x6d696778, + BMDDeckLinkSerialPortDeviceName = 0x736c706e, + BMDDeckLinkVendorName = 0x766e6472, + BMDDeckLinkDisplayName = 0x6473706e, + BMDDeckLinkModelName = 0x6d646c6e, + BMDDeckLinkDeviceHandle = 0x64657668 +} BMDDeckLinkAttributeID; +typedef enum _BMDDeckLinkAPIInformationID { + BMDDeckLinkAPIVersion = 0x76657273 +} BMDDeckLinkAPIInformationID; +typedef enum _BMDDeckLinkStatusID { + bmdDeckLinkStatusDetectedVideoInputMode = 0x6476696d, + bmdDeckLinkStatusDetectedVideoInputFlags = 0x64766966, + bmdDeckLinkStatusCurrentVideoInputMode = 0x6376696d, + bmdDeckLinkStatusCurrentVideoInputPixelFormat = 0x63766970, + bmdDeckLinkStatusCurrentVideoInputFlags = 0x63766966, + bmdDeckLinkStatusCurrentVideoOutputMode = 0x63766f6d, + bmdDeckLinkStatusCurrentVideoOutputFlags = 0x63766f66, + bmdDeckLinkStatusPCIExpressLinkWidth = 0x70776964, + bmdDeckLinkStatusPCIExpressLinkSpeed = 0x706c6e6b, + bmdDeckLinkStatusLastVideoOutputPixelFormat = 0x6f706978, + bmdDeckLinkStatusReferenceSignalMode = 0x7265666d, + bmdDeckLinkStatusReferenceSignalFlags = 0x72656666, + bmdDeckLinkStatusDuplexMode = 0x64757078, + bmdDeckLinkStatusBusy = 0x62757379, + bmdDeckLinkStatusInterchangeablePanelType = 0x69637074, + bmdDeckLinkStatusVideoInputSignalLocked = 0x7669736c, + bmdDeckLinkStatusReferenceSignalLocked = 0x7265666c, + bmdDeckLinkStatusReceivedEDID = 0x65646964 +} BMDDeckLinkStatusID; +typedef enum _BMDDeckLinkVideoStatusFlags { + bmdDeckLinkVideoStatusPsF = 1 << 0, + bmdDeckLinkVideoStatusDualStream3D = 1 << 1 +} BMDDeckLinkVideoStatusFlags; +typedef enum _BMDDuplexStatus { + bmdDuplexStatusFullDuplex = 0x66647570, + bmdDuplexStatusHalfDuplex = 0x68647570, + bmdDuplexStatusSimplex = 0x73706c78, + bmdDuplexStatusInactive = 0x696e6163 +} BMDDuplexStatus; +typedef enum _BMDPanelType { + bmdPanelNotDetected = 0x6e706e6c, + bmdPanelTeranexMiniSmartPanel = 0x746d736d +} BMDPanelType; +enum _BMDDeviceBusyState { + bmdDeviceCaptureBusy = 1 << 0, + bmdDevicePlaybackBusy = 1 << 1, + bmdDeviceSerialPortBusy = 1 << 2 +}; +typedef enum _BMDVideoIOSupport { + bmdDeviceSupportsCapture = 1 << 0, + bmdDeviceSupportsPlayback = 1 << 1 +} BMDVideoIOSupport; +typedef enum _BMD3DPreviewFormat { + bmd3DPreviewFormatDefault = 0x64656661, + bmd3DPreviewFormatLeftOnly = 0x6c656674, + bmd3DPreviewFormatRightOnly = 0x72696768, + bmd3DPreviewFormatSideBySide = 0x73696465, + bmd3DPreviewFormatTopBottom = 0x746f7062 +} BMD3DPreviewFormat; +typedef enum _BMDNotifications { + bmdPreferencesChanged = 0x70726566, + bmdStatusChanged = 0x73746174 +} BMDNotifications; +#ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +#define __IDeckLinkVideoOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback; +#ifdef __cplusplus +interface IDeckLinkVideoOutputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInputCallback_FWD_DEFINED__ +#define __IDeckLinkInputCallback_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback IDeckLinkInputCallback; +#ifdef __cplusplus +interface IDeckLinkInputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderInputCallback_FWD_DEFINED__ +#define __IDeckLinkEncoderInputCallback_FWD_DEFINED__ +typedef interface IDeckLinkEncoderInputCallback IDeckLinkEncoderInputCallback; +#ifdef __cplusplus +interface IDeckLinkEncoderInputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__ +#define __IDeckLinkMemoryAllocator_FWD_DEFINED__ +typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator; +#ifdef __cplusplus +interface IDeckLinkMemoryAllocator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +#define __IDeckLinkAudioOutputCallback_FWD_DEFINED__ +typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback; +#ifdef __cplusplus +interface IDeckLinkAudioOutputCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkIterator_FWD_DEFINED__ +#define __IDeckLinkIterator_FWD_DEFINED__ +typedef interface IDeckLinkIterator IDeckLinkIterator; +#ifdef __cplusplus +interface IDeckLinkIterator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAPIInformation_FWD_DEFINED__ +#define __IDeckLinkAPIInformation_FWD_DEFINED__ +typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation; +#ifdef __cplusplus +interface IDeckLinkAPIInformation; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_FWD_DEFINED__ +#define __IDeckLinkOutput_FWD_DEFINED__ +typedef interface IDeckLinkOutput IDeckLinkOutput; +#ifdef __cplusplus +interface IDeckLinkOutput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_FWD_DEFINED__ +#define __IDeckLinkInput_FWD_DEFINED__ +typedef interface IDeckLinkInput IDeckLinkInput; +#ifdef __cplusplus +interface IDeckLinkInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderInput_FWD_DEFINED__ +#define __IDeckLinkEncoderInput_FWD_DEFINED__ +typedef interface IDeckLinkEncoderInput IDeckLinkEncoderInput; +#ifdef __cplusplus +interface IDeckLinkEncoderInput; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame; +#ifdef __cplusplus +interface IDeckLinkVideoFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame; +#ifdef __cplusplus +interface IDeckLinkMutableVideoFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +#define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions; +#ifdef __cplusplus +interface IDeckLinkVideoFrame3DExtensions; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ +#define __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrameMetadataExtensions IDeckLinkVideoFrameMetadataExtensions; +#ifdef __cplusplus +interface IDeckLinkVideoFrameMetadataExtensions; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +#define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary; +#ifdef __cplusplus +interface IDeckLinkVideoFrameAncillary; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderPacket IDeckLinkEncoderPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderVideoPacket IDeckLinkEncoderVideoPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderVideoPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ +#define __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ +typedef interface IDeckLinkEncoderAudioPacket IDeckLinkEncoderAudioPacket; +#ifdef __cplusplus +interface IDeckLinkEncoderAudioPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkH265NALPacket_FWD_DEFINED__ +#define __IDeckLinkH265NALPacket_FWD_DEFINED__ +typedef interface IDeckLinkH265NALPacket IDeckLinkH265NALPacket; +#ifdef __cplusplus +interface IDeckLinkH265NALPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket; +#ifdef __cplusplus +interface IDeckLinkAudioInputPacket; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback; +#ifdef __cplusplus +interface IDeckLinkScreenPreviewCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper; +#ifdef __cplusplus +interface IDeckLinkGLScreenPreviewHelper; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +#define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ +typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper; +#ifdef __cplusplus +interface IDeckLinkDX9ScreenPreviewHelper; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__ +#define __IDeckLinkNotificationCallback_FWD_DEFINED__ +typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback; +#ifdef __cplusplus +interface IDeckLinkNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkNotification_FWD_DEFINED__ +#define __IDeckLinkNotification_FWD_DEFINED__ +typedef interface IDeckLinkNotification IDeckLinkNotification; +#ifdef __cplusplus +interface IDeckLinkNotification; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAttributes_FWD_DEFINED__ +#define __IDeckLinkAttributes_FWD_DEFINED__ +typedef interface IDeckLinkAttributes IDeckLinkAttributes; +#ifdef __cplusplus +interface IDeckLinkAttributes; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkStatus_FWD_DEFINED__ +#define __IDeckLinkStatus_FWD_DEFINED__ +typedef interface IDeckLinkStatus IDeckLinkStatus; +#ifdef __cplusplus +interface IDeckLinkStatus; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkKeyer_FWD_DEFINED__ +#define __IDeckLinkKeyer_FWD_DEFINED__ +typedef interface IDeckLinkKeyer IDeckLinkKeyer; +#ifdef __cplusplus +interface IDeckLinkKeyer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoConversion_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion; +#ifdef __cplusplus +interface IDeckLinkVideoConversion; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ +#define __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeviceNotificationCallback IDeckLinkDeviceNotificationCallback; +#ifdef __cplusplus +interface IDeckLinkDeviceNotificationCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDiscovery_FWD_DEFINED__ +#define __IDeckLinkDiscovery_FWD_DEFINED__ +typedef interface IDeckLinkDiscovery IDeckLinkDiscovery; +#ifdef __cplusplus +interface IDeckLinkDiscovery; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkVideoOutputCallback interface + */ +#ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoOutputCallback, 0x20aa5225, 0x1958, 0x47cb, 0x82,0x0b, 0x80,0xa8,0xd5,0x21,0xa6,0xee); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("20aa5225-1958-47cb-820b-80a8d521a6ee") +IDeckLinkVideoOutputCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + IDeckLinkVideoFrame *completedFrame, + BMDOutputFrameCompletionResult result) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoOutputCallback, 0x20aa5225, 0x1958, 0x47cb, 0x82,0x0b, 0x80,0xa8,0xd5,0x21,0xa6,0xee) +#endif +#else +typedef struct IDeckLinkVideoOutputCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoOutputCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoOutputCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoOutputCallback *This); + + /*** IDeckLinkVideoOutputCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *ScheduledFrameCompleted)( + IDeckLinkVideoOutputCallback *This, + IDeckLinkVideoFrame *completedFrame, + BMDOutputFrameCompletionResult result); + + HRESULT (STDMETHODCALLTYPE *ScheduledPlaybackHasStopped)( + IDeckLinkVideoOutputCallback *This); + + END_INTERFACE +} IDeckLinkVideoOutputCallbackVtbl; + +interface IDeckLinkVideoOutputCallback { + CONST_VTBL IDeckLinkVideoOutputCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoOutputCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoOutputCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoOutputCallback methods ***/ +#define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result) (This)->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result) +#define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) (This)->lpVtbl->ScheduledPlaybackHasStopped(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_QueryInterface(IDeckLinkVideoOutputCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_AddRef(IDeckLinkVideoOutputCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_Release(IDeckLinkVideoOutputCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoOutputCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(IDeckLinkVideoOutputCallback* This,IDeckLinkVideoFrame *completedFrame,BMDOutputFrameCompletionResult result) { + return This->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result); +} +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(IDeckLinkVideoOutputCallback* This) { + return This->lpVtbl->ScheduledPlaybackHasStopped(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInputCallback interface + */ +#ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInputCallback, 0xdd04e5ec, 0x7415, 0x42ab, 0xae,0x4a, 0xe8,0x0c,0x4d,0xfc,0x04,0x4a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dd04e5ec-7415-42ab-ae4a-e80c4dfc044a") +IDeckLinkInputCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + IDeckLinkVideoInputFrame *videoFrame, + IDeckLinkAudioInputPacket *audioPacket) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInputCallback, 0xdd04e5ec, 0x7415, 0x42ab, 0xae,0x4a, 0xe8,0x0c,0x4d,0xfc,0x04,0x4a) +#endif +#else +typedef struct IDeckLinkInputCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInputCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInputCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInputCallback *This); + + /*** IDeckLinkInputCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *VideoInputFormatChanged)( + IDeckLinkInputCallback *This, + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT (STDMETHODCALLTYPE *VideoInputFrameArrived)( + IDeckLinkInputCallback *This, + IDeckLinkVideoInputFrame *videoFrame, + IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE +} IDeckLinkInputCallbackVtbl; + +interface IDeckLinkInputCallback { + CONST_VTBL IDeckLinkInputCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInputCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInputCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInputCallback methods ***/ +#define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) (This)->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) +#define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket) (This)->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_QueryInterface(IDeckLinkInputCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_AddRef(IDeckLinkInputCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_Release(IDeckLinkInputCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInputCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_VideoInputFormatChanged(IDeckLinkInputCallback* This,BMDVideoInputFormatChangedEvents notificationEvents,IDeckLinkDisplayMode *newDisplayMode,BMDDetectedVideoInputFormatFlags detectedSignalFlags) { + return This->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags); +} +static FORCEINLINE HRESULT IDeckLinkInputCallback_VideoInputFrameArrived(IDeckLinkInputCallback* This,IDeckLinkVideoInputFrame *videoFrame,IDeckLinkAudioInputPacket *audioPacket) { + return This->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderInputCallback interface + */ +#ifndef __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderInputCallback, 0xacf13e61, 0xf4a0, 0x4974, 0xa6,0xa7, 0x59,0xaf,0xf6,0x26,0x8b,0x31); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("acf13e61-f4a0-4974-a6a7-59aff6268b31") +IDeckLinkEncoderInputCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE VideoInputSignalChanged( + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoPacketArrived( + IDeckLinkEncoderVideoPacket *videoPacket) = 0; + + virtual HRESULT STDMETHODCALLTYPE AudioPacketArrived( + IDeckLinkEncoderAudioPacket *audioPacket) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderInputCallback, 0xacf13e61, 0xf4a0, 0x4974, 0xa6,0xa7, 0x59,0xaf,0xf6,0x26,0x8b,0x31) +#endif +#else +typedef struct IDeckLinkEncoderInputCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderInputCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderInputCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderInputCallback *This); + + /*** IDeckLinkEncoderInputCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *VideoInputSignalChanged)( + IDeckLinkEncoderInputCallback *This, + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT (STDMETHODCALLTYPE *VideoPacketArrived)( + IDeckLinkEncoderInputCallback *This, + IDeckLinkEncoderVideoPacket *videoPacket); + + HRESULT (STDMETHODCALLTYPE *AudioPacketArrived)( + IDeckLinkEncoderInputCallback *This, + IDeckLinkEncoderAudioPacket *audioPacket); + + END_INTERFACE +} IDeckLinkEncoderInputCallbackVtbl; + +interface IDeckLinkEncoderInputCallback { + CONST_VTBL IDeckLinkEncoderInputCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderInputCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderInputCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderInputCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderInputCallback methods ***/ +#define IDeckLinkEncoderInputCallback_VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) (This)->lpVtbl->VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) +#define IDeckLinkEncoderInputCallback_VideoPacketArrived(This,videoPacket) (This)->lpVtbl->VideoPacketArrived(This,videoPacket) +#define IDeckLinkEncoderInputCallback_AudioPacketArrived(This,audioPacket) (This)->lpVtbl->AudioPacketArrived(This,audioPacket) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderInputCallback_QueryInterface(IDeckLinkEncoderInputCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderInputCallback_AddRef(IDeckLinkEncoderInputCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderInputCallback_Release(IDeckLinkEncoderInputCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderInputCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderInputCallback_VideoInputSignalChanged(IDeckLinkEncoderInputCallback* This,BMDVideoInputFormatChangedEvents notificationEvents,IDeckLinkDisplayMode *newDisplayMode,BMDDetectedVideoInputFormatFlags detectedSignalFlags) { + return This->lpVtbl->VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInputCallback_VideoPacketArrived(IDeckLinkEncoderInputCallback* This,IDeckLinkEncoderVideoPacket *videoPacket) { + return This->lpVtbl->VideoPacketArrived(This,videoPacket); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInputCallback_AudioPacketArrived(IDeckLinkEncoderInputCallback* This,IDeckLinkEncoderAudioPacket *audioPacket) { + return This->lpVtbl->AudioPacketArrived(This,audioPacket); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkMemoryAllocator interface + */ +#ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ +#define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkMemoryAllocator, 0xb36eb6e7, 0x9d29, 0x4aa8, 0x92,0xef, 0x84,0x3b,0x87,0xa2,0x89,0xe8); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b36eb6e7-9d29-4aa8-92ef-843b87a289e8") +IDeckLinkMemoryAllocator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( + unsigned int bufferSize, + void **allocatedBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( + void *buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE Commit( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Decommit( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkMemoryAllocator, 0xb36eb6e7, 0x9d29, 0x4aa8, 0x92,0xef, 0x84,0x3b,0x87,0xa2,0x89,0xe8) +#endif +#else +typedef struct IDeckLinkMemoryAllocatorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkMemoryAllocator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkMemoryAllocator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkMemoryAllocator *This); + + /*** IDeckLinkMemoryAllocator methods ***/ + HRESULT (STDMETHODCALLTYPE *AllocateBuffer)( + IDeckLinkMemoryAllocator *This, + unsigned int bufferSize, + void **allocatedBuffer); + + HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( + IDeckLinkMemoryAllocator *This, + void *buffer); + + HRESULT (STDMETHODCALLTYPE *Commit)( + IDeckLinkMemoryAllocator *This); + + HRESULT (STDMETHODCALLTYPE *Decommit)( + IDeckLinkMemoryAllocator *This); + + END_INTERFACE +} IDeckLinkMemoryAllocatorVtbl; + +interface IDeckLinkMemoryAllocator { + CONST_VTBL IDeckLinkMemoryAllocatorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkMemoryAllocator_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkMemoryAllocator methods ***/ +#define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer) (This)->lpVtbl->AllocateBuffer(This,bufferSize,allocatedBuffer) +#define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer) (This)->lpVtbl->ReleaseBuffer(This,buffer) +#define IDeckLinkMemoryAllocator_Commit(This) (This)->lpVtbl->Commit(This) +#define IDeckLinkMemoryAllocator_Decommit(This) (This)->lpVtbl->Decommit(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkMemoryAllocator_QueryInterface(IDeckLinkMemoryAllocator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkMemoryAllocator_AddRef(IDeckLinkMemoryAllocator* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkMemoryAllocator_Release(IDeckLinkMemoryAllocator* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkMemoryAllocator methods ***/ +static FORCEINLINE HRESULT IDeckLinkMemoryAllocator_AllocateBuffer(IDeckLinkMemoryAllocator* This,unsigned int bufferSize,void **allocatedBuffer) { + return This->lpVtbl->AllocateBuffer(This,bufferSize,allocatedBuffer); +} +static FORCEINLINE HRESULT IDeckLinkMemoryAllocator_ReleaseBuffer(IDeckLinkMemoryAllocator* This,void *buffer) { + return This->lpVtbl->ReleaseBuffer(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkMemoryAllocator_Commit(IDeckLinkMemoryAllocator* This) { + return This->lpVtbl->Commit(This); +} +static FORCEINLINE HRESULT IDeckLinkMemoryAllocator_Decommit(IDeckLinkMemoryAllocator* This) { + return This->lpVtbl->Decommit(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkAudioOutputCallback interface + */ +#ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ +#define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkAudioOutputCallback, 0x403c681b, 0x7f46, 0x4a12, 0xb9,0x93, 0x2b,0xb1,0x27,0x08,0x4e,0xe6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("403c681b-7f46-4a12-b993-2bb127084ee6") +IDeckLinkAudioOutputCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( + BOOL preroll) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkAudioOutputCallback, 0x403c681b, 0x7f46, 0x4a12, 0xb9,0x93, 0x2b,0xb1,0x27,0x08,0x4e,0xe6) +#endif +#else +typedef struct IDeckLinkAudioOutputCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkAudioOutputCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkAudioOutputCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkAudioOutputCallback *This); + + /*** IDeckLinkAudioOutputCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *RenderAudioSamples)( + IDeckLinkAudioOutputCallback *This, + BOOL preroll); + + END_INTERFACE +} IDeckLinkAudioOutputCallbackVtbl; + +interface IDeckLinkAudioOutputCallback { + CONST_VTBL IDeckLinkAudioOutputCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkAudioOutputCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkAudioOutputCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkAudioOutputCallback methods ***/ +#define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll) (This)->lpVtbl->RenderAudioSamples(This,preroll) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkAudioOutputCallback_QueryInterface(IDeckLinkAudioOutputCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkAudioOutputCallback_AddRef(IDeckLinkAudioOutputCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkAudioOutputCallback_Release(IDeckLinkAudioOutputCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkAudioOutputCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkAudioOutputCallback_RenderAudioSamples(IDeckLinkAudioOutputCallback* This,BOOL preroll) { + return This->lpVtbl->RenderAudioSamples(This,preroll); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkIterator interface + */ +#ifndef __IDeckLinkIterator_INTERFACE_DEFINED__ +#define __IDeckLinkIterator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkIterator, 0x50fb36cd, 0x3063, 0x4b73, 0xbd,0xbb, 0x95,0x80,0x87,0xf2,0xd8,0xba); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("50fb36cd-3063-4b73-bdbb-958087f2d8ba") +IDeckLinkIterator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IDeckLink **deckLinkInstance) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkIterator, 0x50fb36cd, 0x3063, 0x4b73, 0xbd,0xbb, 0x95,0x80,0x87,0xf2,0xd8,0xba) +#endif +#else +typedef struct IDeckLinkIteratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkIterator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkIterator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkIterator *This); + + /*** IDeckLinkIterator methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IDeckLinkIterator *This, + IDeckLink **deckLinkInstance); + + END_INTERFACE +} IDeckLinkIteratorVtbl; + +interface IDeckLinkIterator { + CONST_VTBL IDeckLinkIteratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkIterator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkIterator_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkIterator methods ***/ +#define IDeckLinkIterator_Next(This,deckLinkInstance) (This)->lpVtbl->Next(This,deckLinkInstance) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkIterator_QueryInterface(IDeckLinkIterator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkIterator_AddRef(IDeckLinkIterator* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkIterator_Release(IDeckLinkIterator* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkIterator methods ***/ +static FORCEINLINE HRESULT IDeckLinkIterator_Next(IDeckLinkIterator* This,IDeckLink **deckLinkInstance) { + return This->lpVtbl->Next(This,deckLinkInstance); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkIterator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkAPIInformation interface + */ +#ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__ +#define __IDeckLinkAPIInformation_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkAPIInformation, 0x7bea3c68, 0x730d, 0x4322, 0xaf,0x34, 0x8a,0x71,0x52,0xb5,0x32,0xa4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7bea3c68-730d-4322-af34-8a7152b532a4") +IDeckLinkAPIInformation : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkAPIInformationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkAPIInformationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkAPIInformationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkAPIInformationID cfgID, + BSTR *value) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkAPIInformation, 0x7bea3c68, 0x730d, 0x4322, 0xaf,0x34, 0x8a,0x71,0x52,0xb5,0x32,0xa4) +#endif +#else +typedef struct IDeckLinkAPIInformationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkAPIInformation *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkAPIInformation *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkAPIInformation *This); + + /*** IDeckLinkAPIInformation methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkAPIInformation *This, + BMDDeckLinkAPIInformationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkAPIInformation *This, + BMDDeckLinkAPIInformationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkAPIInformation *This, + BMDDeckLinkAPIInformationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkAPIInformation *This, + BMDDeckLinkAPIInformationID cfgID, + BSTR *value); + + END_INTERFACE +} IDeckLinkAPIInformationVtbl; + +interface IDeckLinkAPIInformation { + CONST_VTBL IDeckLinkAPIInformationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkAPIInformation_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkAPIInformation_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkAPIInformation methods ***/ +#define IDeckLinkAPIInformation_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkAPIInformation_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkAPIInformation_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkAPIInformation_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkAPIInformation_QueryInterface(IDeckLinkAPIInformation* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkAPIInformation_AddRef(IDeckLinkAPIInformation* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkAPIInformation_Release(IDeckLinkAPIInformation* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkAPIInformation methods ***/ +static FORCEINLINE HRESULT IDeckLinkAPIInformation_GetFlag(IDeckLinkAPIInformation* This,BMDDeckLinkAPIInformationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAPIInformation_GetInt(IDeckLinkAPIInformation* This,BMDDeckLinkAPIInformationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAPIInformation_GetFloat(IDeckLinkAPIInformation* This,BMDDeckLinkAPIInformationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAPIInformation_GetString(IDeckLinkAPIInformation* This,BMDDeckLinkAPIInformationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkOutput interface + */ +#ifndef __IDeckLinkOutput_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkOutput, 0xcc5c8a6e, 0x3f2f, 0x4b3a, 0x87,0xea, 0xfd,0x78,0xaf,0x30,0x05,0x64); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cc5c8a6e-3f2f-4b3a-87ea-fd78af300564") +IDeckLinkOutput : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoOutputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + IDeckLinkVideoOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + unsigned int *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( + BMDReferenceStatus *referenceStatus) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp( + IDeckLinkVideoFrame *theFrame, + BMDTimeScale desiredTimeScale, + BMDTimeValue *frameCompletionTimestamp) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkOutput, 0xcc5c8a6e, 0x3f2f, 0x4b3a, 0x87,0xea, 0xfd,0x78,0xaf,0x30,0x05,0x64) +#endif +#else +typedef struct IDeckLinkOutputVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkOutput *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkOutput *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkOutput *This); + + /*** IDeckLinkOutput methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkOutput *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoOutputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkOutput *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkOutput *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoOutput)( + IDeckLinkOutput *This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoOutput)( + IDeckLinkOutput *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator)( + IDeckLinkOutput *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrame)( + IDeckLinkOutput *This, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame **outFrame); + + HRESULT (STDMETHODCALLTYPE *CreateAncillaryData)( + IDeckLinkOutput *This, + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT (STDMETHODCALLTYPE *DisplayVideoFrameSync)( + IDeckLinkOutput *This, + IDeckLinkVideoFrame *theFrame); + + HRESULT (STDMETHODCALLTYPE *ScheduleVideoFrame)( + IDeckLinkOutput *This, + IDeckLinkVideoFrame *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback)( + IDeckLinkOutput *This, + IDeckLinkVideoOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetBufferedVideoFrameCount)( + IDeckLinkOutput *This, + unsigned int *bufferedFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioOutput)( + IDeckLinkOutput *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT (STDMETHODCALLTYPE *DisableAudioOutput)( + IDeckLinkOutput *This); + + HRESULT (STDMETHODCALLTYPE *WriteAudioSamplesSync)( + IDeckLinkOutput *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *BeginAudioPreroll)( + IDeckLinkOutput *This); + + HRESULT (STDMETHODCALLTYPE *EndAudioPreroll)( + IDeckLinkOutput *This); + + HRESULT (STDMETHODCALLTYPE *ScheduleAudioSamples)( + IDeckLinkOutput *This, + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkOutput *This, + unsigned int *bufferedSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *FlushBufferedAudioSamples)( + IDeckLinkOutput *This); + + HRESULT (STDMETHODCALLTYPE *SetAudioCallback)( + IDeckLinkOutput *This, + IDeckLinkAudioOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *StartScheduledPlayback)( + IDeckLinkOutput *This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *StopScheduledPlayback)( + IDeckLinkOutput *This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *IsScheduledPlaybackRunning)( + IDeckLinkOutput *This, + BOOL *active); + + HRESULT (STDMETHODCALLTYPE *GetScheduledStreamTime)( + IDeckLinkOutput *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *GetReferenceStatus)( + IDeckLinkOutput *This, + BMDReferenceStatus *referenceStatus); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkOutput *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + HRESULT (STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp)( + IDeckLinkOutput *This, + IDeckLinkVideoFrame *theFrame, + BMDTimeScale desiredTimeScale, + BMDTimeValue *frameCompletionTimestamp); + + END_INTERFACE +} IDeckLinkOutputVtbl; + +interface IDeckLinkOutput { + CONST_VTBL IDeckLinkOutputVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkOutput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkOutput_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkOutput_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkOutput methods ***/ +#define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) +#define IDeckLinkOutput_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags) (This)->lpVtbl->EnableVideoOutput(This,displayMode,flags) +#define IDeckLinkOutput_DisableVideoOutput(This) (This)->lpVtbl->DisableVideoOutput(This) +#define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) (This)->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer) +#define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame) (This)->lpVtbl->DisplayVideoFrameSync(This,theFrame) +#define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) (This)->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) +#define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback) (This)->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback) +#define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount) (This)->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount) +#define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) (This)->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) +#define IDeckLinkOutput_DisableAudioOutput(This) (This)->lpVtbl->DisableAudioOutput(This) +#define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) (This)->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) +#define IDeckLinkOutput_BeginAudioPreroll(This) (This)->lpVtbl->BeginAudioPreroll(This) +#define IDeckLinkOutput_EndAudioPreroll(This) (This)->lpVtbl->EndAudioPreroll(This) +#define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) (This)->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) +#define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) +#define IDeckLinkOutput_FlushBufferedAudioSamples(This) (This)->lpVtbl->FlushBufferedAudioSamples(This) +#define IDeckLinkOutput_SetAudioCallback(This,theCallback) (This)->lpVtbl->SetAudioCallback(This,theCallback) +#define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) (This)->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) +#define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) (This)->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) +#define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) (This)->lpVtbl->IsScheduledPlaybackRunning(This,active) +#define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) (This)->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) +#define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus) (This)->lpVtbl->GetReferenceStatus(This,referenceStatus) +#define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#define IDeckLinkOutput_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) (This)->lpVtbl->GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_QueryInterface(IDeckLinkOutput* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkOutput_AddRef(IDeckLinkOutput* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkOutput_Release(IDeckLinkOutput* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkOutput methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_DoesSupportVideoMode(IDeckLinkOutput* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoOutputFlags flags,BMDDisplayModeSupport *result,IDeckLinkDisplayMode **resultDisplayMode) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetDisplayModeIterator(IDeckLinkOutput* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_SetScreenPreviewCallback(IDeckLinkOutput* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_EnableVideoOutput(IDeckLinkOutput* This,BMDDisplayMode displayMode,BMDVideoOutputFlags flags) { + return This->lpVtbl->EnableVideoOutput(This,displayMode,flags); +} +static FORCEINLINE HRESULT IDeckLinkOutput_DisableVideoOutput(IDeckLinkOutput* This) { + return This->lpVtbl->DisableVideoOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(IDeckLinkOutput* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_CreateVideoFrame(IDeckLinkOutput* This,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkMutableVideoFrame **outFrame) { + return This->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_CreateAncillaryData(IDeckLinkOutput* This,BMDPixelFormat pixelFormat,IDeckLinkVideoFrameAncillary **outBuffer) { + return This->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer); +} +static FORCEINLINE HRESULT IDeckLinkOutput_DisplayVideoFrameSync(IDeckLinkOutput* This,IDeckLinkVideoFrame *theFrame) { + return This->lpVtbl->DisplayVideoFrameSync(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_ScheduleVideoFrame(IDeckLinkOutput* This,IDeckLinkVideoFrame *theFrame,BMDTimeValue displayTime,BMDTimeValue displayDuration,BMDTimeScale timeScale) { + return This->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_SetScheduledFrameCompletionCallback(IDeckLinkOutput* This,IDeckLinkVideoOutputCallback *theCallback) { + return This->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetBufferedVideoFrameCount(IDeckLinkOutput* This,unsigned int *bufferedFrameCount) { + return This->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_EnableAudioOutput(IDeckLinkOutput* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount,BMDAudioOutputStreamType streamType) { + return This->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType); +} +static FORCEINLINE HRESULT IDeckLinkOutput_DisableAudioOutput(IDeckLinkOutput* This) { + return This->lpVtbl->DisableAudioOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_WriteAudioSamplesSync(IDeckLinkOutput* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesWritten) { + return This->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_BeginAudioPreroll(IDeckLinkOutput* This) { + return This->lpVtbl->BeginAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_EndAudioPreroll(IDeckLinkOutput* This) { + return This->lpVtbl->EndAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_ScheduleAudioSamples(IDeckLinkOutput* This,void *buffer,unsigned int sampleFrameCount,BMDTimeValue streamTime,BMDTimeScale timeScale,unsigned int *sampleFramesWritten) { + return This->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetBufferedAudioSampleFrameCount(IDeckLinkOutput* This,unsigned int *bufferedSampleFrameCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_FlushBufferedAudioSamples(IDeckLinkOutput* This) { + return This->lpVtbl->FlushBufferedAudioSamples(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_SetAudioCallback(IDeckLinkOutput* This,IDeckLinkAudioOutputCallback *theCallback) { + return This->lpVtbl->SetAudioCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_StartScheduledPlayback(IDeckLinkOutput* This,BMDTimeValue playbackStartTime,BMDTimeScale timeScale,double playbackSpeed) { + return This->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_StopScheduledPlayback(IDeckLinkOutput* This,BMDTimeValue stopPlaybackAtTime,BMDTimeValue *actualStopTime,BMDTimeScale timeScale) { + return This->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_IsScheduledPlaybackRunning(IDeckLinkOutput* This,BOOL *active) { + return This->lpVtbl->IsScheduledPlaybackRunning(This,active); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetScheduledStreamTime(IDeckLinkOutput* This,BMDTimeScale desiredTimeScale,BMDTimeValue *streamTime,double *playbackSpeed) { + return This->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetReferenceStatus(IDeckLinkOutput* This,BMDReferenceStatus *referenceStatus) { + return This->lpVtbl->GetReferenceStatus(This,referenceStatus); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetHardwareReferenceClock(IDeckLinkOutput* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_GetFrameCompletionReferenceTimestamp(IDeckLinkOutput* This,IDeckLinkVideoFrame *theFrame,BMDTimeScale desiredTimeScale,BMDTimeValue *frameCompletionTimestamp) { + return This->lpVtbl->GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkOutput_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInput interface + */ +#ifndef __IDeckLinkInput_INTERFACE_DEFINED__ +#define __IDeckLinkInput_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInput, 0xaf22762b, 0xdfac, 0x4846, 0xaa,0x79, 0xfa,0x88,0x83,0x56,0x09,0x95); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("af22762b-dfac-4846-aa79-fa8883560995") +IDeckLinkInput : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + unsigned int *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + unsigned int *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkInputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInput, 0xaf22762b, 0xdfac, 0x4846, 0xaa,0x79, 0xfa,0x88,0x83,0x56,0x09,0x95) +#endif +#else +typedef struct IDeckLinkInputVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInput *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInput *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInput *This); + + /*** IDeckLinkInput methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkInput *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkInput *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkInput *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkInput *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableVideoFrameCount)( + IDeckLinkInput *This, + unsigned int *availableFrameCount); + + HRESULT (STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator)( + IDeckLinkInput *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkInput *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount)( + IDeckLinkInput *This, + unsigned int *availableSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *FlushStreams)( + IDeckLinkInput *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkInput *This, + IDeckLinkInputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkInput *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkInputVtbl; + +interface IDeckLinkInput { + CONST_VTBL IDeckLinkInputVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInput_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInput_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInput methods ***/ +#define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) +#define IDeckLinkInput_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkInput_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount) (This)->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount) +#define IDeckLinkInput_SetVideoInputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoInputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkInput_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) (This)->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) +#define IDeckLinkInput_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkInput_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkInput_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkInput_FlushStreams(This) (This)->lpVtbl->FlushStreams(This) +#define IDeckLinkInput_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_QueryInterface(IDeckLinkInput* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInput_AddRef(IDeckLinkInput* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInput_Release(IDeckLinkInput* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInput methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_DoesSupportVideoMode(IDeckLinkInput* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags,BMDDisplayModeSupport *result,IDeckLinkDisplayMode **resultDisplayMode) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode); +} +static FORCEINLINE HRESULT IDeckLinkInput_GetDisplayModeIterator(IDeckLinkInput* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkInput_SetScreenPreviewCallback(IDeckLinkInput* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_EnableVideoInput(IDeckLinkInput* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkInput_DisableVideoInput(IDeckLinkInput* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_GetAvailableVideoFrameCount(IDeckLinkInput* This,unsigned int *availableFrameCount) { + return This->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_SetVideoInputFrameMemoryAllocator(IDeckLinkInput* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoInputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkInput_EnableAudioInput(IDeckLinkInput* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_DisableAudioInput(IDeckLinkInput* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_GetAvailableAudioSampleFrameCount(IDeckLinkInput* This,unsigned int *availableSampleFrameCount) { + return This->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_StartStreams(IDeckLinkInput* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_StopStreams(IDeckLinkInput* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_PauseStreams(IDeckLinkInput* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_FlushStreams(IDeckLinkInput* This) { + return This->lpVtbl->FlushStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_SetCallback(IDeckLinkInput* This,IDeckLinkInputCallback *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_GetHardwareReferenceClock(IDeckLinkInput* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInput_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderInput interface + */ +#ifndef __IDeckLinkEncoderInput_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderInput_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderInput, 0x270587da, 0x6b7d, 0x42e7, 0xa1,0xf0, 0x6d,0x85,0x3f,0x58,0x11,0x85); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("270587da-6b7d-42e7-a1f0-6d853f581185") +IDeckLinkEncoderInput : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount( + unsigned int *availablePacketsCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioFormat audioFormat, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + unsigned int *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkEncoderInputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderInput, 0x270587da, 0x6b7d, 0x42e7, 0xa1,0xf0, 0x6d,0x85,0x3f,0x58,0x11,0x85) +#endif +#else +typedef struct IDeckLinkEncoderInputVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderInput *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderInput *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderInput *This); + + /*** IDeckLinkEncoderInput methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkEncoderInput *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkEncoderInput *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkEncoderInput *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailablePacketsCount)( + IDeckLinkEncoderInput *This, + unsigned int *availablePacketsCount); + + HRESULT (STDMETHODCALLTYPE *SetMemoryAllocator)( + IDeckLinkEncoderInput *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkEncoderInput *This, + BMDAudioFormat audioFormat, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount)( + IDeckLinkEncoderInput *This, + unsigned int *availableSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *FlushStreams)( + IDeckLinkEncoderInput *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkEncoderInput *This, + IDeckLinkEncoderInputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkEncoderInput *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkEncoderInputVtbl; + +interface IDeckLinkEncoderInput { + CONST_VTBL IDeckLinkEncoderInputVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderInput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderInput_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderInput_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderInput methods ***/ +#define IDeckLinkEncoderInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) +#define IDeckLinkEncoderInput_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkEncoderInput_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkEncoderInput_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkEncoderInput_GetAvailablePacketsCount(This,availablePacketsCount) (This)->lpVtbl->GetAvailablePacketsCount(This,availablePacketsCount) +#define IDeckLinkEncoderInput_SetMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetMemoryAllocator(This,theAllocator) +#define IDeckLinkEncoderInput_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) +#define IDeckLinkEncoderInput_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkEncoderInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) (This)->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) +#define IDeckLinkEncoderInput_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkEncoderInput_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkEncoderInput_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkEncoderInput_FlushStreams(This) (This)->lpVtbl->FlushStreams(This) +#define IDeckLinkEncoderInput_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#define IDeckLinkEncoderInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderInput_QueryInterface(IDeckLinkEncoderInput* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderInput_AddRef(IDeckLinkEncoderInput* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderInput_Release(IDeckLinkEncoderInput* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderInput methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderInput_DoesSupportVideoMode(IDeckLinkEncoderInput* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags,BMDDisplayModeSupport *result,IDeckLinkDisplayMode **resultDisplayMode) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_GetDisplayModeIterator(IDeckLinkEncoderInput* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_EnableVideoInput(IDeckLinkEncoderInput* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_DisableVideoInput(IDeckLinkEncoderInput* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_GetAvailablePacketsCount(IDeckLinkEncoderInput* This,unsigned int *availablePacketsCount) { + return This->lpVtbl->GetAvailablePacketsCount(This,availablePacketsCount); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_SetMemoryAllocator(IDeckLinkEncoderInput* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_EnableAudioInput(IDeckLinkEncoderInput* This,BMDAudioFormat audioFormat,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_DisableAudioInput(IDeckLinkEncoderInput* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_GetAvailableAudioSampleFrameCount(IDeckLinkEncoderInput* This,unsigned int *availableSampleFrameCount) { + return This->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_StartStreams(IDeckLinkEncoderInput* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_StopStreams(IDeckLinkEncoderInput* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_PauseStreams(IDeckLinkEncoderInput* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_FlushStreams(IDeckLinkEncoderInput* This) { + return This->lpVtbl->FlushStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_SetCallback(IDeckLinkEncoderInput* This,IDeckLinkEncoderInputCallback *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkEncoderInput_GetHardwareReferenceClock(IDeckLinkEncoderInput* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderInput_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrame interface + */ +#ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrame, 0x3f716fe0, 0xf023, 0x4111, 0xbe,0x5d, 0xef,0x44,0x14,0xc0,0x5b,0x17); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3f716fe0-f023-4111-be5d-ef4414c05b17") +IDeckLinkVideoFrame : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetRowBytes( + ) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( + ) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( + IDeckLinkVideoFrameAncillary **ancillary) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrame, 0x3f716fe0, 0xf023, 0x4111, 0xbe,0x5d, 0xef,0x44,0x14,0xc0,0x5b,0x17) +#endif +#else +typedef struct IDeckLinkVideoFrameVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrame *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrame *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrame *This); + + /*** IDeckLinkVideoFrame methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoFrame *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoFrame *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoFrame *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoFrame *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoFrame *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoFrame *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkVideoFrame *This, + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkVideoFrame *This, + IDeckLinkVideoFrameAncillary **ancillary); + + END_INTERFACE +} IDeckLinkVideoFrameVtbl; + +interface IDeckLinkVideoFrame { + CONST_VTBL IDeckLinkVideoFrameVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrame_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrame_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame methods ***/ +#define IDeckLinkVideoFrame_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoFrame_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoFrame_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoFrame_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoFrame_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoFrame_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkVideoFrame_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrame_QueryInterface(IDeckLinkVideoFrame* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_AddRef(IDeckLinkVideoFrame* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_Release(IDeckLinkVideoFrame* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame methods ***/ +static FORCEINLINE LONG IDeckLinkVideoFrame_GetWidth(IDeckLinkVideoFrame* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_GetHeight(IDeckLinkVideoFrame* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_GetRowBytes(IDeckLinkVideoFrame* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoFrame_GetPixelFormat(IDeckLinkVideoFrame* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoFrame_GetFlags(IDeckLinkVideoFrame* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_GetBytes(IDeckLinkVideoFrame* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_GetTimecode(IDeckLinkVideoFrame* This,BMDTimecodeFormat format,IDeckLinkTimecode **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_GetAncillaryData(IDeckLinkVideoFrame* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkMutableVideoFrame interface + */ +#ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ +#define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkMutableVideoFrame, 0x69e2639f, 0x40da, 0x4e19, 0xb6,0xf2, 0x20,0xac,0xe8,0x15,0xc3,0x90); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("69e2639f-40da-4e19-b6f2-20ace815c390") +IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame +{ + virtual HRESULT STDMETHODCALLTYPE SetFlags( + BMDFrameFlags newFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecode( + BMDTimecodeFormat format, + IDeckLinkTimecode *timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( + IDeckLinkVideoFrameAncillary *ancillary) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( + BMDTimecodeFormat format, + BMDTimecodeUserBits userBits) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkMutableVideoFrame, 0x69e2639f, 0x40da, 0x4e19, 0xb6,0xf2, 0x20,0xac,0xe8,0x15,0xc3,0x90) +#endif +#else +typedef struct IDeckLinkMutableVideoFrameVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkMutableVideoFrame *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkMutableVideoFrame *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkMutableVideoFrame *This); + + /*** IDeckLinkVideoFrame methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkMutableVideoFrame *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkMutableVideoFrame *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkMutableVideoFrame *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkMutableVideoFrame *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkMutableVideoFrame *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkMutableVideoFrame *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkMutableVideoFrame *This, + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkMutableVideoFrame *This, + IDeckLinkVideoFrameAncillary **ancillary); + + /*** IDeckLinkMutableVideoFrame methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlags)( + IDeckLinkMutableVideoFrame *This, + BMDFrameFlags newFlags); + + HRESULT (STDMETHODCALLTYPE *SetTimecode)( + IDeckLinkMutableVideoFrame *This, + BMDTimecodeFormat format, + IDeckLinkTimecode *timecode); + + HRESULT (STDMETHODCALLTYPE *SetTimecodeFromComponents)( + IDeckLinkMutableVideoFrame *This, + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags); + + HRESULT (STDMETHODCALLTYPE *SetAncillaryData)( + IDeckLinkMutableVideoFrame *This, + IDeckLinkVideoFrameAncillary *ancillary); + + HRESULT (STDMETHODCALLTYPE *SetTimecodeUserBits)( + IDeckLinkMutableVideoFrame *This, + BMDTimecodeFormat format, + BMDTimecodeUserBits userBits); + + END_INTERFACE +} IDeckLinkMutableVideoFrameVtbl; + +interface IDeckLinkMutableVideoFrame { + CONST_VTBL IDeckLinkMutableVideoFrameVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkMutableVideoFrame_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkMutableVideoFrame_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame methods ***/ +#define IDeckLinkMutableVideoFrame_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkMutableVideoFrame_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkMutableVideoFrame_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkMutableVideoFrame_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkMutableVideoFrame_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkMutableVideoFrame_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +/*** IDeckLinkMutableVideoFrame methods ***/ +#define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags) (This)->lpVtbl->SetFlags(This,newFlags) +#define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode) (This)->lpVtbl->SetTimecode(This,format,timecode) +#define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) (This)->lpVtbl->SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) +#define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary) (This)->lpVtbl->SetAncillaryData(This,ancillary) +#define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits) (This)->lpVtbl->SetTimecodeUserBits(This,format,userBits) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_QueryInterface(IDeckLinkMutableVideoFrame* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkMutableVideoFrame_AddRef(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkMutableVideoFrame_Release(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame methods ***/ +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_GetWidth(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_GetHeight(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_GetRowBytes(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkMutableVideoFrame_GetPixelFormat(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkMutableVideoFrame_GetFlags(IDeckLinkMutableVideoFrame* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_GetBytes(IDeckLinkMutableVideoFrame* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_GetTimecode(IDeckLinkMutableVideoFrame* This,BMDTimecodeFormat format,IDeckLinkTimecode **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_GetAncillaryData(IDeckLinkMutableVideoFrame* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +/*** IDeckLinkMutableVideoFrame methods ***/ +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_SetFlags(IDeckLinkMutableVideoFrame* This,BMDFrameFlags newFlags) { + return This->lpVtbl->SetFlags(This,newFlags); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_SetTimecode(IDeckLinkMutableVideoFrame* This,BMDTimecodeFormat format,IDeckLinkTimecode *timecode) { + return This->lpVtbl->SetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(IDeckLinkMutableVideoFrame* This,BMDTimecodeFormat format,unsigned char hours,unsigned char minutes,unsigned char seconds,unsigned char frames,BMDTimecodeFlags flags) { + return This->lpVtbl->SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_SetAncillaryData(IDeckLinkMutableVideoFrame* This,IDeckLinkVideoFrameAncillary *ancillary) { + return This->lpVtbl->SetAncillaryData(This,ancillary); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_SetTimecodeUserBits(IDeckLinkMutableVideoFrame* This,BMDTimecodeFormat format,BMDTimecodeUserBits userBits) { + return This->lpVtbl->SetTimecodeUserBits(This,format,userBits); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrame3DExtensions interface + */ +#ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrame3DExtensions, 0xda0f7e4a, 0xedc7, 0x48a8, 0x9c,0xdd, 0x2d,0xb5,0x1c,0x72,0x9c,0xd7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da0f7e4a-edc7-48a8-9cdd-2db51c729cd7") +IDeckLinkVideoFrame3DExtensions : public IUnknown +{ + virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( + IDeckLinkVideoFrame **rightEyeFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrame3DExtensions, 0xda0f7e4a, 0xedc7, 0x48a8, 0x9c,0xdd, 0x2d,0xb5,0x1c,0x72,0x9c,0xd7) +#endif +#else +typedef struct IDeckLinkVideoFrame3DExtensionsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrame3DExtensions *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrame3DExtensions *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrame3DExtensions *This); + + /*** IDeckLinkVideoFrame3DExtensions methods ***/ + BMDVideo3DPackingFormat (STDMETHODCALLTYPE *Get3DPackingFormat)( + IDeckLinkVideoFrame3DExtensions *This); + + HRESULT (STDMETHODCALLTYPE *GetFrameForRightEye)( + IDeckLinkVideoFrame3DExtensions *This, + IDeckLinkVideoFrame **rightEyeFrame); + + END_INTERFACE +} IDeckLinkVideoFrame3DExtensionsVtbl; + +interface IDeckLinkVideoFrame3DExtensions { + CONST_VTBL IDeckLinkVideoFrame3DExtensionsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrame3DExtensions_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrame3DExtensions_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame3DExtensions methods ***/ +#define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This) (This)->lpVtbl->Get3DPackingFormat(This) +#define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) (This)->lpVtbl->GetFrameForRightEye(This,rightEyeFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrame3DExtensions_QueryInterface(IDeckLinkVideoFrame3DExtensions* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame3DExtensions_AddRef(IDeckLinkVideoFrame3DExtensions* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame3DExtensions_Release(IDeckLinkVideoFrame3DExtensions* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame3DExtensions methods ***/ +static FORCEINLINE BMDVideo3DPackingFormat IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(IDeckLinkVideoFrame3DExtensions* This) { + return This->lpVtbl->Get3DPackingFormat(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(IDeckLinkVideoFrame3DExtensions* This,IDeckLinkVideoFrame **rightEyeFrame) { + return This->lpVtbl->GetFrameForRightEye(This,rightEyeFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrameMetadataExtensions interface + */ +#ifndef __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrameMetadataExtensions, 0xd5973dc9, 0x6432, 0x46d0, 0x8f,0x0b, 0x24,0x96,0xf8,0xa1,0x23,0x8f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d5973dc9-6432-46d0-8f0b-2496f8a1238f") +IDeckLinkVideoFrameMetadataExtensions : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkFrameMetadataID metadataID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkFrameMetadataID metadataID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkFrameMetadataID metadataID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkFrameMetadataID metadataID, + BSTR *value) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrameMetadataExtensions, 0xd5973dc9, 0x6432, 0x46d0, 0x8f,0x0b, 0x24,0x96,0xf8,0xa1,0x23,0x8f) +#endif +#else +typedef struct IDeckLinkVideoFrameMetadataExtensionsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrameMetadataExtensions *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrameMetadataExtensions *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrameMetadataExtensions *This); + + /*** IDeckLinkVideoFrameMetadataExtensions methods ***/ + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkVideoFrameMetadataExtensions *This, + BMDDeckLinkFrameMetadataID metadataID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkVideoFrameMetadataExtensions *This, + BMDDeckLinkFrameMetadataID metadataID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkVideoFrameMetadataExtensions *This, + BMDDeckLinkFrameMetadataID metadataID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkVideoFrameMetadataExtensions *This, + BMDDeckLinkFrameMetadataID metadataID, + BSTR *value); + + END_INTERFACE +} IDeckLinkVideoFrameMetadataExtensionsVtbl; + +interface IDeckLinkVideoFrameMetadataExtensions { + CONST_VTBL IDeckLinkVideoFrameMetadataExtensionsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrameMetadataExtensions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrameMetadataExtensions_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrameMetadataExtensions_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrameMetadataExtensions methods ***/ +#define IDeckLinkVideoFrameMetadataExtensions_GetInt(This,metadataID,value) (This)->lpVtbl->GetInt(This,metadataID,value) +#define IDeckLinkVideoFrameMetadataExtensions_GetFloat(This,metadataID,value) (This)->lpVtbl->GetFloat(This,metadataID,value) +#define IDeckLinkVideoFrameMetadataExtensions_GetFlag(This,metadataID,value) (This)->lpVtbl->GetFlag(This,metadataID,value) +#define IDeckLinkVideoFrameMetadataExtensions_GetString(This,metadataID,value) (This)->lpVtbl->GetString(This,metadataID,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrameMetadataExtensions_QueryInterface(IDeckLinkVideoFrameMetadataExtensions* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrameMetadataExtensions_AddRef(IDeckLinkVideoFrameMetadataExtensions* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrameMetadataExtensions_Release(IDeckLinkVideoFrameMetadataExtensions* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrameMetadataExtensions methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrameMetadataExtensions_GetInt(IDeckLinkVideoFrameMetadataExtensions* This,BMDDeckLinkFrameMetadataID metadataID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,metadataID,value); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrameMetadataExtensions_GetFloat(IDeckLinkVideoFrameMetadataExtensions* This,BMDDeckLinkFrameMetadataID metadataID,double *value) { + return This->lpVtbl->GetFloat(This,metadataID,value); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrameMetadataExtensions_GetFlag(IDeckLinkVideoFrameMetadataExtensions* This,BMDDeckLinkFrameMetadataID metadataID,BOOL *value) { + return This->lpVtbl->GetFlag(This,metadataID,value); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrameMetadataExtensions_GetString(IDeckLinkVideoFrameMetadataExtensions* This,BMDDeckLinkFrameMetadataID metadataID,BSTR *value) { + return This->lpVtbl->GetString(This,metadataID,value); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoInputFrame interface + */ +#ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoInputFrame, 0x05cfe374, 0x537c, 0x4094, 0x9a,0x57, 0x68,0x05,0x25,0x11,0x8f,0x44); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("05cfe374-537c-4094-9a57-680525118f44") +IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoInputFrame, 0x05cfe374, 0x537c, 0x4094, 0x9a,0x57, 0x68,0x05,0x25,0x11,0x8f,0x44) +#endif +#else +typedef struct IDeckLinkVideoInputFrameVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoInputFrame *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoInputFrame *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoInputFrame *This); + + /*** IDeckLinkVideoFrame methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoInputFrame *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoInputFrame *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoInputFrame *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoInputFrame *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoInputFrame *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoInputFrame *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkVideoInputFrame *This, + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkVideoInputFrame *This, + IDeckLinkVideoFrameAncillary **ancillary); + + /*** IDeckLinkVideoInputFrame methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkVideoInputFrame *This, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceTimestamp)( + IDeckLinkVideoInputFrame *This, + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration); + + END_INTERFACE +} IDeckLinkVideoInputFrameVtbl; + +interface IDeckLinkVideoInputFrame { + CONST_VTBL IDeckLinkVideoInputFrameVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoInputFrame_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoInputFrame_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame methods ***/ +#define IDeckLinkVideoInputFrame_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoInputFrame_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoInputFrame_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoInputFrame_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoInputFrame_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoInputFrame_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +/*** IDeckLinkVideoInputFrame methods ***/ +#define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale) +#define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) (This)->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_QueryInterface(IDeckLinkVideoInputFrame* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_AddRef(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_Release(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame methods ***/ +static FORCEINLINE LONG IDeckLinkVideoInputFrame_GetWidth(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_GetHeight(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_GetRowBytes(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoInputFrame_GetPixelFormat(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoInputFrame_GetFlags(IDeckLinkVideoInputFrame* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_GetBytes(IDeckLinkVideoInputFrame* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_GetTimecode(IDeckLinkVideoInputFrame* This,BMDTimecodeFormat format,IDeckLinkTimecode **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_GetAncillaryData(IDeckLinkVideoInputFrame* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +/*** IDeckLinkVideoInputFrame methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_GetStreamTime(IDeckLinkVideoInputFrame* This,BMDTimeValue *frameTime,BMDTimeValue *frameDuration,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(IDeckLinkVideoInputFrame* This,BMDTimeScale timeScale,BMDTimeValue *frameTime,BMDTimeValue *frameDuration) { + return This->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrameAncillary interface + */ +#ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrameAncillary, 0x732e723c, 0xd1a4, 0x4e29, 0x9e,0x8e, 0x4a,0x88,0x79,0x7a,0x00,0x04); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("732e723c-d1a4-4e29-9e8e-4a88797a0004") +IDeckLinkVideoFrameAncillary : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( + unsigned int lineNumber, + void **buffer) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( + ) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrameAncillary, 0x732e723c, 0xd1a4, 0x4e29, 0x9e,0x8e, 0x4a,0x88,0x79,0x7a,0x00,0x04) +#endif +#else +typedef struct IDeckLinkVideoFrameAncillaryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrameAncillary *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrameAncillary *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrameAncillary *This); + + /*** IDeckLinkVideoFrameAncillary methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine)( + IDeckLinkVideoFrameAncillary *This, + unsigned int lineNumber, + void **buffer); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoFrameAncillary *This); + + BMDDisplayMode (STDMETHODCALLTYPE *GetDisplayMode)( + IDeckLinkVideoFrameAncillary *This); + + END_INTERFACE +} IDeckLinkVideoFrameAncillaryVtbl; + +interface IDeckLinkVideoFrameAncillary { + CONST_VTBL IDeckLinkVideoFrameAncillaryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrameAncillary_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrameAncillary_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrameAncillary methods ***/ +#define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer) (This)->lpVtbl->GetBufferForVerticalBlankingLine(This,lineNumber,buffer) +#define IDeckLinkVideoFrameAncillary_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoFrameAncillary_GetDisplayMode(This) (This)->lpVtbl->GetDisplayMode(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrameAncillary_QueryInterface(IDeckLinkVideoFrameAncillary* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrameAncillary_AddRef(IDeckLinkVideoFrameAncillary* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrameAncillary_Release(IDeckLinkVideoFrameAncillary* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrameAncillary methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(IDeckLinkVideoFrameAncillary* This,unsigned int lineNumber,void **buffer) { + return This->lpVtbl->GetBufferForVerticalBlankingLine(This,lineNumber,buffer); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoFrameAncillary_GetPixelFormat(IDeckLinkVideoFrameAncillary* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDDisplayMode IDeckLinkVideoFrameAncillary_GetDisplayMode(IDeckLinkVideoFrameAncillary* This) { + return This->lpVtbl->GetDisplayMode(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderPacket interface + */ +#ifndef __IDeckLinkEncoderPacket_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderPacket, 0xb693f36c, 0x316e, 0x4af1, 0xb6,0xc2, 0xf3,0x89,0xa4,0xbc,0xa6,0x20); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b693f36c-316e-4af1-b6c2-f389a4bca620") +IDeckLinkEncoderPacket : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual LONG STDMETHODCALLTYPE GetSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + BMDTimeValue *frameTime, + BMDTimeScale timeScale) = 0; + + virtual BMDPacketType STDMETHODCALLTYPE GetPacketType( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderPacket, 0xb693f36c, 0x316e, 0x4af1, 0xb6,0xc2, 0xf3,0x89,0xa4,0xbc,0xa6,0x20) +#endif +#else +typedef struct IDeckLinkEncoderPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderPacket *This); + + /*** IDeckLinkEncoderPacket methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkEncoderPacket *This, + void **buffer); + + LONG (STDMETHODCALLTYPE *GetSize)( + IDeckLinkEncoderPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkEncoderPacket *This, + BMDTimeValue *frameTime, + BMDTimeScale timeScale); + + BMDPacketType (STDMETHODCALLTYPE *GetPacketType)( + IDeckLinkEncoderPacket *This); + + END_INTERFACE +} IDeckLinkEncoderPacketVtbl; + +interface IDeckLinkEncoderPacket { + CONST_VTBL IDeckLinkEncoderPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderPacket methods ***/ +#define IDeckLinkEncoderPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkEncoderPacket_GetSize(This) (This)->lpVtbl->GetSize(This) +#define IDeckLinkEncoderPacket_GetStreamTime(This,frameTime,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,timeScale) +#define IDeckLinkEncoderPacket_GetPacketType(This) (This)->lpVtbl->GetPacketType(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderPacket_QueryInterface(IDeckLinkEncoderPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderPacket_AddRef(IDeckLinkEncoderPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderPacket_Release(IDeckLinkEncoderPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderPacket methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderPacket_GetBytes(IDeckLinkEncoderPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE LONG IDeckLinkEncoderPacket_GetSize(IDeckLinkEncoderPacket* This) { + return This->lpVtbl->GetSize(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderPacket_GetStreamTime(IDeckLinkEncoderPacket* This,BMDTimeValue *frameTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,timeScale); +} +static FORCEINLINE BMDPacketType IDeckLinkEncoderPacket_GetPacketType(IDeckLinkEncoderPacket* This) { + return This->lpVtbl->GetPacketType(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderVideoPacket interface + */ +#ifndef __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderVideoPacket, 0x4e7fd944, 0xe8c7, 0x4eac, 0xb8,0xc0, 0x7b,0x77,0xf8,0x0f,0x5a,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4e7fd944-e8c7-4eac-b8c0-7b77f80f5ae0") +IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket +{ + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderVideoPacket, 0x4e7fd944, 0xe8c7, 0x4eac, 0xb8,0xc0, 0x7b,0x77,0xf8,0x0f,0x5a,0xe0) +#endif +#else +typedef struct IDeckLinkEncoderVideoPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderVideoPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderVideoPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderVideoPacket *This); + + /*** IDeckLinkEncoderPacket methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkEncoderVideoPacket *This, + void **buffer); + + LONG (STDMETHODCALLTYPE *GetSize)( + IDeckLinkEncoderVideoPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkEncoderVideoPacket *This, + BMDTimeValue *frameTime, + BMDTimeScale timeScale); + + BMDPacketType (STDMETHODCALLTYPE *GetPacketType)( + IDeckLinkEncoderVideoPacket *This); + + /*** IDeckLinkEncoderVideoPacket methods ***/ + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkEncoderVideoPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceTimestamp)( + IDeckLinkEncoderVideoPacket *This, + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkEncoderVideoPacket *This, + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode); + + END_INTERFACE +} IDeckLinkEncoderVideoPacketVtbl; + +interface IDeckLinkEncoderVideoPacket { + CONST_VTBL IDeckLinkEncoderVideoPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderVideoPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderVideoPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderVideoPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderPacket methods ***/ +#define IDeckLinkEncoderVideoPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkEncoderVideoPacket_GetSize(This) (This)->lpVtbl->GetSize(This) +#define IDeckLinkEncoderVideoPacket_GetStreamTime(This,frameTime,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,timeScale) +#define IDeckLinkEncoderVideoPacket_GetPacketType(This) (This)->lpVtbl->GetPacketType(This) +/*** IDeckLinkEncoderVideoPacket methods ***/ +#define IDeckLinkEncoderVideoPacket_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkEncoderVideoPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) (This)->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) +#define IDeckLinkEncoderVideoPacket_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderVideoPacket_QueryInterface(IDeckLinkEncoderVideoPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderVideoPacket_AddRef(IDeckLinkEncoderVideoPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderVideoPacket_Release(IDeckLinkEncoderVideoPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderPacket methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderVideoPacket_GetBytes(IDeckLinkEncoderVideoPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE LONG IDeckLinkEncoderVideoPacket_GetSize(IDeckLinkEncoderVideoPacket* This) { + return This->lpVtbl->GetSize(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderVideoPacket_GetStreamTime(IDeckLinkEncoderVideoPacket* This,BMDTimeValue *frameTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,timeScale); +} +static FORCEINLINE BMDPacketType IDeckLinkEncoderVideoPacket_GetPacketType(IDeckLinkEncoderVideoPacket* This) { + return This->lpVtbl->GetPacketType(This); +} +/*** IDeckLinkEncoderVideoPacket methods ***/ +static FORCEINLINE BMDPixelFormat IDeckLinkEncoderVideoPacket_GetPixelFormat(IDeckLinkEncoderVideoPacket* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderVideoPacket_GetHardwareReferenceTimestamp(IDeckLinkEncoderVideoPacket* This,BMDTimeScale timeScale,BMDTimeValue *frameTime,BMDTimeValue *frameDuration) { + return This->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration); +} +static FORCEINLINE HRESULT IDeckLinkEncoderVideoPacket_GetTimecode(IDeckLinkEncoderVideoPacket* This,BMDTimecodeFormat format,IDeckLinkTimecode **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkEncoderAudioPacket interface + */ +#ifndef __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderAudioPacket, 0x49e8edc8, 0x693b, 0x4e14, 0x8e,0xf6, 0x12,0xc6,0x58,0xf5,0xa0,0x7a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("49e8edc8-693b-4e14-8ef6-12c658f5a07a") +IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket +{ + virtual BMDAudioFormat STDMETHODCALLTYPE GetAudioFormat( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderAudioPacket, 0x49e8edc8, 0x693b, 0x4e14, 0x8e,0xf6, 0x12,0xc6,0x58,0xf5,0xa0,0x7a) +#endif +#else +typedef struct IDeckLinkEncoderAudioPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderAudioPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderAudioPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderAudioPacket *This); + + /*** IDeckLinkEncoderPacket methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkEncoderAudioPacket *This, + void **buffer); + + LONG (STDMETHODCALLTYPE *GetSize)( + IDeckLinkEncoderAudioPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkEncoderAudioPacket *This, + BMDTimeValue *frameTime, + BMDTimeScale timeScale); + + BMDPacketType (STDMETHODCALLTYPE *GetPacketType)( + IDeckLinkEncoderAudioPacket *This); + + /*** IDeckLinkEncoderAudioPacket methods ***/ + BMDAudioFormat (STDMETHODCALLTYPE *GetAudioFormat)( + IDeckLinkEncoderAudioPacket *This); + + END_INTERFACE +} IDeckLinkEncoderAudioPacketVtbl; + +interface IDeckLinkEncoderAudioPacket { + CONST_VTBL IDeckLinkEncoderAudioPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderAudioPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderAudioPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderAudioPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderPacket methods ***/ +#define IDeckLinkEncoderAudioPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkEncoderAudioPacket_GetSize(This) (This)->lpVtbl->GetSize(This) +#define IDeckLinkEncoderAudioPacket_GetStreamTime(This,frameTime,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,timeScale) +#define IDeckLinkEncoderAudioPacket_GetPacketType(This) (This)->lpVtbl->GetPacketType(This) +/*** IDeckLinkEncoderAudioPacket methods ***/ +#define IDeckLinkEncoderAudioPacket_GetAudioFormat(This) (This)->lpVtbl->GetAudioFormat(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderAudioPacket_QueryInterface(IDeckLinkEncoderAudioPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderAudioPacket_AddRef(IDeckLinkEncoderAudioPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderAudioPacket_Release(IDeckLinkEncoderAudioPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderPacket methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderAudioPacket_GetBytes(IDeckLinkEncoderAudioPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE LONG IDeckLinkEncoderAudioPacket_GetSize(IDeckLinkEncoderAudioPacket* This) { + return This->lpVtbl->GetSize(This); +} +static FORCEINLINE HRESULT IDeckLinkEncoderAudioPacket_GetStreamTime(IDeckLinkEncoderAudioPacket* This,BMDTimeValue *frameTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,timeScale); +} +static FORCEINLINE BMDPacketType IDeckLinkEncoderAudioPacket_GetPacketType(IDeckLinkEncoderAudioPacket* This) { + return This->lpVtbl->GetPacketType(This); +} +/*** IDeckLinkEncoderAudioPacket methods ***/ +static FORCEINLINE BMDAudioFormat IDeckLinkEncoderAudioPacket_GetAudioFormat(IDeckLinkEncoderAudioPacket* This) { + return This->lpVtbl->GetAudioFormat(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkH265NALPacket interface + */ +#ifndef __IDeckLinkH265NALPacket_INTERFACE_DEFINED__ +#define __IDeckLinkH265NALPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkH265NALPacket, 0x639c8e0b, 0x68d5, 0x4bde, 0xa6,0xd4, 0x95,0xf3,0xae,0xaf,0xf2,0xe7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("639c8e0b-68d5-4bde-a6d4-95f3aeaff2e7") +IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket +{ + virtual HRESULT STDMETHODCALLTYPE GetUnitType( + unsigned char *unitType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytesNoPrefix( + void **buffer) = 0; + + virtual LONG STDMETHODCALLTYPE GetSizeNoPrefix( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkH265NALPacket, 0x639c8e0b, 0x68d5, 0x4bde, 0xa6,0xd4, 0x95,0xf3,0xae,0xaf,0xf2,0xe7) +#endif +#else +typedef struct IDeckLinkH265NALPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkH265NALPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkH265NALPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkH265NALPacket *This); + + /*** IDeckLinkEncoderPacket methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkH265NALPacket *This, + void **buffer); + + LONG (STDMETHODCALLTYPE *GetSize)( + IDeckLinkH265NALPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkH265NALPacket *This, + BMDTimeValue *frameTime, + BMDTimeScale timeScale); + + BMDPacketType (STDMETHODCALLTYPE *GetPacketType)( + IDeckLinkH265NALPacket *This); + + /*** IDeckLinkEncoderVideoPacket methods ***/ + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkH265NALPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceTimestamp)( + IDeckLinkH265NALPacket *This, + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkH265NALPacket *This, + BMDTimecodeFormat format, + IDeckLinkTimecode **timecode); + + /*** IDeckLinkH265NALPacket methods ***/ + HRESULT (STDMETHODCALLTYPE *GetUnitType)( + IDeckLinkH265NALPacket *This, + unsigned char *unitType); + + HRESULT (STDMETHODCALLTYPE *GetBytesNoPrefix)( + IDeckLinkH265NALPacket *This, + void **buffer); + + LONG (STDMETHODCALLTYPE *GetSizeNoPrefix)( + IDeckLinkH265NALPacket *This); + + END_INTERFACE +} IDeckLinkH265NALPacketVtbl; + +interface IDeckLinkH265NALPacket { + CONST_VTBL IDeckLinkH265NALPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkH265NALPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkH265NALPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkH265NALPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderPacket methods ***/ +#define IDeckLinkH265NALPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkH265NALPacket_GetSize(This) (This)->lpVtbl->GetSize(This) +#define IDeckLinkH265NALPacket_GetStreamTime(This,frameTime,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,timeScale) +#define IDeckLinkH265NALPacket_GetPacketType(This) (This)->lpVtbl->GetPacketType(This) +/*** IDeckLinkEncoderVideoPacket methods ***/ +#define IDeckLinkH265NALPacket_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkH265NALPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) (This)->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) +#define IDeckLinkH265NALPacket_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +/*** IDeckLinkH265NALPacket methods ***/ +#define IDeckLinkH265NALPacket_GetUnitType(This,unitType) (This)->lpVtbl->GetUnitType(This,unitType) +#define IDeckLinkH265NALPacket_GetBytesNoPrefix(This,buffer) (This)->lpVtbl->GetBytesNoPrefix(This,buffer) +#define IDeckLinkH265NALPacket_GetSizeNoPrefix(This) (This)->lpVtbl->GetSizeNoPrefix(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_QueryInterface(IDeckLinkH265NALPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkH265NALPacket_AddRef(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkH265NALPacket_Release(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderPacket methods ***/ +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetBytes(IDeckLinkH265NALPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE LONG IDeckLinkH265NALPacket_GetSize(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->GetSize(This); +} +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetStreamTime(IDeckLinkH265NALPacket* This,BMDTimeValue *frameTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,timeScale); +} +static FORCEINLINE BMDPacketType IDeckLinkH265NALPacket_GetPacketType(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->GetPacketType(This); +} +/*** IDeckLinkEncoderVideoPacket methods ***/ +static FORCEINLINE BMDPixelFormat IDeckLinkH265NALPacket_GetPixelFormat(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetHardwareReferenceTimestamp(IDeckLinkH265NALPacket* This,BMDTimeScale timeScale,BMDTimeValue *frameTime,BMDTimeValue *frameDuration) { + return This->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration); +} +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetTimecode(IDeckLinkH265NALPacket* This,BMDTimecodeFormat format,IDeckLinkTimecode **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +/*** IDeckLinkH265NALPacket methods ***/ +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetUnitType(IDeckLinkH265NALPacket* This,unsigned char *unitType) { + return This->lpVtbl->GetUnitType(This,unitType); +} +static FORCEINLINE HRESULT IDeckLinkH265NALPacket_GetBytesNoPrefix(IDeckLinkH265NALPacket* This,void **buffer) { + return This->lpVtbl->GetBytesNoPrefix(This,buffer); +} +static FORCEINLINE LONG IDeckLinkH265NALPacket_GetSizeNoPrefix(IDeckLinkH265NALPacket* This) { + return This->lpVtbl->GetSizeNoPrefix(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkH265NALPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkAudioInputPacket interface + */ +#ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ +#define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkAudioInputPacket, 0xe43d5870, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e43d5870-2894-11de-8c30-0800200c9a66") +IDeckLinkAudioInputPacket : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetSampleFrameCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPacketTime( + BMDTimeValue *packetTime, + BMDTimeScale timeScale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkAudioInputPacket, 0xe43d5870, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66) +#endif +#else +typedef struct IDeckLinkAudioInputPacketVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkAudioInputPacket *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkAudioInputPacket *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkAudioInputPacket *This); + + /*** IDeckLinkAudioInputPacket methods ***/ + LONG (STDMETHODCALLTYPE *GetSampleFrameCount)( + IDeckLinkAudioInputPacket *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkAudioInputPacket *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetPacketTime)( + IDeckLinkAudioInputPacket *This, + BMDTimeValue *packetTime, + BMDTimeScale timeScale); + + END_INTERFACE +} IDeckLinkAudioInputPacketVtbl; + +interface IDeckLinkAudioInputPacket { + CONST_VTBL IDeckLinkAudioInputPacketVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkAudioInputPacket_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkAudioInputPacket_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkAudioInputPacket methods ***/ +#define IDeckLinkAudioInputPacket_GetSampleFrameCount(This) (This)->lpVtbl->GetSampleFrameCount(This) +#define IDeckLinkAudioInputPacket_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale) (This)->lpVtbl->GetPacketTime(This,packetTime,timeScale) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_QueryInterface(IDeckLinkAudioInputPacket* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkAudioInputPacket_AddRef(IDeckLinkAudioInputPacket* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkAudioInputPacket_Release(IDeckLinkAudioInputPacket* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkAudioInputPacket methods ***/ +static FORCEINLINE LONG IDeckLinkAudioInputPacket_GetSampleFrameCount(IDeckLinkAudioInputPacket* This) { + return This->lpVtbl->GetSampleFrameCount(This); +} +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_GetBytes(IDeckLinkAudioInputPacket* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_GetPacketTime(IDeckLinkAudioInputPacket* This,BMDTimeValue *packetTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetPacketTime(This,packetTime,timeScale); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkScreenPreviewCallback interface + */ +#ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkScreenPreviewCallback, 0xb1d3f49a, 0x85fe, 0x4c5d, 0x95,0xc8, 0x0b,0x5d,0x5d,0xcc,0xd4,0x38); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b1d3f49a-85fe-4c5d-95c8-0b5d5dccd438") +IDeckLinkScreenPreviewCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DrawFrame( + IDeckLinkVideoFrame *theFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkScreenPreviewCallback, 0xb1d3f49a, 0x85fe, 0x4c5d, 0x95,0xc8, 0x0b,0x5d,0x5d,0xcc,0xd4,0x38) +#endif +#else +typedef struct IDeckLinkScreenPreviewCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkScreenPreviewCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkScreenPreviewCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkScreenPreviewCallback *This); + + /*** IDeckLinkScreenPreviewCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawFrame)( + IDeckLinkScreenPreviewCallback *This, + IDeckLinkVideoFrame *theFrame); + + END_INTERFACE +} IDeckLinkScreenPreviewCallbackVtbl; + +interface IDeckLinkScreenPreviewCallback { + CONST_VTBL IDeckLinkScreenPreviewCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkScreenPreviewCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkScreenPreviewCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkScreenPreviewCallback methods ***/ +#define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) (This)->lpVtbl->DrawFrame(This,theFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkScreenPreviewCallback_QueryInterface(IDeckLinkScreenPreviewCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkScreenPreviewCallback_AddRef(IDeckLinkScreenPreviewCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkScreenPreviewCallback_Release(IDeckLinkScreenPreviewCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkScreenPreviewCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkScreenPreviewCallback_DrawFrame(IDeckLinkScreenPreviewCallback* This,IDeckLinkVideoFrame *theFrame) { + return This->lpVtbl->DrawFrame(This,theFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkGLScreenPreviewHelper interface + */ +#ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkGLScreenPreviewHelper, 0x504e2209, 0xcac7, 0x4c1a, 0x9f,0xb4, 0xc5,0xbb,0x62,0x74,0xd2,0x2f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("504e2209-cac7-4c1a-9fb4-c5bb6274d22f") +IDeckLinkGLScreenPreviewHelper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitializeGL( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PaintGL( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrame( + IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( + BMD3DPreviewFormat previewFormat) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkGLScreenPreviewHelper, 0x504e2209, 0xcac7, 0x4c1a, 0x9f,0xb4, 0xc5,0xbb,0x62,0x74,0xd2,0x2f) +#endif +#else +typedef struct IDeckLinkGLScreenPreviewHelperVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkGLScreenPreviewHelper *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkGLScreenPreviewHelper *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkGLScreenPreviewHelper *This); + + /*** IDeckLinkGLScreenPreviewHelper methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeGL)( + IDeckLinkGLScreenPreviewHelper *This); + + HRESULT (STDMETHODCALLTYPE *PaintGL)( + IDeckLinkGLScreenPreviewHelper *This); + + HRESULT (STDMETHODCALLTYPE *SetFrame)( + IDeckLinkGLScreenPreviewHelper *This, + IDeckLinkVideoFrame *theFrame); + + HRESULT (STDMETHODCALLTYPE *Set3DPreviewFormat)( + IDeckLinkGLScreenPreviewHelper *This, + BMD3DPreviewFormat previewFormat); + + END_INTERFACE +} IDeckLinkGLScreenPreviewHelperVtbl; + +interface IDeckLinkGLScreenPreviewHelper { + CONST_VTBL IDeckLinkGLScreenPreviewHelperVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkGLScreenPreviewHelper_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkGLScreenPreviewHelper_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkGLScreenPreviewHelper methods ***/ +#define IDeckLinkGLScreenPreviewHelper_InitializeGL(This) (This)->lpVtbl->InitializeGL(This) +#define IDeckLinkGLScreenPreviewHelper_PaintGL(This) (This)->lpVtbl->PaintGL(This) +#define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) (This)->lpVtbl->SetFrame(This,theFrame) +#define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) (This)->lpVtbl->Set3DPreviewFormat(This,previewFormat) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_QueryInterface(IDeckLinkGLScreenPreviewHelper* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkGLScreenPreviewHelper_AddRef(IDeckLinkGLScreenPreviewHelper* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkGLScreenPreviewHelper_Release(IDeckLinkGLScreenPreviewHelper* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkGLScreenPreviewHelper methods ***/ +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_InitializeGL(IDeckLinkGLScreenPreviewHelper* This) { + return This->lpVtbl->InitializeGL(This); +} +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_PaintGL(IDeckLinkGLScreenPreviewHelper* This) { + return This->lpVtbl->PaintGL(This); +} +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_SetFrame(IDeckLinkGLScreenPreviewHelper* This,IDeckLinkVideoFrame *theFrame) { + return This->lpVtbl->SetFrame(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(IDeckLinkGLScreenPreviewHelper* This,BMD3DPreviewFormat previewFormat) { + return This->lpVtbl->Set3DPreviewFormat(This,previewFormat); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDX9ScreenPreviewHelper interface + */ +#ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ +#define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDX9ScreenPreviewHelper, 0x2094b522, 0xd1a1, 0x40c0, 0x9a,0xc7, 0x1c,0x01,0x22,0x18,0xef,0x02); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2094b522-d1a1-40c0-9ac7-1c012218ef02") +IDeckLinkDX9ScreenPreviewHelper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + void *device) = 0; + + virtual HRESULT STDMETHODCALLTYPE Render( + RECT *rc) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrame( + IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( + BMD3DPreviewFormat previewFormat) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDX9ScreenPreviewHelper, 0x2094b522, 0xd1a1, 0x40c0, 0x9a,0xc7, 0x1c,0x01,0x22,0x18,0xef,0x02) +#endif +#else +typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDX9ScreenPreviewHelper *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDX9ScreenPreviewHelper *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDX9ScreenPreviewHelper *This); + + /*** IDeckLinkDX9ScreenPreviewHelper methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IDeckLinkDX9ScreenPreviewHelper *This, + void *device); + + HRESULT (STDMETHODCALLTYPE *Render)( + IDeckLinkDX9ScreenPreviewHelper *This, + RECT *rc); + + HRESULT (STDMETHODCALLTYPE *SetFrame)( + IDeckLinkDX9ScreenPreviewHelper *This, + IDeckLinkVideoFrame *theFrame); + + HRESULT (STDMETHODCALLTYPE *Set3DPreviewFormat)( + IDeckLinkDX9ScreenPreviewHelper *This, + BMD3DPreviewFormat previewFormat); + + END_INTERFACE +} IDeckLinkDX9ScreenPreviewHelperVtbl; + +interface IDeckLinkDX9ScreenPreviewHelper { + CONST_VTBL IDeckLinkDX9ScreenPreviewHelperVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDX9ScreenPreviewHelper_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDX9ScreenPreviewHelper_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDX9ScreenPreviewHelper methods ***/ +#define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device) (This)->lpVtbl->Initialize(This,device) +#define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc) (This)->lpVtbl->Render(This,rc) +#define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame) (This)->lpVtbl->SetFrame(This,theFrame) +#define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) (This)->lpVtbl->Set3DPreviewFormat(This,previewFormat) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDX9ScreenPreviewHelper_QueryInterface(IDeckLinkDX9ScreenPreviewHelper* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDX9ScreenPreviewHelper_AddRef(IDeckLinkDX9ScreenPreviewHelper* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDX9ScreenPreviewHelper_Release(IDeckLinkDX9ScreenPreviewHelper* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDX9ScreenPreviewHelper methods ***/ +static FORCEINLINE HRESULT IDeckLinkDX9ScreenPreviewHelper_Initialize(IDeckLinkDX9ScreenPreviewHelper* This,void *device) { + return This->lpVtbl->Initialize(This,device); +} +static FORCEINLINE HRESULT IDeckLinkDX9ScreenPreviewHelper_Render(IDeckLinkDX9ScreenPreviewHelper* This,RECT *rc) { + return This->lpVtbl->Render(This,rc); +} +static FORCEINLINE HRESULT IDeckLinkDX9ScreenPreviewHelper_SetFrame(IDeckLinkDX9ScreenPreviewHelper* This,IDeckLinkVideoFrame *theFrame) { + return This->lpVtbl->SetFrame(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(IDeckLinkDX9ScreenPreviewHelper* This,BMD3DPreviewFormat previewFormat) { + return This->lpVtbl->Set3DPreviewFormat(This,previewFormat); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkNotificationCallback interface + */ +#ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ +#define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkNotificationCallback, 0xb002a1ec, 0x070d, 0x4288, 0x82,0x89, 0xbd,0x5d,0x36,0xe5,0xff,0x0d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d") +IDeckLinkNotificationCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Notify( + BMDNotifications topic, + ULONGLONG param1, + ULONGLONG param2) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkNotificationCallback, 0xb002a1ec, 0x070d, 0x4288, 0x82,0x89, 0xbd,0x5d,0x36,0xe5,0xff,0x0d) +#endif +#else +typedef struct IDeckLinkNotificationCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkNotificationCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkNotificationCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkNotificationCallback *This); + + /*** IDeckLinkNotificationCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *Notify)( + IDeckLinkNotificationCallback *This, + BMDNotifications topic, + ULONGLONG param1, + ULONGLONG param2); + + END_INTERFACE +} IDeckLinkNotificationCallbackVtbl; + +interface IDeckLinkNotificationCallback { + CONST_VTBL IDeckLinkNotificationCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkNotificationCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkNotificationCallback methods ***/ +#define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2) (This)->lpVtbl->Notify(This,topic,param1,param2) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkNotificationCallback_QueryInterface(IDeckLinkNotificationCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkNotificationCallback_AddRef(IDeckLinkNotificationCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkNotificationCallback_Release(IDeckLinkNotificationCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkNotificationCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkNotificationCallback_Notify(IDeckLinkNotificationCallback* This,BMDNotifications topic,ULONGLONG param1,ULONGLONG param2) { + return This->lpVtbl->Notify(This,topic,param1,param2); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkNotification interface + */ +#ifndef __IDeckLinkNotification_INTERFACE_DEFINED__ +#define __IDeckLinkNotification_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkNotification, 0x0a1fb207, 0xe215, 0x441b, 0x9b,0x19, 0x6f,0xa1,0x57,0x59,0x46,0xc5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("0a1fb207-e215-441b-9b19-6fa1575946c5") +IDeckLinkNotification : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Subscribe( + BMDNotifications topic, + IDeckLinkNotificationCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE Unsubscribe( + BMDNotifications topic, + IDeckLinkNotificationCallback *theCallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkNotification, 0x0a1fb207, 0xe215, 0x441b, 0x9b,0x19, 0x6f,0xa1,0x57,0x59,0x46,0xc5) +#endif +#else +typedef struct IDeckLinkNotificationVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkNotification *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkNotification *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkNotification *This); + + /*** IDeckLinkNotification methods ***/ + HRESULT (STDMETHODCALLTYPE *Subscribe)( + IDeckLinkNotification *This, + BMDNotifications topic, + IDeckLinkNotificationCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *Unsubscribe)( + IDeckLinkNotification *This, + BMDNotifications topic, + IDeckLinkNotificationCallback *theCallback); + + END_INTERFACE +} IDeckLinkNotificationVtbl; + +interface IDeckLinkNotification { + CONST_VTBL IDeckLinkNotificationVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkNotification_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkNotification_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkNotification methods ***/ +#define IDeckLinkNotification_Subscribe(This,topic,theCallback) (This)->lpVtbl->Subscribe(This,topic,theCallback) +#define IDeckLinkNotification_Unsubscribe(This,topic,theCallback) (This)->lpVtbl->Unsubscribe(This,topic,theCallback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkNotification_QueryInterface(IDeckLinkNotification* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkNotification_AddRef(IDeckLinkNotification* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkNotification_Release(IDeckLinkNotification* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkNotification methods ***/ +static FORCEINLINE HRESULT IDeckLinkNotification_Subscribe(IDeckLinkNotification* This,BMDNotifications topic,IDeckLinkNotificationCallback *theCallback) { + return This->lpVtbl->Subscribe(This,topic,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkNotification_Unsubscribe(IDeckLinkNotification* This,BMDNotifications topic,IDeckLinkNotificationCallback *theCallback) { + return This->lpVtbl->Unsubscribe(This,topic,theCallback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkNotification_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkAttributes interface + */ +#ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__ +#define __IDeckLinkAttributes_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkAttributes, 0xabc11843, 0xd966, 0x44cb, 0x96,0xe2, 0xa1,0xcb,0x5d,0x31,0x35,0xc4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("abc11843-d966-44cb-96e2-a1cb5d3135c4") +IDeckLinkAttributes : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkAttributeID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkAttributeID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkAttributeID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkAttributeID cfgID, + BSTR *value) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkAttributes, 0xabc11843, 0xd966, 0x44cb, 0x96,0xe2, 0xa1,0xcb,0x5d,0x31,0x35,0xc4) +#endif +#else +typedef struct IDeckLinkAttributesVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkAttributes *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkAttributes *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkAttributes *This); + + /*** IDeckLinkAttributes methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkAttributes *This, + BMDDeckLinkAttributeID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkAttributes *This, + BMDDeckLinkAttributeID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkAttributes *This, + BMDDeckLinkAttributeID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkAttributes *This, + BMDDeckLinkAttributeID cfgID, + BSTR *value); + + END_INTERFACE +} IDeckLinkAttributesVtbl; + +interface IDeckLinkAttributes { + CONST_VTBL IDeckLinkAttributesVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkAttributes_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkAttributes_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkAttributes methods ***/ +#define IDeckLinkAttributes_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkAttributes_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkAttributes_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkAttributes_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkAttributes_QueryInterface(IDeckLinkAttributes* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkAttributes_AddRef(IDeckLinkAttributes* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkAttributes_Release(IDeckLinkAttributes* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkAttributes methods ***/ +static FORCEINLINE HRESULT IDeckLinkAttributes_GetFlag(IDeckLinkAttributes* This,BMDDeckLinkAttributeID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAttributes_GetInt(IDeckLinkAttributes* This,BMDDeckLinkAttributeID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAttributes_GetFloat(IDeckLinkAttributes* This,BMDDeckLinkAttributeID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkAttributes_GetString(IDeckLinkAttributes* This,BMDDeckLinkAttributeID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkStatus interface + */ +#ifndef __IDeckLinkStatus_INTERFACE_DEFINED__ +#define __IDeckLinkStatus_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkStatus, 0x5f558200, 0x4028, 0x49bc, 0xbe,0xac, 0xdb,0x3f,0xa4,0xa9,0x6e,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f558200-4028-49bc-beac-db3fa4a96e46") +IDeckLinkStatus : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkStatusID statusID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkStatusID statusID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkStatusID statusID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkStatusID statusID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + BMDDeckLinkStatusID statusID, + void *buffer, + unsigned int *bufferSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkStatus, 0x5f558200, 0x4028, 0x49bc, 0xbe,0xac, 0xdb,0x3f,0xa4,0xa9,0x6e,0x46) +#endif +#else +typedef struct IDeckLinkStatusVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkStatus *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkStatus *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkStatus *This); + + /*** IDeckLinkStatus methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkStatus *This, + BMDDeckLinkStatusID statusID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkStatus *This, + BMDDeckLinkStatusID statusID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkStatus *This, + BMDDeckLinkStatusID statusID, + double *value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkStatus *This, + BMDDeckLinkStatusID statusID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkStatus *This, + BMDDeckLinkStatusID statusID, + void *buffer, + unsigned int *bufferSize); + + END_INTERFACE +} IDeckLinkStatusVtbl; + +interface IDeckLinkStatus { + CONST_VTBL IDeckLinkStatusVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkStatus_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkStatus_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkStatus methods ***/ +#define IDeckLinkStatus_GetFlag(This,statusID,value) (This)->lpVtbl->GetFlag(This,statusID,value) +#define IDeckLinkStatus_GetInt(This,statusID,value) (This)->lpVtbl->GetInt(This,statusID,value) +#define IDeckLinkStatus_GetFloat(This,statusID,value) (This)->lpVtbl->GetFloat(This,statusID,value) +#define IDeckLinkStatus_GetString(This,statusID,value) (This)->lpVtbl->GetString(This,statusID,value) +#define IDeckLinkStatus_GetBytes(This,statusID,buffer,bufferSize) (This)->lpVtbl->GetBytes(This,statusID,buffer,bufferSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkStatus_QueryInterface(IDeckLinkStatus* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkStatus_AddRef(IDeckLinkStatus* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkStatus_Release(IDeckLinkStatus* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkStatus methods ***/ +static FORCEINLINE HRESULT IDeckLinkStatus_GetFlag(IDeckLinkStatus* This,BMDDeckLinkStatusID statusID,BOOL *value) { + return This->lpVtbl->GetFlag(This,statusID,value); +} +static FORCEINLINE HRESULT IDeckLinkStatus_GetInt(IDeckLinkStatus* This,BMDDeckLinkStatusID statusID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,statusID,value); +} +static FORCEINLINE HRESULT IDeckLinkStatus_GetFloat(IDeckLinkStatus* This,BMDDeckLinkStatusID statusID,double *value) { + return This->lpVtbl->GetFloat(This,statusID,value); +} +static FORCEINLINE HRESULT IDeckLinkStatus_GetString(IDeckLinkStatus* This,BMDDeckLinkStatusID statusID,BSTR *value) { + return This->lpVtbl->GetString(This,statusID,value); +} +static FORCEINLINE HRESULT IDeckLinkStatus_GetBytes(IDeckLinkStatus* This,BMDDeckLinkStatusID statusID,void *buffer,unsigned int *bufferSize) { + return This->lpVtbl->GetBytes(This,statusID,buffer,bufferSize); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkStatus_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkKeyer interface + */ +#ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__ +#define __IDeckLinkKeyer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkKeyer, 0x89afcaf5, 0x65f8, 0x421e, 0x98,0xf7, 0x96,0xfe,0x5f,0x5b,0xfb,0xa3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("89afcaf5-65f8-421e-98f7-96fe5f5bfba3") +IDeckLinkKeyer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Enable( + BOOL isExternal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLevel( + unsigned char level) = 0; + + virtual HRESULT STDMETHODCALLTYPE RampUp( + unsigned int numberOfFrames) = 0; + + virtual HRESULT STDMETHODCALLTYPE RampDown( + unsigned int numberOfFrames) = 0; + + virtual HRESULT STDMETHODCALLTYPE Disable( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkKeyer, 0x89afcaf5, 0x65f8, 0x421e, 0x98,0xf7, 0x96,0xfe,0x5f,0x5b,0xfb,0xa3) +#endif +#else +typedef struct IDeckLinkKeyerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkKeyer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkKeyer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkKeyer *This); + + /*** IDeckLinkKeyer methods ***/ + HRESULT (STDMETHODCALLTYPE *Enable)( + IDeckLinkKeyer *This, + BOOL isExternal); + + HRESULT (STDMETHODCALLTYPE *SetLevel)( + IDeckLinkKeyer *This, + unsigned char level); + + HRESULT (STDMETHODCALLTYPE *RampUp)( + IDeckLinkKeyer *This, + unsigned int numberOfFrames); + + HRESULT (STDMETHODCALLTYPE *RampDown)( + IDeckLinkKeyer *This, + unsigned int numberOfFrames); + + HRESULT (STDMETHODCALLTYPE *Disable)( + IDeckLinkKeyer *This); + + END_INTERFACE +} IDeckLinkKeyerVtbl; + +interface IDeckLinkKeyer { + CONST_VTBL IDeckLinkKeyerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkKeyer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkKeyer_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkKeyer methods ***/ +#define IDeckLinkKeyer_Enable(This,isExternal) (This)->lpVtbl->Enable(This,isExternal) +#define IDeckLinkKeyer_SetLevel(This,level) (This)->lpVtbl->SetLevel(This,level) +#define IDeckLinkKeyer_RampUp(This,numberOfFrames) (This)->lpVtbl->RampUp(This,numberOfFrames) +#define IDeckLinkKeyer_RampDown(This,numberOfFrames) (This)->lpVtbl->RampDown(This,numberOfFrames) +#define IDeckLinkKeyer_Disable(This) (This)->lpVtbl->Disable(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkKeyer_QueryInterface(IDeckLinkKeyer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkKeyer_AddRef(IDeckLinkKeyer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkKeyer_Release(IDeckLinkKeyer* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkKeyer methods ***/ +static FORCEINLINE HRESULT IDeckLinkKeyer_Enable(IDeckLinkKeyer* This,BOOL isExternal) { + return This->lpVtbl->Enable(This,isExternal); +} +static FORCEINLINE HRESULT IDeckLinkKeyer_SetLevel(IDeckLinkKeyer* This,unsigned char level) { + return This->lpVtbl->SetLevel(This,level); +} +static FORCEINLINE HRESULT IDeckLinkKeyer_RampUp(IDeckLinkKeyer* This,unsigned int numberOfFrames) { + return This->lpVtbl->RampUp(This,numberOfFrames); +} +static FORCEINLINE HRESULT IDeckLinkKeyer_RampDown(IDeckLinkKeyer* This,unsigned int numberOfFrames) { + return This->lpVtbl->RampDown(This,numberOfFrames); +} +static FORCEINLINE HRESULT IDeckLinkKeyer_Disable(IDeckLinkKeyer* This) { + return This->lpVtbl->Disable(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoConversion interface + */ +#ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__ +#define __IDeckLinkVideoConversion_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoConversion, 0x3bbcb8a2, 0xda2c, 0x42d9, 0xb5,0xd8, 0x88,0x08,0x36,0x44,0xe9,0x9a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3bbcb8a2-da2c-42d9-b5d8-88083644e99a") +IDeckLinkVideoConversion : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ConvertFrame( + IDeckLinkVideoFrame *srcFrame, + IDeckLinkVideoFrame *dstFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoConversion, 0x3bbcb8a2, 0xda2c, 0x42d9, 0xb5,0xd8, 0x88,0x08,0x36,0x44,0xe9,0x9a) +#endif +#else +typedef struct IDeckLinkVideoConversionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoConversion *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoConversion *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoConversion *This); + + /*** IDeckLinkVideoConversion methods ***/ + HRESULT (STDMETHODCALLTYPE *ConvertFrame)( + IDeckLinkVideoConversion *This, + IDeckLinkVideoFrame *srcFrame, + IDeckLinkVideoFrame *dstFrame); + + END_INTERFACE +} IDeckLinkVideoConversionVtbl; + +interface IDeckLinkVideoConversion { + CONST_VTBL IDeckLinkVideoConversionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoConversion_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoConversion_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoConversion methods ***/ +#define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame) (This)->lpVtbl->ConvertFrame(This,srcFrame,dstFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoConversion_QueryInterface(IDeckLinkVideoConversion* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoConversion_AddRef(IDeckLinkVideoConversion* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoConversion_Release(IDeckLinkVideoConversion* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoConversion methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoConversion_ConvertFrame(IDeckLinkVideoConversion* This,IDeckLinkVideoFrame *srcFrame,IDeckLinkVideoFrame *dstFrame) { + return This->lpVtbl->ConvertFrame(This,srcFrame,dstFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDeviceNotificationCallback interface + */ +#ifndef __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ +#define __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeviceNotificationCallback, 0x4997053b, 0x0adf, 0x4cc8, 0xac,0x70, 0x7a,0x50,0xc4,0xbe,0x72,0x8f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4997053b-0adf-4cc8-ac70-7a50c4be728f") +IDeckLinkDeviceNotificationCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived( + IDeckLink *deckLinkDevice) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved( + IDeckLink *deckLinkDevice) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeviceNotificationCallback, 0x4997053b, 0x0adf, 0x4cc8, 0xac,0x70, 0x7a,0x50,0xc4,0xbe,0x72,0x8f) +#endif +#else +typedef struct IDeckLinkDeviceNotificationCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeviceNotificationCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeviceNotificationCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeviceNotificationCallback *This); + + /*** IDeckLinkDeviceNotificationCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *DeckLinkDeviceArrived)( + IDeckLinkDeviceNotificationCallback *This, + IDeckLink *deckLinkDevice); + + HRESULT (STDMETHODCALLTYPE *DeckLinkDeviceRemoved)( + IDeckLinkDeviceNotificationCallback *This, + IDeckLink *deckLinkDevice); + + END_INTERFACE +} IDeckLinkDeviceNotificationCallbackVtbl; + +interface IDeckLinkDeviceNotificationCallback { + CONST_VTBL IDeckLinkDeviceNotificationCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeviceNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeviceNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeviceNotificationCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeviceNotificationCallback methods ***/ +#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(This,deckLinkDevice) (This)->lpVtbl->DeckLinkDeviceArrived(This,deckLinkDevice) +#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(This,deckLinkDevice) (This)->lpVtbl->DeckLinkDeviceRemoved(This,deckLinkDevice) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeviceNotificationCallback_QueryInterface(IDeckLinkDeviceNotificationCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeviceNotificationCallback_AddRef(IDeckLinkDeviceNotificationCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeviceNotificationCallback_Release(IDeckLinkDeviceNotificationCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeviceNotificationCallback methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(IDeckLinkDeviceNotificationCallback* This,IDeckLink *deckLinkDevice) { + return This->lpVtbl->DeckLinkDeviceArrived(This,deckLinkDevice); +} +static FORCEINLINE HRESULT IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(IDeckLinkDeviceNotificationCallback* This,IDeckLink *deckLinkDevice) { + return This->lpVtbl->DeckLinkDeviceRemoved(This,deckLinkDevice); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDiscovery interface + */ +#ifndef __IDeckLinkDiscovery_INTERFACE_DEFINED__ +#define __IDeckLinkDiscovery_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDiscovery, 0xcdbf631c, 0xbc76, 0x45fa, 0xb4,0x4d, 0xc5,0x50,0x59,0xbc,0x61,0x01); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cdbf631c-bc76-45fa-b44d-c55059bc6101") +IDeckLinkDiscovery : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( + IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDiscovery, 0xcdbf631c, 0xbc76, 0x45fa, 0xb4,0x4d, 0xc5,0x50,0x59,0xbc,0x61,0x01) +#endif +#else +typedef struct IDeckLinkDiscoveryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDiscovery *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDiscovery *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDiscovery *This); + + /*** IDeckLinkDiscovery methods ***/ + HRESULT (STDMETHODCALLTYPE *InstallDeviceNotifications)( + IDeckLinkDiscovery *This, + IDeckLinkDeviceNotificationCallback *deviceNotificationCallback); + + HRESULT (STDMETHODCALLTYPE *UninstallDeviceNotifications)( + IDeckLinkDiscovery *This); + + END_INTERFACE +} IDeckLinkDiscoveryVtbl; + +interface IDeckLinkDiscovery { + CONST_VTBL IDeckLinkDiscoveryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDiscovery_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDiscovery_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDiscovery_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDiscovery methods ***/ +#define IDeckLinkDiscovery_InstallDeviceNotifications(This,deviceNotificationCallback) (This)->lpVtbl->InstallDeviceNotifications(This,deviceNotificationCallback) +#define IDeckLinkDiscovery_UninstallDeviceNotifications(This) (This)->lpVtbl->UninstallDeviceNotifications(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDiscovery_QueryInterface(IDeckLinkDiscovery* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDiscovery_AddRef(IDeckLinkDiscovery* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDiscovery_Release(IDeckLinkDiscovery* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDiscovery methods ***/ +static FORCEINLINE HRESULT IDeckLinkDiscovery_InstallDeviceNotifications(IDeckLinkDiscovery* This,IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) { + return This->lpVtbl->InstallDeviceNotifications(This,deviceNotificationCallback); +} +static FORCEINLINE HRESULT IDeckLinkDiscovery_UninstallDeviceNotifications(IDeckLinkDiscovery* This) { + return This->lpVtbl->UninstallDeviceNotifications(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDiscovery_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CDeckLinkIterator coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkIterator, 0x87d2693f, 0x8d4a, 0x45c7, 0xb4,0x3f, 0x10,0xac,0xba,0x25,0xe6,0x8f); + +#ifdef __cplusplus +class DECLSPEC_UUID("87d2693f-8d4a-45c7-b43f-10acba25e68f") CDeckLinkIterator; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkIterator, 0x87d2693f, 0x8d4a, 0x45c7, 0xb4,0x3f, 0x10,0xac,0xba,0x25,0xe6,0x8f) +#endif +#endif + +/***************************************************************************** + * CDeckLinkAPIInformation coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkAPIInformation, 0x263ca19f, 0xed09, 0x482e, 0x9f,0x9d, 0x84,0x00,0x57,0x83,0xa2,0x37); + +#ifdef __cplusplus +class DECLSPEC_UUID("263ca19f-ed09-482e-9f9d-84005783a237") CDeckLinkAPIInformation; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkAPIInformation, 0x263ca19f, 0xed09, 0x482e, 0x9f,0x9d, 0x84,0x00,0x57,0x83,0xa2,0x37) +#endif +#endif + +/***************************************************************************** + * CDeckLinkGLScreenPreviewHelper coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkGLScreenPreviewHelper, 0xf63e77c7, 0xb655, 0x4a4a, 0x9a,0xd0, 0x3c,0xa8,0x5d,0x39,0x43,0x43); + +#ifdef __cplusplus +class DECLSPEC_UUID("f63e77c7-b655-4a4a-9ad0-3ca85d394343") CDeckLinkGLScreenPreviewHelper; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkGLScreenPreviewHelper, 0xf63e77c7, 0xb655, 0x4a4a, 0x9a,0xd0, 0x3c,0xa8,0x5d,0x39,0x43,0x43) +#endif +#endif + +/***************************************************************************** + * CDeckLinkDX9ScreenPreviewHelper coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkDX9ScreenPreviewHelper, 0xcc010023, 0xe01d, 0x4525, 0x9d,0x59, 0x80,0xc8,0xab,0x3d,0xc7,0xa0); + +#ifdef __cplusplus +class DECLSPEC_UUID("cc010023-e01d-4525-9d59-80c8ab3dc7a0") CDeckLinkDX9ScreenPreviewHelper; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkDX9ScreenPreviewHelper, 0xcc010023, 0xe01d, 0x4525, 0x9d,0x59, 0x80,0xc8,0xab,0x3d,0xc7,0xa0) +#endif +#endif + +/***************************************************************************** + * CDeckLinkVideoConversion coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkVideoConversion, 0x7dbbbb11, 0x5b7b, 0x467d, 0xae,0xa4, 0xce,0xa4,0x68,0xfd,0x36,0x8c); + +#ifdef __cplusplus +class DECLSPEC_UUID("7dbbbb11-5b7b-467d-aea4-cea468fd368c") CDeckLinkVideoConversion; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkVideoConversion, 0x7dbbbb11, 0x5b7b, 0x467d, 0xae,0xa4, 0xce,0xa4,0x68,0xfd,0x36,0x8c) +#endif +#endif + +/***************************************************************************** + * CDeckLinkDiscovery coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkDiscovery, 0x652615d4, 0x26cd, 0x4514, 0xb1,0x61, 0x2f,0xd5,0x07,0x2e,0xd0,0x08); + +#ifdef __cplusplus +class DECLSPEC_UUID("652615d4-26cd-4514-b161-2fd5072ed008") CDeckLinkDiscovery; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkDiscovery, 0x652615d4, 0x26cd, 0x4514, 0xb1,0x61, 0x2f,0xd5,0x07,0x2e,0xd0,0x08) +#endif +#endif + +typedef enum _BMDDeckLinkConfigurationID_v10_9 { + bmdDeckLinkConfig1080pNotPsF_v10_9 = 0x6670726f +} BMDDeckLinkConfigurationID_v10_9; +#ifndef __IDeckLinkConfiguration_v10_9_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_9_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_9 IDeckLinkConfiguration_v10_9; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_9; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkConfiguration_v10_9 interface + */ +#ifndef __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkConfiguration_v10_9, 0xcb71734a, 0xfe37, 0x4e8d, 0x8e,0x13, 0x80,0x21,0x33,0xa1,0xc3,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cb71734a-fe37-4e8d-8e13-802133a1c3f2") +IDeckLinkConfiguration_v10_9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkConfiguration_v10_9, 0xcb71734a, 0xfe37, 0x4e8d, 0x8e,0x13, 0x80,0x21,0x33,0xa1,0xc3,0xf2) +#endif +#else +typedef struct IDeckLinkConfiguration_v10_9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkConfiguration_v10_9 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkConfiguration_v10_9 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkConfiguration_v10_9 *This); + + /*** IDeckLinkConfiguration_v10_9 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkConfiguration_v10_9 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *WriteConfigurationToPreferences)( + IDeckLinkConfiguration_v10_9 *This); + + END_INTERFACE +} IDeckLinkConfiguration_v10_9Vtbl; + +interface IDeckLinkConfiguration_v10_9 { + CONST_VTBL IDeckLinkConfiguration_v10_9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkConfiguration_v10_9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkConfiguration_v10_9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkConfiguration_v10_9_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkConfiguration_v10_9 methods ***/ +#define IDeckLinkConfiguration_v10_9_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_9_WriteConfigurationToPreferences(This) (This)->lpVtbl->WriteConfigurationToPreferences(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_QueryInterface(IDeckLinkConfiguration_v10_9* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_9_AddRef(IDeckLinkConfiguration_v10_9* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_9_Release(IDeckLinkConfiguration_v10_9* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkConfiguration_v10_9 methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_SetFlag(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_GetFlag(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_SetInt(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_GetInt(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_SetFloat(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_GetFloat(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_SetString(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_GetString(IDeckLinkConfiguration_v10_9* This,BMDDeckLinkConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_9_WriteConfigurationToPreferences(IDeckLinkConfiguration_v10_9* This) { + return This->lpVtbl->WriteConfigurationToPreferences(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CBMDStreamingDiscovery_v10_8 coclass + */ + +DEFINE_GUID(CLSID_CBMDStreamingDiscovery_v10_8, 0x0caa31f6, 0x8a26, 0x40b0, 0x86,0xa4, 0xbf,0x58,0xdc,0xca,0x71,0x0c); + +#ifdef __cplusplus +class DECLSPEC_UUID("0caa31f6-8a26-40b0-86a4-bf58dcca710c") CBMDStreamingDiscovery_v10_8; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CBMDStreamingDiscovery_v10_8, 0x0caa31f6, 0x8a26, 0x40b0, 0x86,0xa4, 0xbf,0x58,0xdc,0xca,0x71,0x0c) +#endif +#endif + +/***************************************************************************** + * CDeckLinkIterator_v10_8 coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkIterator_v10_8, 0x1f2e109a, 0x8f4f, 0x49e4, 0x92,0x03, 0x13,0x55,0x95,0xcb,0x6f,0xa5); + +#ifdef __cplusplus +class DECLSPEC_UUID("1f2e109a-8f4f-49e4-9203-135595cb6fa5") CDeckLinkIterator_v10_8; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkIterator_v10_8, 0x1f2e109a, 0x8f4f, 0x49e4, 0x92,0x03, 0x13,0x55,0x95,0xcb,0x6f,0xa5) +#endif +#endif + +/***************************************************************************** + * CDeckLinkDiscovery_v10_8 coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkDiscovery_v10_8, 0x1073a05c, 0xd885, 0x47e9, 0xb3,0xc6, 0x12,0x9b,0x3f,0x9f,0x64,0x8b); + +#ifdef __cplusplus +class DECLSPEC_UUID("1073a05c-d885-47e9-b3c6-129b3f9f648b") CDeckLinkDiscovery_v10_8; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkDiscovery_v10_8, 0x1073a05c, 0xd885, 0x47e9, 0xb3,0xc6, 0x12,0x9b,0x3f,0x9f,0x64,0x8b) +#endif +#endif + +typedef enum _BMDDeckLinkAttributeID_v10_6 { + BMDDeckLinkSupportsDesktopDisplay_v10_6 = 0x65787464 +} BMDDeckLinkAttributeID_v10_6; +typedef enum _BMDIdleVideoOutputOperation_v10_6 { + bmdIdleVideoOutputDesktop_v10_6 = 0x6465736b +} BMDIdleVideoOutputOperation_v10_6; +typedef enum _BMDDeckLinkAttributeID_v10_5 { + BMDDeckLinkDeviceBusyState_v10_5 = 0x64627374 +} BMDDeckLinkAttributeID_v10_5; +#ifndef __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ +#define __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ +typedef interface IDeckLinkEncoderConfiguration_v10_5 IDeckLinkEncoderConfiguration_v10_5; +#ifdef __cplusplus +interface IDeckLinkEncoderConfiguration_v10_5; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkEncoderConfiguration_v10_5 interface + */ +#ifndef __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ +#define __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkEncoderConfiguration_v10_5, 0x67455668, 0x0848, 0x45df, 0x8d,0x8e, 0x35,0x0a,0x77,0xc9,0xa0,0x28); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("67455668-0848-45df-8d8e-350a77c9a028") +IDeckLinkEncoderConfiguration_v10_5 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkEncoderConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkEncoderConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurationInfo( + void *buffer, + LONG bufferSize, + LONG *returnedSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkEncoderConfiguration_v10_5, 0x67455668, 0x0848, 0x45df, 0x8d,0x8e, 0x35,0x0a,0x77,0xc9,0xa0,0x28) +#endif +#else +typedef struct IDeckLinkEncoderConfiguration_v10_5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkEncoderConfiguration_v10_5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkEncoderConfiguration_v10_5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkEncoderConfiguration_v10_5 *This); + + /*** IDeckLinkEncoderConfiguration_v10_5 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkEncoderConfiguration_v10_5 *This, + BMDDeckLinkEncoderConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *GetDecoderConfigurationInfo)( + IDeckLinkEncoderConfiguration_v10_5 *This, + void *buffer, + LONG bufferSize, + LONG *returnedSize); + + END_INTERFACE +} IDeckLinkEncoderConfiguration_v10_5Vtbl; + +interface IDeckLinkEncoderConfiguration_v10_5 { + CONST_VTBL IDeckLinkEncoderConfiguration_v10_5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkEncoderConfiguration_v10_5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkEncoderConfiguration_v10_5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkEncoderConfiguration_v10_5_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkEncoderConfiguration_v10_5 methods ***/ +#define IDeckLinkEncoderConfiguration_v10_5_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) (This)->lpVtbl->GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_QueryInterface(IDeckLinkEncoderConfiguration_v10_5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkEncoderConfiguration_v10_5_AddRef(IDeckLinkEncoderConfiguration_v10_5* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkEncoderConfiguration_v10_5_Release(IDeckLinkEncoderConfiguration_v10_5* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkEncoderConfiguration_v10_5 methods ***/ +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_SetFlag(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_GetFlag(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_SetInt(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_GetInt(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_SetFloat(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_GetFloat(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_SetString(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_GetString(IDeckLinkEncoderConfiguration_v10_5* This,BMDDeckLinkEncoderConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(IDeckLinkEncoderConfiguration_v10_5* This,void *buffer,LONG bufferSize,LONG *returnedSize) { + return This->lpVtbl->GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ */ + +typedef enum _BMDDeckLinkConfigurationID_v10_4 { + bmdDeckLinkConfigSingleLinkVideoOutput_v10_4 = 0x73676c6f +} BMDDeckLinkConfigurationID_v10_4; +#ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_4; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkConfiguration_v10_4 interface + */ +#ifndef __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkConfiguration_v10_4, 0x1e69fcf6, 0x4203, 0x4936, 0x80,0x76, 0x2a,0x9f,0x4c,0xfd,0x50,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1e69fcf6-4203-4936-8076-2a9f4cfd50cb") +IDeckLinkConfiguration_v10_4 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkConfiguration_v10_4, 0x1e69fcf6, 0x4203, 0x4936, 0x80,0x76, 0x2a,0x9f,0x4c,0xfd,0x50,0xcb) +#endif +#else +typedef struct IDeckLinkConfiguration_v10_4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkConfiguration_v10_4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkConfiguration_v10_4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkConfiguration_v10_4 *This); + + /*** IDeckLinkConfiguration_v10_4 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkConfiguration_v10_4 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *WriteConfigurationToPreferences)( + IDeckLinkConfiguration_v10_4 *This); + + END_INTERFACE +} IDeckLinkConfiguration_v10_4Vtbl; + +interface IDeckLinkConfiguration_v10_4 { + CONST_VTBL IDeckLinkConfiguration_v10_4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkConfiguration_v10_4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkConfiguration_v10_4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkConfiguration_v10_4_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkConfiguration_v10_4 methods ***/ +#define IDeckLinkConfiguration_v10_4_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_4_WriteConfigurationToPreferences(This) (This)->lpVtbl->WriteConfigurationToPreferences(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_QueryInterface(IDeckLinkConfiguration_v10_4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_4_AddRef(IDeckLinkConfiguration_v10_4* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_4_Release(IDeckLinkConfiguration_v10_4* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkConfiguration_v10_4 methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_SetFlag(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_GetFlag(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_SetInt(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_GetInt(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_SetFloat(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_GetFloat(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_SetString(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_GetString(IDeckLinkConfiguration_v10_4* This,BMDDeckLinkConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_4_WriteConfigurationToPreferences(IDeckLinkConfiguration_v10_4* This) { + return This->lpVtbl->WriteConfigurationToPreferences(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ */ + +typedef enum _BMDDeckLinkConfigurationID_v10_2 { + bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = 0x33676273 +} BMDDeckLinkConfigurationID_v10_2; +typedef enum _BMDAudioConnection_v10_2 { + bmdAudioConnectionEmbedded_v10_2 = 0x656d6264, + bmdAudioConnectionAESEBU_v10_2 = 0x61657320, + bmdAudioConnectionAnalog_v10_2 = 0x616e6c67, + bmdAudioConnectionAnalogXLR_v10_2 = 0x61786c72, + bmdAudioConnectionAnalogRCA_v10_2 = 0x61726361 +} BMDAudioConnection_v10_2; +#ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v10_2; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkConfiguration_v10_2 interface + */ +#ifndef __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkConfiguration_v10_2, 0xc679a35b, 0x610c, 0x4d09, 0xb7,0x48, 0x1d,0x04,0x78,0x10,0x0f,0xc0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c679a35b-610c-4d09-b748-1d0478100fc0") +IDeckLinkConfiguration_v10_2 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFlag( + BMDDeckLinkConfigurationID cfgID, + BOOL *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInt( + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFloat( + BMDDeckLinkConfigurationID cfgID, + double value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFloat( + BMDDeckLinkConfigurationID cfgID, + double *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetString( + BMDDeckLinkConfigurationID cfgID, + BSTR value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BMDDeckLinkConfigurationID cfgID, + BSTR *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkConfiguration_v10_2, 0xc679a35b, 0x610c, 0x4d09, 0xb7,0x48, 0x1d,0x04,0x78,0x10,0x0f,0xc0) +#endif +#else +typedef struct IDeckLinkConfiguration_v10_2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkConfiguration_v10_2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkConfiguration_v10_2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkConfiguration_v10_2 *This); + + /*** IDeckLinkConfiguration_v10_2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlag)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL value); + + HRESULT (STDMETHODCALLTYPE *GetFlag)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + BOOL *value); + + HRESULT (STDMETHODCALLTYPE *SetInt)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG value); + + HRESULT (STDMETHODCALLTYPE *GetInt)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + LONGLONG *value); + + HRESULT (STDMETHODCALLTYPE *SetFloat)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + double value); + + HRESULT (STDMETHODCALLTYPE *GetFloat)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + double *value); + + HRESULT (STDMETHODCALLTYPE *SetString)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR value); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkConfiguration_v10_2 *This, + BMDDeckLinkConfigurationID cfgID, + BSTR *value); + + HRESULT (STDMETHODCALLTYPE *WriteConfigurationToPreferences)( + IDeckLinkConfiguration_v10_2 *This); + + END_INTERFACE +} IDeckLinkConfiguration_v10_2Vtbl; + +interface IDeckLinkConfiguration_v10_2 { + CONST_VTBL IDeckLinkConfiguration_v10_2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkConfiguration_v10_2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkConfiguration_v10_2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkConfiguration_v10_2_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkConfiguration_v10_2 methods ***/ +#define IDeckLinkConfiguration_v10_2_SetFlag(This,cfgID,value) (This)->lpVtbl->SetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_GetFlag(This,cfgID,value) (This)->lpVtbl->GetFlag(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_SetInt(This,cfgID,value) (This)->lpVtbl->SetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_GetInt(This,cfgID,value) (This)->lpVtbl->GetInt(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_SetFloat(This,cfgID,value) (This)->lpVtbl->SetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_GetFloat(This,cfgID,value) (This)->lpVtbl->GetFloat(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_SetString(This,cfgID,value) (This)->lpVtbl->SetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_GetString(This,cfgID,value) (This)->lpVtbl->GetString(This,cfgID,value) +#define IDeckLinkConfiguration_v10_2_WriteConfigurationToPreferences(This) (This)->lpVtbl->WriteConfigurationToPreferences(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_QueryInterface(IDeckLinkConfiguration_v10_2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_2_AddRef(IDeckLinkConfiguration_v10_2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v10_2_Release(IDeckLinkConfiguration_v10_2* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkConfiguration_v10_2 methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_SetFlag(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,BOOL value) { + return This->lpVtbl->SetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_GetFlag(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,BOOL *value) { + return This->lpVtbl->GetFlag(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_SetInt(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,LONGLONG value) { + return This->lpVtbl->SetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_GetInt(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,LONGLONG *value) { + return This->lpVtbl->GetInt(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_SetFloat(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,double value) { + return This->lpVtbl->SetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_GetFloat(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,double *value) { + return This->lpVtbl->GetFloat(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_SetString(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,BSTR value) { + return This->lpVtbl->SetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_GetString(IDeckLinkConfiguration_v10_2* This,BMDDeckLinkConfigurationID cfgID,BSTR *value) { + return This->lpVtbl->GetString(This,cfgID,value); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v10_2_WriteConfigurationToPreferences(IDeckLinkConfiguration_v10_2* This) { + return This->lpVtbl->WriteConfigurationToPreferences(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkOutput_v9_9 interface + */ +#ifndef __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkOutput_v9_9, 0xa3ef0963, 0x0862, 0x44ed, 0x92,0xa9, 0xee,0x89,0xab,0xf4,0x31,0xc7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a3ef0963-0862-44ed-92a9-ee89abf431c7") +IDeckLinkOutput_v9_9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoOutputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + IDeckLinkVideoOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + unsigned int *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( + BMDReferenceStatus *referenceStatus) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkOutput_v9_9, 0xa3ef0963, 0x0862, 0x44ed, 0x92,0xa9, 0xee,0x89,0xab,0xf4,0x31,0xc7) +#endif +#else +typedef struct IDeckLinkOutput_v9_9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkOutput_v9_9 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkOutput_v9_9 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkOutput_v9_9 *This); + + /*** IDeckLinkOutput_v9_9 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkOutput_v9_9 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoOutputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoOutput)( + IDeckLinkOutput_v9_9 *This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoOutput)( + IDeckLinkOutput_v9_9 *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrame)( + IDeckLinkOutput_v9_9 *This, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame **outFrame); + + HRESULT (STDMETHODCALLTYPE *CreateAncillaryData)( + IDeckLinkOutput_v9_9 *This, + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT (STDMETHODCALLTYPE *DisplayVideoFrameSync)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkVideoFrame *theFrame); + + HRESULT (STDMETHODCALLTYPE *ScheduleVideoFrame)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkVideoFrame *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkVideoOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetBufferedVideoFrameCount)( + IDeckLinkOutput_v9_9 *This, + unsigned int *bufferedFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioOutput)( + IDeckLinkOutput_v9_9 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT (STDMETHODCALLTYPE *DisableAudioOutput)( + IDeckLinkOutput_v9_9 *This); + + HRESULT (STDMETHODCALLTYPE *WriteAudioSamplesSync)( + IDeckLinkOutput_v9_9 *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *BeginAudioPreroll)( + IDeckLinkOutput_v9_9 *This); + + HRESULT (STDMETHODCALLTYPE *EndAudioPreroll)( + IDeckLinkOutput_v9_9 *This); + + HRESULT (STDMETHODCALLTYPE *ScheduleAudioSamples)( + IDeckLinkOutput_v9_9 *This, + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkOutput_v9_9 *This, + unsigned int *bufferedSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *FlushBufferedAudioSamples)( + IDeckLinkOutput_v9_9 *This); + + HRESULT (STDMETHODCALLTYPE *SetAudioCallback)( + IDeckLinkOutput_v9_9 *This, + IDeckLinkAudioOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *StartScheduledPlayback)( + IDeckLinkOutput_v9_9 *This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *StopScheduledPlayback)( + IDeckLinkOutput_v9_9 *This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *IsScheduledPlaybackRunning)( + IDeckLinkOutput_v9_9 *This, + BOOL *active); + + HRESULT (STDMETHODCALLTYPE *GetScheduledStreamTime)( + IDeckLinkOutput_v9_9 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *GetReferenceStatus)( + IDeckLinkOutput_v9_9 *This, + BMDReferenceStatus *referenceStatus); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkOutput_v9_9 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkOutput_v9_9Vtbl; + +interface IDeckLinkOutput_v9_9 { + CONST_VTBL IDeckLinkOutput_v9_9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkOutput_v9_9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkOutput_v9_9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkOutput_v9_9_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkOutput_v9_9 methods ***/ +#define IDeckLinkOutput_v9_9_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) +#define IDeckLinkOutput_v9_9_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkOutput_v9_9_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkOutput_v9_9_EnableVideoOutput(This,displayMode,flags) (This)->lpVtbl->EnableVideoOutput(This,displayMode,flags) +#define IDeckLinkOutput_v9_9_DisableVideoOutput(This) (This)->lpVtbl->DisableVideoOutput(This) +#define IDeckLinkOutput_v9_9_SetVideoOutputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkOutput_v9_9_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_v9_9_CreateAncillaryData(This,pixelFormat,outBuffer) (This)->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer) +#define IDeckLinkOutput_v9_9_DisplayVideoFrameSync(This,theFrame) (This)->lpVtbl->DisplayVideoFrameSync(This,theFrame) +#define IDeckLinkOutput_v9_9_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) (This)->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) +#define IDeckLinkOutput_v9_9_SetScheduledFrameCompletionCallback(This,theCallback) (This)->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback) +#define IDeckLinkOutput_v9_9_GetBufferedVideoFrameCount(This,bufferedFrameCount) (This)->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount) +#define IDeckLinkOutput_v9_9_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) (This)->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) +#define IDeckLinkOutput_v9_9_DisableAudioOutput(This) (This)->lpVtbl->DisableAudioOutput(This) +#define IDeckLinkOutput_v9_9_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) (This)->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) +#define IDeckLinkOutput_v9_9_BeginAudioPreroll(This) (This)->lpVtbl->BeginAudioPreroll(This) +#define IDeckLinkOutput_v9_9_EndAudioPreroll(This) (This)->lpVtbl->EndAudioPreroll(This) +#define IDeckLinkOutput_v9_9_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) (This)->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) +#define IDeckLinkOutput_v9_9_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) +#define IDeckLinkOutput_v9_9_FlushBufferedAudioSamples(This) (This)->lpVtbl->FlushBufferedAudioSamples(This) +#define IDeckLinkOutput_v9_9_SetAudioCallback(This,theCallback) (This)->lpVtbl->SetAudioCallback(This,theCallback) +#define IDeckLinkOutput_v9_9_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) (This)->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) +#define IDeckLinkOutput_v9_9_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) (This)->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) +#define IDeckLinkOutput_v9_9_IsScheduledPlaybackRunning(This,active) (This)->lpVtbl->IsScheduledPlaybackRunning(This,active) +#define IDeckLinkOutput_v9_9_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) (This)->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) +#define IDeckLinkOutput_v9_9_GetReferenceStatus(This,referenceStatus) (This)->lpVtbl->GetReferenceStatus(This,referenceStatus) +#define IDeckLinkOutput_v9_9_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_QueryInterface(IDeckLinkOutput_v9_9* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkOutput_v9_9_AddRef(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkOutput_v9_9_Release(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkOutput_v9_9 methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_DoesSupportVideoMode(IDeckLinkOutput_v9_9* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoOutputFlags flags,BMDDisplayModeSupport *result,IDeckLinkDisplayMode **resultDisplayMode) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetDisplayModeIterator(IDeckLinkOutput_v9_9* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_SetScreenPreviewCallback(IDeckLinkOutput_v9_9* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_EnableVideoOutput(IDeckLinkOutput_v9_9* This,BMDDisplayMode displayMode,BMDVideoOutputFlags flags) { + return This->lpVtbl->EnableVideoOutput(This,displayMode,flags); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_DisableVideoOutput(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->DisableVideoOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_SetVideoOutputFrameMemoryAllocator(IDeckLinkOutput_v9_9* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_CreateVideoFrame(IDeckLinkOutput_v9_9* This,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkMutableVideoFrame **outFrame) { + return This->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_CreateAncillaryData(IDeckLinkOutput_v9_9* This,BMDPixelFormat pixelFormat,IDeckLinkVideoFrameAncillary **outBuffer) { + return This->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_DisplayVideoFrameSync(IDeckLinkOutput_v9_9* This,IDeckLinkVideoFrame *theFrame) { + return This->lpVtbl->DisplayVideoFrameSync(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_ScheduleVideoFrame(IDeckLinkOutput_v9_9* This,IDeckLinkVideoFrame *theFrame,BMDTimeValue displayTime,BMDTimeValue displayDuration,BMDTimeScale timeScale) { + return This->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_SetScheduledFrameCompletionCallback(IDeckLinkOutput_v9_9* This,IDeckLinkVideoOutputCallback *theCallback) { + return This->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetBufferedVideoFrameCount(IDeckLinkOutput_v9_9* This,unsigned int *bufferedFrameCount) { + return This->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_EnableAudioOutput(IDeckLinkOutput_v9_9* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount,BMDAudioOutputStreamType streamType) { + return This->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_DisableAudioOutput(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->DisableAudioOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_WriteAudioSamplesSync(IDeckLinkOutput_v9_9* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesWritten) { + return This->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_BeginAudioPreroll(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->BeginAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_EndAudioPreroll(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->EndAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_ScheduleAudioSamples(IDeckLinkOutput_v9_9* This,void *buffer,unsigned int sampleFrameCount,BMDTimeValue streamTime,BMDTimeScale timeScale,unsigned int *sampleFramesWritten) { + return This->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetBufferedAudioSampleFrameCount(IDeckLinkOutput_v9_9* This,unsigned int *bufferedSampleFrameCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_FlushBufferedAudioSamples(IDeckLinkOutput_v9_9* This) { + return This->lpVtbl->FlushBufferedAudioSamples(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_SetAudioCallback(IDeckLinkOutput_v9_9* This,IDeckLinkAudioOutputCallback *theCallback) { + return This->lpVtbl->SetAudioCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_StartScheduledPlayback(IDeckLinkOutput_v9_9* This,BMDTimeValue playbackStartTime,BMDTimeScale timeScale,double playbackSpeed) { + return This->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_StopScheduledPlayback(IDeckLinkOutput_v9_9* This,BMDTimeValue stopPlaybackAtTime,BMDTimeValue *actualStopTime,BMDTimeScale timeScale) { + return This->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_IsScheduledPlaybackRunning(IDeckLinkOutput_v9_9* This,BOOL *active) { + return This->lpVtbl->IsScheduledPlaybackRunning(This,active); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetScheduledStreamTime(IDeckLinkOutput_v9_9* This,BMDTimeScale desiredTimeScale,BMDTimeValue *streamTime,double *playbackSpeed) { + return This->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetReferenceStatus(IDeckLinkOutput_v9_9* This,BMDReferenceStatus *referenceStatus) { + return This->lpVtbl->GetReferenceStatus(This,referenceStatus); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v9_9_GetHardwareReferenceClock(IDeckLinkOutput_v9_9* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInput_v9_2 interface + */ +#ifndef __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInput_v9_2, 0x6d40ef78, 0x28b9, 0x4e21, 0x99,0x0d, 0x95,0xbb,0x77,0x50,0xa0,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6d40ef78-28b9-4e21-990d-95bb7750a04f") +IDeckLinkInput_v9_2 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + unsigned int *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + unsigned int *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkInputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInput_v9_2, 0x6d40ef78, 0x28b9, 0x4e21, 0x99,0x0d, 0x95,0xbb,0x77,0x50,0xa0,0x4f) +#endif +#else +typedef struct IDeckLinkInput_v9_2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInput_v9_2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInput_v9_2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInput_v9_2 *This); + + /*** IDeckLinkInput_v9_2 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkInput_v9_2 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags, + BMDDisplayModeSupport *result, + IDeckLinkDisplayMode **resultDisplayMode); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkInput_v9_2 *This, + IDeckLinkDisplayModeIterator **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkInput_v9_2 *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkInput_v9_2 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableVideoFrameCount)( + IDeckLinkInput_v9_2 *This, + unsigned int *availableFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkInput_v9_2 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount)( + IDeckLinkInput_v9_2 *This, + unsigned int *availableSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *FlushStreams)( + IDeckLinkInput_v9_2 *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkInput_v9_2 *This, + IDeckLinkInputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkInput_v9_2 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkInput_v9_2Vtbl; + +interface IDeckLinkInput_v9_2 { + CONST_VTBL IDeckLinkInput_v9_2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInput_v9_2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInput_v9_2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInput_v9_2_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInput_v9_2 methods ***/ +#define IDeckLinkInput_v9_2_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) +#define IDeckLinkInput_v9_2_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkInput_v9_2_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkInput_v9_2_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkInput_v9_2_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(This,availableFrameCount) (This)->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount) +#define IDeckLinkInput_v9_2_EnableAudioInput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkInput_v9_2_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) (This)->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) +#define IDeckLinkInput_v9_2_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkInput_v9_2_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkInput_v9_2_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkInput_v9_2_FlushStreams(This) (This)->lpVtbl->FlushStreams(This) +#define IDeckLinkInput_v9_2_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#define IDeckLinkInput_v9_2_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_QueryInterface(IDeckLinkInput_v9_2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInput_v9_2_AddRef(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInput_v9_2_Release(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInput_v9_2 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_DoesSupportVideoMode(IDeckLinkInput_v9_2* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags,BMDDisplayModeSupport *result,IDeckLinkDisplayMode **resultDisplayMode) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_GetDisplayModeIterator(IDeckLinkInput_v9_2* This,IDeckLinkDisplayModeIterator **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_SetScreenPreviewCallback(IDeckLinkInput_v9_2* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_EnableVideoInput(IDeckLinkInput_v9_2* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_DisableVideoInput(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(IDeckLinkInput_v9_2* This,unsigned int *availableFrameCount) { + return This->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_EnableAudioInput(IDeckLinkInput_v9_2* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_DisableAudioInput(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(IDeckLinkInput_v9_2* This,unsigned int *availableSampleFrameCount) { + return This->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_StartStreams(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_StopStreams(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_PauseStreams(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_FlushStreams(IDeckLinkInput_v9_2* This) { + return This->lpVtbl->FlushStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_SetCallback(IDeckLinkInput_v9_2* This,IDeckLinkInputCallback *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_v9_2_GetHardwareReferenceClock(IDeckLinkInput_v9_2* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ */ + +typedef enum _BMDDeckControlVTRControlState_v8_1 { + bmdDeckControlNotInVTRControlMode_v8_1 = 0x6e76636d, + bmdDeckControlVTRControlPlaying_v8_1 = 0x76747270, + bmdDeckControlVTRControlRecording_v8_1 = 0x76747272, + bmdDeckControlVTRControlStill_v8_1 = 0x76747261, + bmdDeckControlVTRControlSeeking_v8_1 = 0x76747273, + bmdDeckControlVTRControlStopped_v8_1 = 0x7674726f +} BMDDeckControlVTRControlState_v8_1; +#ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ +typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback; +#ifdef __cplusplus +interface IDeckLinkDeckControlStatusCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDeckControl_FWD_DEFINED__ +#define __IDeckLinkDeckControl_FWD_DEFINED__ +typedef interface IDeckLinkDeckControl IDeckLinkDeckControl; +#ifdef __cplusplus +interface IDeckLinkDeckControl; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkDeckControlStatusCallback_v8_1 interface + */ +#ifndef __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeckControlStatusCallback_v8_1, 0xe5f693c1, 0x4283, 0x4716, 0xb1,0x8f, 0xc1,0x43,0x15,0x21,0x95,0x5b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e5f693c1-4283-4716-b18f-c1431521955b") +IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( + BMDTimecodeBCD currentTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( + BMDDeckControlVTRControlState_v8_1 newState, + BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( + BMDDeckControlEvent event, + BMDDeckControlError error) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( + BMDDeckControlStatusFlags flags, + unsigned int mask) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeckControlStatusCallback_v8_1, 0xe5f693c1, 0x4283, 0x4716, 0xb1,0x8f, 0xc1,0x43,0x15,0x21,0x95,0x5b) +#endif +#else +typedef struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeckControlStatusCallback_v8_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeckControlStatusCallback_v8_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeckControlStatusCallback_v8_1 *This); + + /*** IDeckLinkDeckControlStatusCallback_v8_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *TimecodeUpdate)( + IDeckLinkDeckControlStatusCallback_v8_1 *This, + BMDTimecodeBCD currentTimecode); + + HRESULT (STDMETHODCALLTYPE *VTRControlStateChanged)( + IDeckLinkDeckControlStatusCallback_v8_1 *This, + BMDDeckControlVTRControlState_v8_1 newState, + BMDDeckControlError error); + + HRESULT (STDMETHODCALLTYPE *DeckControlEventReceived)( + IDeckLinkDeckControlStatusCallback_v8_1 *This, + BMDDeckControlEvent event, + BMDDeckControlError error); + + HRESULT (STDMETHODCALLTYPE *DeckControlStatusChanged)( + IDeckLinkDeckControlStatusCallback_v8_1 *This, + BMDDeckControlStatusFlags flags, + unsigned int mask); + + END_INTERFACE +} IDeckLinkDeckControlStatusCallback_v8_1Vtbl; + +interface IDeckLinkDeckControlStatusCallback_v8_1 { + CONST_VTBL IDeckLinkDeckControlStatusCallback_v8_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeckControlStatusCallback_v8_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeckControlStatusCallback_v8_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeckControlStatusCallback_v8_1 methods ***/ +#define IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(This,currentTimecode) (This)->lpVtbl->TimecodeUpdate(This,currentTimecode) +#define IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(This,newState,error) (This)->lpVtbl->VTRControlStateChanged(This,newState,error) +#define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(This,event,error) (This)->lpVtbl->DeckControlEventReceived(This,event,error) +#define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(This,flags,mask) (This)->lpVtbl->DeckControlStatusChanged(This,flags,mask) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(IDeckLinkDeckControlStatusCallback_v8_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeckControlStatusCallback_v8_1_AddRef(IDeckLinkDeckControlStatusCallback_v8_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeckControlStatusCallback_v8_1_Release(IDeckLinkDeckControlStatusCallback_v8_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeckControlStatusCallback_v8_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(IDeckLinkDeckControlStatusCallback_v8_1* This,BMDTimecodeBCD currentTimecode) { + return This->lpVtbl->TimecodeUpdate(This,currentTimecode); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(IDeckLinkDeckControlStatusCallback_v8_1* This,BMDDeckControlVTRControlState_v8_1 newState,BMDDeckControlError error) { + return This->lpVtbl->VTRControlStateChanged(This,newState,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(IDeckLinkDeckControlStatusCallback_v8_1* This,BMDDeckControlEvent event,BMDDeckControlError error) { + return This->lpVtbl->DeckControlEventReceived(This,event,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(IDeckLinkDeckControlStatusCallback_v8_1* This,BMDDeckControlStatusFlags flags,unsigned int mask) { + return This->lpVtbl->DeckControlStatusChanged(This,flags,mask); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDeckControl_v8_1 interface + */ +#ifndef __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeckControl_v8_1, 0x522a9e39, 0x0f3c, 0x4742, 0x94,0xee, 0xd8,0x0d,0xe3,0x35,0xda,0x1d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("522a9e39-0f3c-4742-94ee-d80de335da1d") +IDeckLinkDeckControl_v8_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Open( + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentState( + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState_v8_1 *vtrControlState, + BMDDeckControlStatusFlags *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStandby( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendCommand( + unsigned char *inBuffer, + unsigned int inBufferSize, + unsigned char *outBuffer, + unsigned int *outDataSize, + unsigned int outBufferSize, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Play( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Eject( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GoToTimecode( + BMDTimecodeBCD timecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastForward( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Rewind( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepForward( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepBack( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Jog( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Shuttle( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( + BSTR *currentTimeCode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + unsigned int prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreroll( + unsigned int *prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetExportOffset( + int exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExportOffset( + int *exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( + int *deckManualExportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( + int captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( + int *captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartExport( + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + unsigned short *deviceId, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Abort( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeckControl_v8_1, 0x522a9e39, 0x0f3c, 0x4742, 0x94,0xee, 0xd8,0x0d,0xe3,0x35,0xda,0x1d) +#endif +#else +typedef struct IDeckLinkDeckControl_v8_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeckControl_v8_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeckControl_v8_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeckControl_v8_1 *This); + + /*** IDeckLinkDeckControl_v8_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *Open)( + IDeckLinkDeckControl_v8_1 *This, + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Close)( + IDeckLinkDeckControl_v8_1 *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *GetCurrentState)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState_v8_1 *vtrControlState, + BMDDeckControlStatusFlags *flags); + + HRESULT (STDMETHODCALLTYPE *SetStandby)( + IDeckLinkDeckControl_v8_1 *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *SendCommand)( + IDeckLinkDeckControl_v8_1 *This, + unsigned char *inBuffer, + unsigned int inBufferSize, + unsigned char *outBuffer, + unsigned int *outDataSize, + unsigned int outBufferSize, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Play)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *TogglePlayStop)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Eject)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GoToTimecode)( + IDeckLinkDeckControl_v8_1 *This, + BMDTimecodeBCD timecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *FastForward)( + IDeckLinkDeckControl_v8_1 *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Rewind)( + IDeckLinkDeckControl_v8_1 *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepForward)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepBack)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Jog)( + IDeckLinkDeckControl_v8_1 *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Shuttle)( + IDeckLinkDeckControl_v8_1 *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeString)( + IDeckLinkDeckControl_v8_1 *This, + BSTR *currentTimeCode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkDeckControl_v8_1 *This, + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeBCD)( + IDeckLinkDeckControl_v8_1 *This, + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetPreroll)( + IDeckLinkDeckControl_v8_1 *This, + unsigned int prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *GetPreroll)( + IDeckLinkDeckControl_v8_1 *This, + unsigned int *prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *SetExportOffset)( + IDeckLinkDeckControl_v8_1 *This, + int exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetExportOffset)( + IDeckLinkDeckControl_v8_1 *This, + int *exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetManualExportOffset)( + IDeckLinkDeckControl_v8_1 *This, + int *deckManualExportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *SetCaptureOffset)( + IDeckLinkDeckControl_v8_1 *This, + int captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetCaptureOffset)( + IDeckLinkDeckControl_v8_1 *This, + int *captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *StartExport)( + IDeckLinkDeckControl_v8_1 *This, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StartCapture)( + IDeckLinkDeckControl_v8_1 *This, + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetDeviceID)( + IDeckLinkDeckControl_v8_1 *This, + unsigned short *deviceId, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Abort)( + IDeckLinkDeckControl_v8_1 *This); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStart)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStop)( + IDeckLinkDeckControl_v8_1 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkDeckControl_v8_1 *This, + IDeckLinkDeckControlStatusCallback_v8_1 *callback); + + END_INTERFACE +} IDeckLinkDeckControl_v8_1Vtbl; + +interface IDeckLinkDeckControl_v8_1 { + CONST_VTBL IDeckLinkDeckControl_v8_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeckControl_v8_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeckControl_v8_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeckControl_v8_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeckControl_v8_1 methods ***/ +#define IDeckLinkDeckControl_v8_1_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) (This)->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error) +#define IDeckLinkDeckControl_v8_1_Close(This,standbyOn) (This)->lpVtbl->Close(This,standbyOn) +#define IDeckLinkDeckControl_v8_1_GetCurrentState(This,mode,vtrControlState,flags) (This)->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags) +#define IDeckLinkDeckControl_v8_1_SetStandby(This,standbyOn) (This)->lpVtbl->SetStandby(This,standbyOn) +#define IDeckLinkDeckControl_v8_1_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) (This)->lpVtbl->SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) +#define IDeckLinkDeckControl_v8_1_Play(This,error) (This)->lpVtbl->Play(This,error) +#define IDeckLinkDeckControl_v8_1_Stop(This,error) (This)->lpVtbl->Stop(This,error) +#define IDeckLinkDeckControl_v8_1_TogglePlayStop(This,error) (This)->lpVtbl->TogglePlayStop(This,error) +#define IDeckLinkDeckControl_v8_1_Eject(This,error) (This)->lpVtbl->Eject(This,error) +#define IDeckLinkDeckControl_v8_1_GoToTimecode(This,timecode,error) (This)->lpVtbl->GoToTimecode(This,timecode,error) +#define IDeckLinkDeckControl_v8_1_FastForward(This,viewTape,error) (This)->lpVtbl->FastForward(This,viewTape,error) +#define IDeckLinkDeckControl_v8_1_Rewind(This,viewTape,error) (This)->lpVtbl->Rewind(This,viewTape,error) +#define IDeckLinkDeckControl_v8_1_StepForward(This,error) (This)->lpVtbl->StepForward(This,error) +#define IDeckLinkDeckControl_v8_1_StepBack(This,error) (This)->lpVtbl->StepBack(This,error) +#define IDeckLinkDeckControl_v8_1_Jog(This,rate,error) (This)->lpVtbl->Jog(This,rate,error) +#define IDeckLinkDeckControl_v8_1_Shuttle(This,rate,error) (This)->lpVtbl->Shuttle(This,rate,error) +#define IDeckLinkDeckControl_v8_1_GetTimecodeString(This,currentTimeCode,error) (This)->lpVtbl->GetTimecodeString(This,currentTimeCode,error) +#define IDeckLinkDeckControl_v8_1_GetTimecode(This,currentTimecode,error) (This)->lpVtbl->GetTimecode(This,currentTimecode,error) +#define IDeckLinkDeckControl_v8_1_GetTimecodeBCD(This,currentTimecode,error) (This)->lpVtbl->GetTimecodeBCD(This,currentTimecode,error) +#define IDeckLinkDeckControl_v8_1_SetPreroll(This,prerollSeconds) (This)->lpVtbl->SetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_v8_1_GetPreroll(This,prerollSeconds) (This)->lpVtbl->GetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_v8_1_SetExportOffset(This,exportOffsetFields) (This)->lpVtbl->SetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_v8_1_GetExportOffset(This,exportOffsetFields) (This)->lpVtbl->GetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_v8_1_GetManualExportOffset(This,deckManualExportOffsetFields) (This)->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields) +#define IDeckLinkDeckControl_v8_1_SetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->SetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_v8_1_GetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->GetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_v8_1_StartExport(This,inTimecode,outTimecode,exportModeOps,error) (This)->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error) +#define IDeckLinkDeckControl_v8_1_StartCapture(This,useVITC,inTimecode,outTimecode,error) (This)->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error) +#define IDeckLinkDeckControl_v8_1_GetDeviceID(This,deviceId,error) (This)->lpVtbl->GetDeviceID(This,deviceId,error) +#define IDeckLinkDeckControl_v8_1_Abort(This) (This)->lpVtbl->Abort(This) +#define IDeckLinkDeckControl_v8_1_CrashRecordStart(This,error) (This)->lpVtbl->CrashRecordStart(This,error) +#define IDeckLinkDeckControl_v8_1_CrashRecordStop(This,error) (This)->lpVtbl->CrashRecordStop(This,error) +#define IDeckLinkDeckControl_v8_1_SetCallback(This,callback) (This)->lpVtbl->SetCallback(This,callback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_QueryInterface(IDeckLinkDeckControl_v8_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_v8_1_AddRef(IDeckLinkDeckControl_v8_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_v8_1_Release(IDeckLinkDeckControl_v8_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeckControl_v8_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Open(IDeckLinkDeckControl_v8_1* This,BMDTimeScale timeScale,BMDTimeValue timeValue,BOOL timecodeIsDropFrame,BMDDeckControlError *error) { + return This->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Close(IDeckLinkDeckControl_v8_1* This,BOOL standbyOn) { + return This->lpVtbl->Close(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetCurrentState(IDeckLinkDeckControl_v8_1* This,BMDDeckControlMode *mode,BMDDeckControlVTRControlState_v8_1 *vtrControlState,BMDDeckControlStatusFlags *flags) { + return This->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SetStandby(IDeckLinkDeckControl_v8_1* This,BOOL standbyOn) { + return This->lpVtbl->SetStandby(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SendCommand(IDeckLinkDeckControl_v8_1* This,unsigned char *inBuffer,unsigned int inBufferSize,unsigned char *outBuffer,unsigned int *outDataSize,unsigned int outBufferSize,BMDDeckControlError *error) { + return This->lpVtbl->SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Play(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->Play(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Stop(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->Stop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_TogglePlayStop(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->TogglePlayStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Eject(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->Eject(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GoToTimecode(IDeckLinkDeckControl_v8_1* This,BMDTimecodeBCD timecode,BMDDeckControlError *error) { + return This->lpVtbl->GoToTimecode(This,timecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_FastForward(IDeckLinkDeckControl_v8_1* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->FastForward(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Rewind(IDeckLinkDeckControl_v8_1* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->Rewind(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_StepForward(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->StepForward(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_StepBack(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->StepBack(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Jog(IDeckLinkDeckControl_v8_1* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Jog(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Shuttle(IDeckLinkDeckControl_v8_1* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Shuttle(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetTimecodeString(IDeckLinkDeckControl_v8_1* This,BSTR *currentTimeCode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeString(This,currentTimeCode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetTimecode(IDeckLinkDeckControl_v8_1* This,IDeckLinkTimecode **currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecode(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetTimecodeBCD(IDeckLinkDeckControl_v8_1* This,BMDTimecodeBCD *currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeBCD(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SetPreroll(IDeckLinkDeckControl_v8_1* This,unsigned int prerollSeconds) { + return This->lpVtbl->SetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetPreroll(IDeckLinkDeckControl_v8_1* This,unsigned int *prerollSeconds) { + return This->lpVtbl->GetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SetExportOffset(IDeckLinkDeckControl_v8_1* This,int exportOffsetFields) { + return This->lpVtbl->SetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetExportOffset(IDeckLinkDeckControl_v8_1* This,int *exportOffsetFields) { + return This->lpVtbl->GetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetManualExportOffset(IDeckLinkDeckControl_v8_1* This,int *deckManualExportOffsetFields) { + return This->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SetCaptureOffset(IDeckLinkDeckControl_v8_1* This,int captureOffsetFields) { + return This->lpVtbl->SetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetCaptureOffset(IDeckLinkDeckControl_v8_1* This,int *captureOffsetFields) { + return This->lpVtbl->GetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_StartExport(IDeckLinkDeckControl_v8_1* This,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlExportModeOpsFlags exportModeOps,BMDDeckControlError *error) { + return This->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_StartCapture(IDeckLinkDeckControl_v8_1* This,BOOL useVITC,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlError *error) { + return This->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_GetDeviceID(IDeckLinkDeckControl_v8_1* This,unsigned short *deviceId,BMDDeckControlError *error) { + return This->lpVtbl->GetDeviceID(This,deviceId,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_Abort(IDeckLinkDeckControl_v8_1* This) { + return This->lpVtbl->Abort(This); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_CrashRecordStart(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStart(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_CrashRecordStop(IDeckLinkDeckControl_v8_1* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v8_1_SetCallback(IDeckLinkDeckControl_v8_1* This,IDeckLinkDeckControlStatusCallback_v8_1 *callback) { + return This->lpVtbl->SetCallback(This,callback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLink_v8_0 interface + */ +#ifndef __IDeckLink_v8_0_INTERFACE_DEFINED__ +#define __IDeckLink_v8_0_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLink_v8_0, 0x62bff75d, 0x6569, 0x4e55, 0x8d,0x4d, 0x66,0xaa,0x03,0x82,0x9a,0xbc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("62bff75d-6569-4e55-8d4d-66aa03829abc") +IDeckLink_v8_0 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetModelName( + BSTR *modelName) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLink_v8_0, 0x62bff75d, 0x6569, 0x4e55, 0x8d,0x4d, 0x66,0xaa,0x03,0x82,0x9a,0xbc) +#endif +#else +typedef struct IDeckLink_v8_0Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLink_v8_0 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLink_v8_0 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLink_v8_0 *This); + + /*** IDeckLink_v8_0 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetModelName)( + IDeckLink_v8_0 *This, + BSTR *modelName); + + END_INTERFACE +} IDeckLink_v8_0Vtbl; + +interface IDeckLink_v8_0 { + CONST_VTBL IDeckLink_v8_0Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLink_v8_0_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLink_v8_0_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLink_v8_0_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLink_v8_0 methods ***/ +#define IDeckLink_v8_0_GetModelName(This,modelName) (This)->lpVtbl->GetModelName(This,modelName) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLink_v8_0_QueryInterface(IDeckLink_v8_0* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLink_v8_0_AddRef(IDeckLink_v8_0* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLink_v8_0_Release(IDeckLink_v8_0* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLink_v8_0 methods ***/ +static FORCEINLINE HRESULT IDeckLink_v8_0_GetModelName(IDeckLink_v8_0* This,BSTR *modelName) { + return This->lpVtbl->GetModelName(This,modelName); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLink_v8_0_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkIterator_v8_0 interface + */ +#ifndef __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ +#define __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkIterator_v8_0, 0x74e936fc, 0xcc28, 0x4a67, 0x81,0xa0, 0x1e,0x94,0xe5,0x2d,0x4e,0x69); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("74e936fc-cc28-4a67-81a0-1e94e52d4e69") +IDeckLinkIterator_v8_0 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IDeckLink_v8_0 **deckLinkInstance) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkIterator_v8_0, 0x74e936fc, 0xcc28, 0x4a67, 0x81,0xa0, 0x1e,0x94,0xe5,0x2d,0x4e,0x69) +#endif +#else +typedef struct IDeckLinkIterator_v8_0Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkIterator_v8_0 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkIterator_v8_0 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkIterator_v8_0 *This); + + /*** IDeckLinkIterator_v8_0 methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IDeckLinkIterator_v8_0 *This, + IDeckLink_v8_0 **deckLinkInstance); + + END_INTERFACE +} IDeckLinkIterator_v8_0Vtbl; + +interface IDeckLinkIterator_v8_0 { + CONST_VTBL IDeckLinkIterator_v8_0Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkIterator_v8_0_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkIterator_v8_0_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkIterator_v8_0_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkIterator_v8_0 methods ***/ +#define IDeckLinkIterator_v8_0_Next(This,deckLinkInstance) (This)->lpVtbl->Next(This,deckLinkInstance) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkIterator_v8_0_QueryInterface(IDeckLinkIterator_v8_0* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkIterator_v8_0_AddRef(IDeckLinkIterator_v8_0* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkIterator_v8_0_Release(IDeckLinkIterator_v8_0* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkIterator_v8_0 methods ***/ +static FORCEINLINE HRESULT IDeckLinkIterator_v8_0_Next(IDeckLinkIterator_v8_0* This,IDeckLink_v8_0 **deckLinkInstance) { + return This->lpVtbl->Next(This,deckLinkInstance); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CDeckLinkIterator_v8_0 coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkIterator_v8_0, 0xd9eda3b3, 0x2887, 0x41fa, 0xb7,0x24, 0x01,0x7c,0xf1,0xeb,0x1d,0x37); + +#ifdef __cplusplus +class DECLSPEC_UUID("d9eda3b3-2887-41fa-b724-017cf1eb1d37") CDeckLinkIterator_v8_0; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkIterator_v8_0, 0xd9eda3b3, 0x2887, 0x41fa, 0xb7,0x24, 0x01,0x7c,0xf1,0xeb,0x1d,0x37) +#endif +#endif + +/***************************************************************************** + * IDeckLinkDeckControl_v7_9 interface + */ +#ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ +#define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDeckControl_v7_9, 0xa4d81043, 0x0619, 0x42b7, 0x8e,0xd6, 0x60,0x2d,0x29,0x04,0x1d,0xf7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a4d81043-0619-42b7-8ed6-602d29041df7") +IDeckLinkDeckControl_v7_9 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Open( + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentState( + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState *vtrControlState, + BMDDeckControlStatusFlags *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStandby( + BOOL standbyOn) = 0; + + virtual HRESULT STDMETHODCALLTYPE Play( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Stop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Eject( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GoToTimecode( + BMDTimecodeBCD timecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastForward( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Rewind( + BOOL viewTape, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepForward( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StepBack( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Jog( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Shuttle( + double rate, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( + BSTR *currentTimeCode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreroll( + unsigned int prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreroll( + unsigned int *prerollSeconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetExportOffset( + int exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExportOffset( + int *exportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( + int *deckManualExportOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( + int captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( + int *captureOffsetFields) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartExport( + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartCapture( + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceID( + unsigned short *deviceId, + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE Abort( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( + BMDDeckControlError *error) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkDeckControlStatusCallback *callback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDeckControl_v7_9, 0xa4d81043, 0x0619, 0x42b7, 0x8e,0xd6, 0x60,0x2d,0x29,0x04,0x1d,0xf7) +#endif +#else +typedef struct IDeckLinkDeckControl_v7_9Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDeckControl_v7_9 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDeckControl_v7_9 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDeckControl_v7_9 *This); + + /*** IDeckLinkDeckControl_v7_9 methods ***/ + HRESULT (STDMETHODCALLTYPE *Open)( + IDeckLinkDeckControl_v7_9 *This, + BMDTimeScale timeScale, + BMDTimeValue timeValue, + BOOL timecodeIsDropFrame, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Close)( + IDeckLinkDeckControl_v7_9 *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *GetCurrentState)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlMode *mode, + BMDDeckControlVTRControlState *vtrControlState, + BMDDeckControlStatusFlags *flags); + + HRESULT (STDMETHODCALLTYPE *SetStandby)( + IDeckLinkDeckControl_v7_9 *This, + BOOL standbyOn); + + HRESULT (STDMETHODCALLTYPE *Play)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *TogglePlayStop)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Eject)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GoToTimecode)( + IDeckLinkDeckControl_v7_9 *This, + BMDTimecodeBCD timecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *FastForward)( + IDeckLinkDeckControl_v7_9 *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Rewind)( + IDeckLinkDeckControl_v7_9 *This, + BOOL viewTape, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepForward)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StepBack)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Jog)( + IDeckLinkDeckControl_v7_9 *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Shuttle)( + IDeckLinkDeckControl_v7_9 *This, + double rate, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeString)( + IDeckLinkDeckControl_v7_9 *This, + BSTR *currentTimeCode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkDeckControl_v7_9 *This, + IDeckLinkTimecode **currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetTimecodeBCD)( + IDeckLinkDeckControl_v7_9 *This, + BMDTimecodeBCD *currentTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetPreroll)( + IDeckLinkDeckControl_v7_9 *This, + unsigned int prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *GetPreroll)( + IDeckLinkDeckControl_v7_9 *This, + unsigned int *prerollSeconds); + + HRESULT (STDMETHODCALLTYPE *SetExportOffset)( + IDeckLinkDeckControl_v7_9 *This, + int exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetExportOffset)( + IDeckLinkDeckControl_v7_9 *This, + int *exportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetManualExportOffset)( + IDeckLinkDeckControl_v7_9 *This, + int *deckManualExportOffsetFields); + + HRESULT (STDMETHODCALLTYPE *SetCaptureOffset)( + IDeckLinkDeckControl_v7_9 *This, + int captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *GetCaptureOffset)( + IDeckLinkDeckControl_v7_9 *This, + int *captureOffsetFields); + + HRESULT (STDMETHODCALLTYPE *StartExport)( + IDeckLinkDeckControl_v7_9 *This, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlExportModeOpsFlags exportModeOps, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *StartCapture)( + IDeckLinkDeckControl_v7_9 *This, + BOOL useVITC, + BMDTimecodeBCD inTimecode, + BMDTimecodeBCD outTimecode, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *GetDeviceID)( + IDeckLinkDeckControl_v7_9 *This, + unsigned short *deviceId, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *Abort)( + IDeckLinkDeckControl_v7_9 *This); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStart)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *CrashRecordStop)( + IDeckLinkDeckControl_v7_9 *This, + BMDDeckControlError *error); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkDeckControl_v7_9 *This, + IDeckLinkDeckControlStatusCallback *callback); + + END_INTERFACE +} IDeckLinkDeckControl_v7_9Vtbl; + +interface IDeckLinkDeckControl_v7_9 { + CONST_VTBL IDeckLinkDeckControl_v7_9Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDeckControl_v7_9_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDeckControl_v7_9_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDeckControl_v7_9 methods ***/ +#define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) (This)->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error) +#define IDeckLinkDeckControl_v7_9_Close(This,standbyOn) (This)->lpVtbl->Close(This,standbyOn) +#define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags) (This)->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags) +#define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn) (This)->lpVtbl->SetStandby(This,standbyOn) +#define IDeckLinkDeckControl_v7_9_Play(This,error) (This)->lpVtbl->Play(This,error) +#define IDeckLinkDeckControl_v7_9_Stop(This,error) (This)->lpVtbl->Stop(This,error) +#define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error) (This)->lpVtbl->TogglePlayStop(This,error) +#define IDeckLinkDeckControl_v7_9_Eject(This,error) (This)->lpVtbl->Eject(This,error) +#define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error) (This)->lpVtbl->GoToTimecode(This,timecode,error) +#define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error) (This)->lpVtbl->FastForward(This,viewTape,error) +#define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error) (This)->lpVtbl->Rewind(This,viewTape,error) +#define IDeckLinkDeckControl_v7_9_StepForward(This,error) (This)->lpVtbl->StepForward(This,error) +#define IDeckLinkDeckControl_v7_9_StepBack(This,error) (This)->lpVtbl->StepBack(This,error) +#define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) (This)->lpVtbl->Jog(This,rate,error) +#define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error) (This)->lpVtbl->Shuttle(This,rate,error) +#define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error) (This)->lpVtbl->GetTimecodeString(This,currentTimeCode,error) +#define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error) (This)->lpVtbl->GetTimecode(This,currentTimecode,error) +#define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error) (This)->lpVtbl->GetTimecodeBCD(This,currentTimecode,error) +#define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds) (This)->lpVtbl->SetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds) (This)->lpVtbl->GetPreroll(This,prerollSeconds) +#define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields) (This)->lpVtbl->SetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields) (This)->lpVtbl->GetExportOffset(This,exportOffsetFields) +#define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields) (This)->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields) +#define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->SetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields) (This)->lpVtbl->GetCaptureOffset(This,captureOffsetFields) +#define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error) (This)->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error) +#define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error) (This)->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error) +#define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error) (This)->lpVtbl->GetDeviceID(This,deviceId,error) +#define IDeckLinkDeckControl_v7_9_Abort(This) (This)->lpVtbl->Abort(This) +#define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) (This)->lpVtbl->CrashRecordStart(This,error) +#define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error) (This)->lpVtbl->CrashRecordStop(This,error) +#define IDeckLinkDeckControl_v7_9_SetCallback(This,callback) (This)->lpVtbl->SetCallback(This,callback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_QueryInterface(IDeckLinkDeckControl_v7_9* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_v7_9_AddRef(IDeckLinkDeckControl_v7_9* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDeckControl_v7_9_Release(IDeckLinkDeckControl_v7_9* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDeckControl_v7_9 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Open(IDeckLinkDeckControl_v7_9* This,BMDTimeScale timeScale,BMDTimeValue timeValue,BOOL timecodeIsDropFrame,BMDDeckControlError *error) { + return This->lpVtbl->Open(This,timeScale,timeValue,timecodeIsDropFrame,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Close(IDeckLinkDeckControl_v7_9* This,BOOL standbyOn) { + return This->lpVtbl->Close(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetCurrentState(IDeckLinkDeckControl_v7_9* This,BMDDeckControlMode *mode,BMDDeckControlVTRControlState *vtrControlState,BMDDeckControlStatusFlags *flags) { + return This->lpVtbl->GetCurrentState(This,mode,vtrControlState,flags); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_SetStandby(IDeckLinkDeckControl_v7_9* This,BOOL standbyOn) { + return This->lpVtbl->SetStandby(This,standbyOn); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Play(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->Play(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Stop(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->Stop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_TogglePlayStop(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->TogglePlayStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Eject(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->Eject(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GoToTimecode(IDeckLinkDeckControl_v7_9* This,BMDTimecodeBCD timecode,BMDDeckControlError *error) { + return This->lpVtbl->GoToTimecode(This,timecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_FastForward(IDeckLinkDeckControl_v7_9* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->FastForward(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Rewind(IDeckLinkDeckControl_v7_9* This,BOOL viewTape,BMDDeckControlError *error) { + return This->lpVtbl->Rewind(This,viewTape,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_StepForward(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->StepForward(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_StepBack(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->StepBack(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Jog(IDeckLinkDeckControl_v7_9* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Jog(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Shuttle(IDeckLinkDeckControl_v7_9* This,double rate,BMDDeckControlError *error) { + return This->lpVtbl->Shuttle(This,rate,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetTimecodeString(IDeckLinkDeckControl_v7_9* This,BSTR *currentTimeCode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeString(This,currentTimeCode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetTimecode(IDeckLinkDeckControl_v7_9* This,IDeckLinkTimecode **currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecode(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetTimecodeBCD(IDeckLinkDeckControl_v7_9* This,BMDTimecodeBCD *currentTimecode,BMDDeckControlError *error) { + return This->lpVtbl->GetTimecodeBCD(This,currentTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_SetPreroll(IDeckLinkDeckControl_v7_9* This,unsigned int prerollSeconds) { + return This->lpVtbl->SetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetPreroll(IDeckLinkDeckControl_v7_9* This,unsigned int *prerollSeconds) { + return This->lpVtbl->GetPreroll(This,prerollSeconds); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_SetExportOffset(IDeckLinkDeckControl_v7_9* This,int exportOffsetFields) { + return This->lpVtbl->SetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetExportOffset(IDeckLinkDeckControl_v7_9* This,int *exportOffsetFields) { + return This->lpVtbl->GetExportOffset(This,exportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetManualExportOffset(IDeckLinkDeckControl_v7_9* This,int *deckManualExportOffsetFields) { + return This->lpVtbl->GetManualExportOffset(This,deckManualExportOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_SetCaptureOffset(IDeckLinkDeckControl_v7_9* This,int captureOffsetFields) { + return This->lpVtbl->SetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetCaptureOffset(IDeckLinkDeckControl_v7_9* This,int *captureOffsetFields) { + return This->lpVtbl->GetCaptureOffset(This,captureOffsetFields); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_StartExport(IDeckLinkDeckControl_v7_9* This,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlExportModeOpsFlags exportModeOps,BMDDeckControlError *error) { + return This->lpVtbl->StartExport(This,inTimecode,outTimecode,exportModeOps,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_StartCapture(IDeckLinkDeckControl_v7_9* This,BOOL useVITC,BMDTimecodeBCD inTimecode,BMDTimecodeBCD outTimecode,BMDDeckControlError *error) { + return This->lpVtbl->StartCapture(This,useVITC,inTimecode,outTimecode,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_GetDeviceID(IDeckLinkDeckControl_v7_9* This,unsigned short *deviceId,BMDDeckControlError *error) { + return This->lpVtbl->GetDeviceID(This,deviceId,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_Abort(IDeckLinkDeckControl_v7_9* This) { + return This->lpVtbl->Abort(This); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_CrashRecordStart(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStart(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_CrashRecordStop(IDeckLinkDeckControl_v7_9* This,BMDDeckControlError *error) { + return This->lpVtbl->CrashRecordStop(This,error); +} +static FORCEINLINE HRESULT IDeckLinkDeckControl_v7_9_SetCallback(IDeckLinkDeckControl_v7_9* This,IDeckLinkDeckControlStatusCallback *callback) { + return This->lpVtbl->SetCallback(This,callback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */ + +typedef enum _BMDVideoConnection_v7_6 { + bmdVideoConnectionSDI_v7_6 = 0x73646920, + bmdVideoConnectionHDMI_v7_6 = 0x68646d69, + bmdVideoConnectionOpticalSDI_v7_6 = 0x6f707469, + bmdVideoConnectionComponent_v7_6 = 0x63706e74, + bmdVideoConnectionComposite_v7_6 = 0x636d7374, + bmdVideoConnectionSVideo_v7_6 = 0x73766964 +} BMDVideoConnection_v7_6; +#ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6; +#ifdef __cplusplus +interface IDeckLinkDisplayMode_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6; +#ifdef __cplusplus +interface IDeckLinkOutput_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__ +#define __IDeckLinkInput_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6; +#ifdef __cplusplus +interface IDeckLinkInput_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +#define __IDeckLinkTimecode_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6; +#ifdef __cplusplus +interface IDeckLinkTimecode_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkMutableVideoFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6; +#ifdef __cplusplus +interface IDeckLinkScreenPreviewCallback_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6; +#ifdef __cplusplus +interface IDeckLinkGLScreenPreviewHelper_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +#define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6; +#ifdef __cplusplus +interface IDeckLinkVideoConversion_v7_6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +#define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ +typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6; +#ifdef __cplusplus +interface IDeckLinkConfiguration_v7_6; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkVideoOutputCallback_v7_6 interface + */ +#ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoOutputCallback_v7_6, 0xe763a626, 0x4a3c, 0x49d1, 0xbf,0x13, 0xe7,0xad,0x36,0x92,0xae,0x52); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e763a626-4a3c-49d1-bf13-e7ad3692ae52") +IDeckLinkVideoOutputCallback_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + IDeckLinkVideoFrame_v7_6 *completedFrame, + BMDOutputFrameCompletionResult result) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoOutputCallback_v7_6, 0xe763a626, 0x4a3c, 0x49d1, 0xbf,0x13, 0xe7,0xad,0x36,0x92,0xae,0x52) +#endif +#else +typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoOutputCallback_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoOutputCallback_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoOutputCallback_v7_6 *This); + + /*** IDeckLinkVideoOutputCallback_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *ScheduledFrameCompleted)( + IDeckLinkVideoOutputCallback_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *completedFrame, + BMDOutputFrameCompletionResult result); + + HRESULT (STDMETHODCALLTYPE *ScheduledPlaybackHasStopped)( + IDeckLinkVideoOutputCallback_v7_6 *This); + + END_INTERFACE +} IDeckLinkVideoOutputCallback_v7_6Vtbl; + +interface IDeckLinkVideoOutputCallback_v7_6 { + CONST_VTBL IDeckLinkVideoOutputCallback_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoOutputCallback_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoOutputCallback_v7_6 methods ***/ +#define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result) (This)->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result) +#define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This) (This)->lpVtbl->ScheduledPlaybackHasStopped(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_v7_6_QueryInterface(IDeckLinkVideoOutputCallback_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_v7_6_AddRef(IDeckLinkVideoOutputCallback_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_v7_6_Release(IDeckLinkVideoOutputCallback_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoOutputCallback_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(IDeckLinkVideoOutputCallback_v7_6* This,IDeckLinkVideoFrame_v7_6 *completedFrame,BMDOutputFrameCompletionResult result) { + return This->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result); +} +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(IDeckLinkVideoOutputCallback_v7_6* This) { + return This->lpVtbl->ScheduledPlaybackHasStopped(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInputCallback_v7_6 interface + */ +#ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInputCallback_v7_6, 0x31d28ee7, 0x88b6, 0x4cb1, 0x89,0x7a, 0xcd,0xbf,0x79,0xa2,0x64,0x14); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("31d28ee7-88b6-4cb1-897a-cdbf79a26414") +IDeckLinkInputCallback_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode_v7_6 *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + IDeckLinkVideoInputFrame_v7_6 *videoFrame, + IDeckLinkAudioInputPacket *audioPacket) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInputCallback_v7_6, 0x31d28ee7, 0x88b6, 0x4cb1, 0x89,0x7a, 0xcd,0xbf,0x79,0xa2,0x64,0x14) +#endif +#else +typedef struct IDeckLinkInputCallback_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInputCallback_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInputCallback_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInputCallback_v7_6 *This); + + /*** IDeckLinkInputCallback_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *VideoInputFormatChanged)( + IDeckLinkInputCallback_v7_6 *This, + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode_v7_6 *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT (STDMETHODCALLTYPE *VideoInputFrameArrived)( + IDeckLinkInputCallback_v7_6 *This, + IDeckLinkVideoInputFrame_v7_6 *videoFrame, + IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE +} IDeckLinkInputCallback_v7_6Vtbl; + +interface IDeckLinkInputCallback_v7_6 { + CONST_VTBL IDeckLinkInputCallback_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInputCallback_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInputCallback_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInputCallback_v7_6 methods ***/ +#define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) (This)->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) +#define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) (This)->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_6_QueryInterface(IDeckLinkInputCallback_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_6_AddRef(IDeckLinkInputCallback_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_6_Release(IDeckLinkInputCallback_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInputCallback_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(IDeckLinkInputCallback_v7_6* This,BMDVideoInputFormatChangedEvents notificationEvents,IDeckLinkDisplayMode_v7_6 *newDisplayMode,BMDDetectedVideoInputFormatFlags detectedSignalFlags) { + return This->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags); +} +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(IDeckLinkInputCallback_v7_6* This,IDeckLinkVideoInputFrame_v7_6 *videoFrame,IDeckLinkAudioInputPacket *audioPacket) { + return This->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDisplayModeIterator_v7_6 interface + */ +#ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayModeIterator_v7_6, 0x455d741f, 0x1779, 0x4800, 0x86,0xf5, 0x0b,0x5d,0x13,0xd7,0x97,0x51); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("455d741f-1779-4800-86f5-0b5d13d79751") +IDeckLinkDisplayModeIterator_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayModeIterator_v7_6, 0x455d741f, 0x1779, 0x4800, 0x86,0xf5, 0x0b,0x5d,0x13,0xd7,0x97,0x51) +#endif +#else +typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayModeIterator_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayModeIterator_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayModeIterator_v7_6 *This); + + /*** IDeckLinkDisplayModeIterator_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IDeckLinkDisplayModeIterator_v7_6 *This, + IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode); + + END_INTERFACE +} IDeckLinkDisplayModeIterator_v7_6Vtbl; + +interface IDeckLinkDisplayModeIterator_v7_6 { + CONST_VTBL IDeckLinkDisplayModeIterator_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayModeIterator_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayModeIterator_v7_6 methods ***/ +#define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode) (This)->lpVtbl->Next(This,deckLinkDisplayMode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_v7_6_QueryInterface(IDeckLinkDisplayModeIterator_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_v7_6_AddRef(IDeckLinkDisplayModeIterator_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_v7_6_Release(IDeckLinkDisplayModeIterator_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayModeIterator_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_v7_6_Next(IDeckLinkDisplayModeIterator_v7_6* This,IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) { + return This->lpVtbl->Next(This,deckLinkDisplayMode); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDisplayMode_v7_6 interface + */ +#ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayMode_v7_6, 0x87451e84, 0x2b7e, 0x439e, 0xa6,0x29, 0x43,0x93,0xea,0x4a,0x85,0x50); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("87451e84-2b7e-439e-a629-4393ea4a8550") +IDeckLinkDisplayMode_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetName( + BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale) = 0; + + virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayMode_v7_6, 0x87451e84, 0x2b7e, 0x439e, 0xa6,0x29, 0x43,0x93,0xea,0x4a,0x85,0x50) +#endif +#else +typedef struct IDeckLinkDisplayMode_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayMode_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayMode_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayMode_v7_6 *This); + + /*** IDeckLinkDisplayMode_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetName)( + IDeckLinkDisplayMode_v7_6 *This, + BSTR *name); + + BMDDisplayMode (STDMETHODCALLTYPE *GetDisplayMode)( + IDeckLinkDisplayMode_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkDisplayMode_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkDisplayMode_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFrameRate)( + IDeckLinkDisplayMode_v7_6 *This, + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale); + + BMDFieldDominance (STDMETHODCALLTYPE *GetFieldDominance)( + IDeckLinkDisplayMode_v7_6 *This); + + END_INTERFACE +} IDeckLinkDisplayMode_v7_6Vtbl; + +interface IDeckLinkDisplayMode_v7_6 { + CONST_VTBL IDeckLinkDisplayMode_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayMode_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayMode_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayMode_v7_6 methods ***/ +#define IDeckLinkDisplayMode_v7_6_GetName(This,name) (This)->lpVtbl->GetName(This,name) +#define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) (This)->lpVtbl->GetDisplayMode(This) +#define IDeckLinkDisplayMode_v7_6_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkDisplayMode_v7_6_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale) (This)->lpVtbl->GetFrameRate(This,frameDuration,timeScale) +#define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This) (This)->lpVtbl->GetFieldDominance(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_6_QueryInterface(IDeckLinkDisplayMode_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_v7_6_AddRef(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_v7_6_Release(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayMode_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_6_GetName(IDeckLinkDisplayMode_v7_6* This,BSTR *name) { + return This->lpVtbl->GetName(This,name); +} +static FORCEINLINE BMDDisplayMode IDeckLinkDisplayMode_v7_6_GetDisplayMode(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->GetDisplayMode(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_v7_6_GetWidth(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_v7_6_GetHeight(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_6_GetFrameRate(IDeckLinkDisplayMode_v7_6* This,BMDTimeValue *frameDuration,BMDTimeScale *timeScale) { + return This->lpVtbl->GetFrameRate(This,frameDuration,timeScale); +} +static FORCEINLINE BMDFieldDominance IDeckLinkDisplayMode_v7_6_GetFieldDominance(IDeckLinkDisplayMode_v7_6* This) { + return This->lpVtbl->GetFieldDominance(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkOutput_v7_6 interface + */ +#ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkOutput_v7_6, 0x29228142, 0xeb8c, 0x4141, 0xa6,0x21, 0xf7,0x40,0x26,0x45,0x09,0x55); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29228142-eb8c-4141-a621-f74026450955") +IDeckLinkOutput_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + unsigned int *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkOutput_v7_6, 0x29228142, 0xeb8c, 0x4141, 0xa6,0x21, 0xf7,0x40,0x26,0x45,0x09,0x55) +#endif +#else +typedef struct IDeckLinkOutput_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkOutput_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkOutput_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkOutput_v7_6 *This); + + /*** IDeckLinkOutput_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkOutput_v7_6 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkScreenPreviewCallback_v7_6 *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoOutput)( + IDeckLinkOutput_v7_6 *This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoOutput)( + IDeckLinkOutput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrame)( + IDeckLinkOutput_v7_6 *This, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame_v7_6 **outFrame); + + HRESULT (STDMETHODCALLTYPE *CreateAncillaryData)( + IDeckLinkOutput_v7_6 *This, + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT (STDMETHODCALLTYPE *DisplayVideoFrameSync)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *theFrame); + + HRESULT (STDMETHODCALLTYPE *ScheduleVideoFrame)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkVideoOutputCallback_v7_6 *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetBufferedVideoFrameCount)( + IDeckLinkOutput_v7_6 *This, + unsigned int *bufferedFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioOutput)( + IDeckLinkOutput_v7_6 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT (STDMETHODCALLTYPE *DisableAudioOutput)( + IDeckLinkOutput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *WriteAudioSamplesSync)( + IDeckLinkOutput_v7_6 *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *BeginAudioPreroll)( + IDeckLinkOutput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *EndAudioPreroll)( + IDeckLinkOutput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *ScheduleAudioSamples)( + IDeckLinkOutput_v7_6 *This, + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkOutput_v7_6 *This, + unsigned int *bufferedSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *FlushBufferedAudioSamples)( + IDeckLinkOutput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *SetAudioCallback)( + IDeckLinkOutput_v7_6 *This, + IDeckLinkAudioOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *StartScheduledPlayback)( + IDeckLinkOutput_v7_6 *This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *StopScheduledPlayback)( + IDeckLinkOutput_v7_6 *This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *IsScheduledPlaybackRunning)( + IDeckLinkOutput_v7_6 *This, + BOOL *active); + + HRESULT (STDMETHODCALLTYPE *GetScheduledStreamTime)( + IDeckLinkOutput_v7_6 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *streamTime, + double *playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkOutput_v7_6 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkOutput_v7_6Vtbl; + +interface IDeckLinkOutput_v7_6 { + CONST_VTBL IDeckLinkOutput_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkOutput_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkOutput_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkOutput_v7_6 methods ***/ +#define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) (This)->lpVtbl->EnableVideoOutput(This,displayMode,flags) +#define IDeckLinkOutput_v7_6_DisableVideoOutput(This) (This)->lpVtbl->DisableVideoOutput(This) +#define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer) (This)->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer) +#define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame) (This)->lpVtbl->DisplayVideoFrameSync(This,theFrame) +#define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) (This)->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) +#define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback) (This)->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback) +#define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount) (This)->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount) +#define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) (This)->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) +#define IDeckLinkOutput_v7_6_DisableAudioOutput(This) (This)->lpVtbl->DisableAudioOutput(This) +#define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) (This)->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) +#define IDeckLinkOutput_v7_6_BeginAudioPreroll(This) (This)->lpVtbl->BeginAudioPreroll(This) +#define IDeckLinkOutput_v7_6_EndAudioPreroll(This) (This)->lpVtbl->EndAudioPreroll(This) +#define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) (This)->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) +#define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) +#define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This) (This)->lpVtbl->FlushBufferedAudioSamples(This) +#define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) (This)->lpVtbl->SetAudioCallback(This,theCallback) +#define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) (This)->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) +#define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) (This)->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) +#define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active) (This)->lpVtbl->IsScheduledPlaybackRunning(This,active) +#define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) (This)->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) +#define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_QueryInterface(IDeckLinkOutput_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_6_AddRef(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_6_Release(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkOutput_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_DoesSupportVideoMode(IDeckLinkOutput_v7_6* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_GetDisplayModeIterator(IDeckLinkOutput_v7_6* This,IDeckLinkDisplayModeIterator_v7_6 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_SetScreenPreviewCallback(IDeckLinkOutput_v7_6* This,IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_EnableVideoOutput(IDeckLinkOutput_v7_6* This,BMDDisplayMode displayMode,BMDVideoOutputFlags flags) { + return This->lpVtbl->EnableVideoOutput(This,displayMode,flags); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_DisableVideoOutput(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->DisableVideoOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(IDeckLinkOutput_v7_6* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_CreateVideoFrame(IDeckLinkOutput_v7_6* This,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkMutableVideoFrame_v7_6 **outFrame) { + return This->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_CreateAncillaryData(IDeckLinkOutput_v7_6* This,BMDPixelFormat pixelFormat,IDeckLinkVideoFrameAncillary **outBuffer) { + return This->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_DisplayVideoFrameSync(IDeckLinkOutput_v7_6* This,IDeckLinkVideoFrame_v7_6 *theFrame) { + return This->lpVtbl->DisplayVideoFrameSync(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_ScheduleVideoFrame(IDeckLinkOutput_v7_6* This,IDeckLinkVideoFrame_v7_6 *theFrame,BMDTimeValue displayTime,BMDTimeValue displayDuration,BMDTimeScale timeScale) { + return This->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(IDeckLinkOutput_v7_6* This,IDeckLinkVideoOutputCallback_v7_6 *theCallback) { + return This->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(IDeckLinkOutput_v7_6* This,unsigned int *bufferedFrameCount) { + return This->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_EnableAudioOutput(IDeckLinkOutput_v7_6* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount,BMDAudioOutputStreamType streamType) { + return This->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_DisableAudioOutput(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->DisableAudioOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_WriteAudioSamplesSync(IDeckLinkOutput_v7_6* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesWritten) { + return This->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_BeginAudioPreroll(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->BeginAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_EndAudioPreroll(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->EndAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_ScheduleAudioSamples(IDeckLinkOutput_v7_6* This,void *buffer,unsigned int sampleFrameCount,BMDTimeValue streamTime,BMDTimeScale timeScale,unsigned int *sampleFramesWritten) { + return This->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(IDeckLinkOutput_v7_6* This,unsigned int *bufferedSampleFrameCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(IDeckLinkOutput_v7_6* This) { + return This->lpVtbl->FlushBufferedAudioSamples(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_SetAudioCallback(IDeckLinkOutput_v7_6* This,IDeckLinkAudioOutputCallback *theCallback) { + return This->lpVtbl->SetAudioCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_StartScheduledPlayback(IDeckLinkOutput_v7_6* This,BMDTimeValue playbackStartTime,BMDTimeScale timeScale,double playbackSpeed) { + return This->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_StopScheduledPlayback(IDeckLinkOutput_v7_6* This,BMDTimeValue stopPlaybackAtTime,BMDTimeValue *actualStopTime,BMDTimeScale timeScale) { + return This->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(IDeckLinkOutput_v7_6* This,BOOL *active) { + return This->lpVtbl->IsScheduledPlaybackRunning(This,active); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_GetScheduledStreamTime(IDeckLinkOutput_v7_6* This,BMDTimeScale desiredTimeScale,BMDTimeValue *streamTime,double *playbackSpeed) { + return This->lpVtbl->GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_6_GetHardwareReferenceClock(IDeckLinkOutput_v7_6* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInput_v7_6 interface + */ +#ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInput_v7_6, 0x300c135a, 0x9f43, 0x48e2, 0x99,0x06, 0x6d,0x79,0x11,0xd9,0x3c,0xf1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("300c135a-9f43-48e2-9906-6d7911d93cf1") +IDeckLinkInput_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + unsigned int *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + unsigned int *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkInputCallback_v7_6 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInput_v7_6, 0x300c135a, 0x9f43, 0x48e2, 0x99,0x06, 0x6d,0x79,0x11,0xd9,0x3c,0xf1) +#endif +#else +typedef struct IDeckLinkInput_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInput_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInput_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInput_v7_6 *This); + + /*** IDeckLinkInput_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkInput_v7_6 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkInput_v7_6 *This, + IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkInput_v7_6 *This, + IDeckLinkScreenPreviewCallback_v7_6 *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkInput_v7_6 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableVideoFrameCount)( + IDeckLinkInput_v7_6 *This, + unsigned int *availableFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkInput_v7_6 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount)( + IDeckLinkInput_v7_6 *This, + unsigned int *availableSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *FlushStreams)( + IDeckLinkInput_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkInput_v7_6 *This, + IDeckLinkInputCallback_v7_6 *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkInput_v7_6 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *hardwareTime, + BMDTimeValue *timeInFrame, + BMDTimeValue *ticksPerFrame); + + END_INTERFACE +} IDeckLinkInput_v7_6Vtbl; + +interface IDeckLinkInput_v7_6 { + CONST_VTBL IDeckLinkInput_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInput_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInput_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInput_v7_6 methods ***/ +#define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkInput_v7_6_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount) (This)->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount) +#define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkInput_v7_6_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) (This)->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) +#define IDeckLinkInput_v7_6_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkInput_v7_6_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkInput_v7_6_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkInput_v7_6_FlushStreams(This) (This)->lpVtbl->FlushStreams(This) +#define IDeckLinkInput_v7_6_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_QueryInterface(IDeckLinkInput_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_6_AddRef(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_6_Release(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInput_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_DoesSupportVideoMode(IDeckLinkInput_v7_6* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_GetDisplayModeIterator(IDeckLinkInput_v7_6* This,IDeckLinkDisplayModeIterator_v7_6 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_SetScreenPreviewCallback(IDeckLinkInput_v7_6* This,IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_EnableVideoInput(IDeckLinkInput_v7_6* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_DisableVideoInput(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(IDeckLinkInput_v7_6* This,unsigned int *availableFrameCount) { + return This->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_EnableAudioInput(IDeckLinkInput_v7_6* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_DisableAudioInput(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(IDeckLinkInput_v7_6* This,unsigned int *availableSampleFrameCount) { + return This->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_StartStreams(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_StopStreams(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_PauseStreams(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_FlushStreams(IDeckLinkInput_v7_6* This) { + return This->lpVtbl->FlushStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_SetCallback(IDeckLinkInput_v7_6* This,IDeckLinkInputCallback_v7_6 *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_6_GetHardwareReferenceClock(IDeckLinkInput_v7_6* This,BMDTimeScale desiredTimeScale,BMDTimeValue *hardwareTime,BMDTimeValue *timeInFrame,BMDTimeValue *ticksPerFrame) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkTimecode_v7_6 interface + */ +#ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkTimecode_v7_6, 0xefb9bca6, 0xa521, 0x44f7, 0xbd,0x69, 0x23,0x32,0xf2,0x4d,0x9e,0xe6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("efb9bca6-a521-44f7-bd69-2332f24d9ee6") +IDeckLinkTimecode_v7_6 : public IUnknown +{ + virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponents( + unsigned char *hours, + unsigned char *minutes, + unsigned char *seconds, + unsigned char *frames) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + BSTR *timecode) = 0; + + virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkTimecode_v7_6, 0xefb9bca6, 0xa521, 0x44f7, 0xbd,0x69, 0x23,0x32,0xf2,0x4d,0x9e,0xe6) +#endif +#else +typedef struct IDeckLinkTimecode_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkTimecode_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkTimecode_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkTimecode_v7_6 *This); + + /*** IDeckLinkTimecode_v7_6 methods ***/ + BMDTimecodeBCD (STDMETHODCALLTYPE *GetBCD)( + IDeckLinkTimecode_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetComponents)( + IDeckLinkTimecode_v7_6 *This, + unsigned char *hours, + unsigned char *minutes, + unsigned char *seconds, + unsigned char *frames); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDeckLinkTimecode_v7_6 *This, + BSTR *timecode); + + BMDTimecodeFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkTimecode_v7_6 *This); + + END_INTERFACE +} IDeckLinkTimecode_v7_6Vtbl; + +interface IDeckLinkTimecode_v7_6 { + CONST_VTBL IDeckLinkTimecode_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkTimecode_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkTimecode_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkTimecode_v7_6 methods ***/ +#define IDeckLinkTimecode_v7_6_GetBCD(This) (This)->lpVtbl->GetBCD(This) +#define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) (This)->lpVtbl->GetComponents(This,hours,minutes,seconds,frames) +#define IDeckLinkTimecode_v7_6_GetString(This,timecode) (This)->lpVtbl->GetString(This,timecode) +#define IDeckLinkTimecode_v7_6_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkTimecode_v7_6_QueryInterface(IDeckLinkTimecode_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkTimecode_v7_6_AddRef(IDeckLinkTimecode_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkTimecode_v7_6_Release(IDeckLinkTimecode_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkTimecode_v7_6 methods ***/ +static FORCEINLINE BMDTimecodeBCD IDeckLinkTimecode_v7_6_GetBCD(IDeckLinkTimecode_v7_6* This) { + return This->lpVtbl->GetBCD(This); +} +static FORCEINLINE HRESULT IDeckLinkTimecode_v7_6_GetComponents(IDeckLinkTimecode_v7_6* This,unsigned char *hours,unsigned char *minutes,unsigned char *seconds,unsigned char *frames) { + return This->lpVtbl->GetComponents(This,hours,minutes,seconds,frames); +} +static FORCEINLINE HRESULT IDeckLinkTimecode_v7_6_GetString(IDeckLinkTimecode_v7_6* This,BSTR *timecode) { + return This->lpVtbl->GetString(This,timecode); +} +static FORCEINLINE BMDTimecodeFlags IDeckLinkTimecode_v7_6_GetFlags(IDeckLinkTimecode_v7_6* This) { + return This->lpVtbl->GetFlags(This); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrame_v7_6 interface + */ +#ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrame_v7_6, 0xa8d8238e, 0x6b18, 0x4196, 0x99,0xe1, 0x5a,0xf7,0x17,0xb8,0x3d,0x32); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a8d8238e-6b18-4196-99e1-5af717b83d32") +IDeckLinkVideoFrame_v7_6 : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetRowBytes( + ) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( + ) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimecode( + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 **timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( + IDeckLinkVideoFrameAncillary **ancillary) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrame_v7_6, 0xa8d8238e, 0x6b18, 0x4196, 0x99,0xe1, 0x5a,0xf7,0x17,0xb8,0x3d,0x32) +#endif +#else +typedef struct IDeckLinkVideoFrame_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrame_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrame_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrame_v7_6 *This); + + /*** IDeckLinkVideoFrame_v7_6 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoFrame_v7_6 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoFrame_v7_6 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoFrame_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoFrame_v7_6 *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkVideoFrame_v7_6 *This, + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkVideoFrame_v7_6 *This, + IDeckLinkVideoFrameAncillary **ancillary); + + END_INTERFACE +} IDeckLinkVideoFrame_v7_6Vtbl; + +interface IDeckLinkVideoFrame_v7_6 { + CONST_VTBL IDeckLinkVideoFrame_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrame_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrame_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +#define IDeckLinkVideoFrame_v7_6_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoFrame_v7_6_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoFrame_v7_6_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoFrame_v7_6_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_6_QueryInterface(IDeckLinkVideoFrame_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_v7_6_AddRef(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_v7_6_Release(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_6_GetWidth(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_6_GetHeight(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_6_GetRowBytes(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoFrame_v7_6_GetPixelFormat(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoFrame_v7_6_GetFlags(IDeckLinkVideoFrame_v7_6* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_6_GetBytes(IDeckLinkVideoFrame_v7_6* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_6_GetTimecode(IDeckLinkVideoFrame_v7_6* This,BMDTimecodeFormat format,IDeckLinkTimecode_v7_6 **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_6_GetAncillaryData(IDeckLinkVideoFrame_v7_6* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkMutableVideoFrame_v7_6 interface + */ +#ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkMutableVideoFrame_v7_6, 0x46fcee00, 0xb4e6, 0x43d0, 0x91,0xc0, 0x02,0x3a,0x7f,0xce,0xb3,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("46fcee00-b4e6-43d0-91c0-023a7fceb34f") +IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ + virtual HRESULT STDMETHODCALLTYPE SetFlags( + BMDFrameFlags newFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecode( + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 *timecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( + IDeckLinkVideoFrameAncillary *ancillary) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkMutableVideoFrame_v7_6, 0x46fcee00, 0xb4e6, 0x43d0, 0x91,0xc0, 0x02,0x3a,0x7f,0xce,0xb3,0x4f) +#endif +#else +typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkMutableVideoFrame_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + /*** IDeckLinkVideoFrame_v7_6 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkMutableVideoFrame_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkMutableVideoFrame_v7_6 *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkMutableVideoFrame_v7_6 *This, + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkMutableVideoFrame_v7_6 *This, + IDeckLinkVideoFrameAncillary **ancillary); + + /*** IDeckLinkMutableVideoFrame_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFlags)( + IDeckLinkMutableVideoFrame_v7_6 *This, + BMDFrameFlags newFlags); + + HRESULT (STDMETHODCALLTYPE *SetTimecode)( + IDeckLinkMutableVideoFrame_v7_6 *This, + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 *timecode); + + HRESULT (STDMETHODCALLTYPE *SetTimecodeFromComponents)( + IDeckLinkMutableVideoFrame_v7_6 *This, + BMDTimecodeFormat format, + unsigned char hours, + unsigned char minutes, + unsigned char seconds, + unsigned char frames, + BMDTimecodeFlags flags); + + HRESULT (STDMETHODCALLTYPE *SetAncillaryData)( + IDeckLinkMutableVideoFrame_v7_6 *This, + IDeckLinkVideoFrameAncillary *ancillary); + + END_INTERFACE +} IDeckLinkMutableVideoFrame_v7_6Vtbl; + +interface IDeckLinkMutableVideoFrame_v7_6 { + CONST_VTBL IDeckLinkMutableVideoFrame_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkMutableVideoFrame_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkMutableVideoFrame_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +#define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +/*** IDeckLinkMutableVideoFrame_v7_6 methods ***/ +#define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) (This)->lpVtbl->SetFlags(This,newFlags) +#define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode) (This)->lpVtbl->SetTimecode(This,format,timecode) +#define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) (This)->lpVtbl->SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) +#define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary) (This)->lpVtbl->SetAncillaryData(This,ancillary) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_QueryInterface(IDeckLinkMutableVideoFrame_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkMutableVideoFrame_v7_6_AddRef(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkMutableVideoFrame_v7_6_Release(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_v7_6_GetWidth(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_v7_6_GetHeight(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkMutableVideoFrame_v7_6_GetFlags(IDeckLinkMutableVideoFrame_v7_6* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_GetBytes(IDeckLinkMutableVideoFrame_v7_6* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_GetTimecode(IDeckLinkMutableVideoFrame_v7_6* This,BMDTimecodeFormat format,IDeckLinkTimecode_v7_6 **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(IDeckLinkMutableVideoFrame_v7_6* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +/*** IDeckLinkMutableVideoFrame_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_SetFlags(IDeckLinkMutableVideoFrame_v7_6* This,BMDFrameFlags newFlags) { + return This->lpVtbl->SetFlags(This,newFlags); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_SetTimecode(IDeckLinkMutableVideoFrame_v7_6* This,BMDTimecodeFormat format,IDeckLinkTimecode_v7_6 *timecode) { + return This->lpVtbl->SetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(IDeckLinkMutableVideoFrame_v7_6* This,BMDTimecodeFormat format,unsigned char hours,unsigned char minutes,unsigned char seconds,unsigned char frames,BMDTimecodeFlags flags) { + return This->lpVtbl->SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags); +} +static FORCEINLINE HRESULT IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(IDeckLinkMutableVideoFrame_v7_6* This,IDeckLinkVideoFrameAncillary *ancillary) { + return This->lpVtbl->SetAncillaryData(This,ancillary); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoInputFrame_v7_6 interface + */ +#ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoInputFrame_v7_6, 0x9a74fa41, 0xae9f, 0x47ac, 0x8c,0xf4, 0x01,0xf4,0x2d,0xd5,0x99,0x65); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9a74fa41-ae9f-47ac-8cf4-01f42dd59965") +IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoInputFrame_v7_6, 0x9a74fa41, 0xae9f, 0x47ac, 0x8c,0xf4, 0x01,0xf4,0x2d,0xd5,0x99,0x65) +#endif +#else +typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoInputFrame_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoInputFrame_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoInputFrame_v7_6 *This); + + /*** IDeckLinkVideoFrame_v7_6 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoInputFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoInputFrame_v7_6 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoInputFrame_v7_6 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoInputFrame_v7_6 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoInputFrame_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoInputFrame_v7_6 *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkVideoInputFrame_v7_6 *This, + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkVideoInputFrame_v7_6 *This, + IDeckLinkVideoFrameAncillary **ancillary); + + /*** IDeckLinkVideoInputFrame_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkVideoInputFrame_v7_6 *This, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceTimestamp)( + IDeckLinkVideoInputFrame_v7_6 *This, + BMDTimeScale timeScale, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration); + + END_INTERFACE +} IDeckLinkVideoInputFrame_v7_6Vtbl; + +interface IDeckLinkVideoInputFrame_v7_6 { + CONST_VTBL IDeckLinkVideoInputFrame_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoInputFrame_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoInputFrame_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +#define IDeckLinkVideoInputFrame_v7_6_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoInputFrame_v7_6_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoInputFrame_v7_6_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +/*** IDeckLinkVideoInputFrame_v7_6 methods ***/ +#define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale) +#define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) (This)->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_QueryInterface(IDeckLinkVideoInputFrame_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_6_AddRef(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_6_Release(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_6_GetWidth(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_6_GetHeight(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_6_GetRowBytes(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoInputFrame_v7_6_GetFlags(IDeckLinkVideoInputFrame_v7_6* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_GetBytes(IDeckLinkVideoInputFrame_v7_6* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_GetTimecode(IDeckLinkVideoInputFrame_v7_6* This,BMDTimecodeFormat format,IDeckLinkTimecode_v7_6 **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(IDeckLinkVideoInputFrame_v7_6* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +/*** IDeckLinkVideoInputFrame_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_GetStreamTime(IDeckLinkVideoInputFrame_v7_6* This,BMDTimeValue *frameTime,BMDTimeValue *frameDuration,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(IDeckLinkVideoInputFrame_v7_6* This,BMDTimeScale timeScale,BMDTimeValue *frameTime,BMDTimeValue *frameDuration) { + return This->lpVtbl->GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkScreenPreviewCallback_v7_6 interface + */ +#ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkScreenPreviewCallback_v7_6, 0x373f499d, 0x4b4d, 0x4518, 0xad,0x22, 0x63,0x54,0xe5,0xa5,0x82,0x5e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("373f499d-4b4d-4518-ad22-6354e5a5825e") +IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DrawFrame( + IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkScreenPreviewCallback_v7_6, 0x373f499d, 0x4b4d, 0x4518, 0xad,0x22, 0x63,0x54,0xe5,0xa5,0x82,0x5e) +#endif +#else +typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkScreenPreviewCallback_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkScreenPreviewCallback_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkScreenPreviewCallback_v7_6 *This); + + /*** IDeckLinkScreenPreviewCallback_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawFrame)( + IDeckLinkScreenPreviewCallback_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *theFrame); + + END_INTERFACE +} IDeckLinkScreenPreviewCallback_v7_6Vtbl; + +interface IDeckLinkScreenPreviewCallback_v7_6 { + CONST_VTBL IDeckLinkScreenPreviewCallback_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkScreenPreviewCallback_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkScreenPreviewCallback_v7_6 methods ***/ +#define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame) (This)->lpVtbl->DrawFrame(This,theFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(IDeckLinkScreenPreviewCallback_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkScreenPreviewCallback_v7_6_AddRef(IDeckLinkScreenPreviewCallback_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkScreenPreviewCallback_v7_6_Release(IDeckLinkScreenPreviewCallback_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkScreenPreviewCallback_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(IDeckLinkScreenPreviewCallback_v7_6* This,IDeckLinkVideoFrame_v7_6 *theFrame) { + return This->lpVtbl->DrawFrame(This,theFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkGLScreenPreviewHelper_v7_6 interface + */ +#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkGLScreenPreviewHelper_v7_6, 0xba575cd9, 0xa15e, 0x497b, 0xb2,0xc2, 0xf9,0xaf,0xe7,0xbe,0x4e,0xba); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ba575cd9-a15e-497b-b2c2-f9afe7be4eba") +IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitializeGL( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PaintGL( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFrame( + IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkGLScreenPreviewHelper_v7_6, 0xba575cd9, 0xa15e, 0x497b, 0xb2,0xc2, 0xf9,0xaf,0xe7,0xbe,0x4e,0xba) +#endif +#else +typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This); + + /*** IDeckLinkGLScreenPreviewHelper_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeGL)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *PaintGL)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *SetFrame)( + IDeckLinkGLScreenPreviewHelper_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *theFrame); + + END_INTERFACE +} IDeckLinkGLScreenPreviewHelper_v7_6Vtbl; + +interface IDeckLinkGLScreenPreviewHelper_v7_6 { + CONST_VTBL IDeckLinkGLScreenPreviewHelper_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkGLScreenPreviewHelper_v7_6 methods ***/ +#define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) (This)->lpVtbl->InitializeGL(This) +#define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This) (This)->lpVtbl->PaintGL(This) +#define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame) (This)->lpVtbl->SetFrame(This,theFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(IDeckLinkGLScreenPreviewHelper_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(IDeckLinkGLScreenPreviewHelper_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkGLScreenPreviewHelper_v7_6_Release(IDeckLinkGLScreenPreviewHelper_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkGLScreenPreviewHelper_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(IDeckLinkGLScreenPreviewHelper_v7_6* This) { + return This->lpVtbl->InitializeGL(This); +} +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(IDeckLinkGLScreenPreviewHelper_v7_6* This) { + return This->lpVtbl->PaintGL(This); +} +static FORCEINLINE HRESULT IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(IDeckLinkGLScreenPreviewHelper_v7_6* This,IDeckLinkVideoFrame_v7_6 *theFrame) { + return This->lpVtbl->SetFrame(This,theFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoConversion_v7_6 interface + */ +#ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoConversion_v7_6, 0x3eb504c9, 0xf97d, 0x40fe, 0xa1,0x58, 0xd4,0x07,0xd4,0x8c,0xb5,0x3b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3eb504c9-f97d-40fe-a158-d407d48cb53b") +IDeckLinkVideoConversion_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ConvertFrame( + IDeckLinkVideoFrame_v7_6 *srcFrame, + IDeckLinkVideoFrame_v7_6 *dstFrame) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoConversion_v7_6, 0x3eb504c9, 0xf97d, 0x40fe, 0xa1,0x58, 0xd4,0x07,0xd4,0x8c,0xb5,0x3b) +#endif +#else +typedef struct IDeckLinkVideoConversion_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoConversion_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoConversion_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoConversion_v7_6 *This); + + /*** IDeckLinkVideoConversion_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *ConvertFrame)( + IDeckLinkVideoConversion_v7_6 *This, + IDeckLinkVideoFrame_v7_6 *srcFrame, + IDeckLinkVideoFrame_v7_6 *dstFrame); + + END_INTERFACE +} IDeckLinkVideoConversion_v7_6Vtbl; + +interface IDeckLinkVideoConversion_v7_6 { + CONST_VTBL IDeckLinkVideoConversion_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoConversion_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoConversion_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoConversion_v7_6 methods ***/ +#define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame) (This)->lpVtbl->ConvertFrame(This,srcFrame,dstFrame) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoConversion_v7_6_QueryInterface(IDeckLinkVideoConversion_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoConversion_v7_6_AddRef(IDeckLinkVideoConversion_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoConversion_v7_6_Release(IDeckLinkVideoConversion_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoConversion_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoConversion_v7_6_ConvertFrame(IDeckLinkVideoConversion_v7_6* This,IDeckLinkVideoFrame_v7_6 *srcFrame,IDeckLinkVideoFrame_v7_6 *dstFrame) { + return This->lpVtbl->ConvertFrame(This,srcFrame,dstFrame); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkConfiguration_v7_6 interface + */ +#ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ +#define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkConfiguration_v7_6, 0xb8ead569, 0xb764, 0x47f0, 0xa7,0x3f, 0xae,0x40,0xdf,0x6c,0xbf,0x10); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b8ead569-b764-47f0-a73f-ae40df6cbf10") +IDeckLinkConfiguration_v7_6 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( + IDeckLinkConfiguration_v7_6 **configObject) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( + BMDVideoConnection_v7_6 videoOutputConnection) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( + BMDVideoConnection_v7_6 videoOutputConnection, + BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( + BMDAnalogVideoFlags analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( + BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( + BOOL enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( + BOOL *enabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( + BOOL enable444VideoOutput, + BOOL enable3GbsOutput) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( + BOOL *is444VideoOutputEnabled, + BOOL *threeGbsOutputEnabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( + BMDVideoOutputConversionMode conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( + BMDVideoOutputConversionMode *conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( + BOOL enable) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( + BOOL *enabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( + BMDVideoConnection_v7_6 videoInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( + BMDVideoConnection_v7_6 *videoInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( + BMDAnalogVideoFlags analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( + BMDAnalogVideoFlags *analogVideoFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( + BMDVideoInputConversionMode conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( + BMDVideoInputConversionMode *conversionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( + BOOL blackOutInCapture) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( + BOOL *blackOutInCapture) = 0; + + virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( + unsigned int aFrameTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( + unsigned int *aFrameTimecode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( + unsigned int activeLine1VANCsource, + unsigned int activeLine2VANCsource, + unsigned int activeLine3VANCsource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( + unsigned int *activeLine1VANCsource, + unsigned int *activeLine2VANCsource, + unsigned int *activeLine3VANCsource) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( + BMDAudioConnection_v10_2 audioInputFormat) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( + BMDAudioConnection_v10_2 *audioInputFormat) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkConfiguration_v7_6, 0xb8ead569, 0xb764, 0x47f0, 0xa7,0x3f, 0xae,0x40,0xdf,0x6c,0xbf,0x10) +#endif +#else +typedef struct IDeckLinkConfiguration_v7_6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkConfiguration_v7_6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkConfiguration_v7_6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkConfiguration_v7_6 *This); + + /*** IDeckLinkConfiguration_v7_6 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetConfigurationValidator)( + IDeckLinkConfiguration_v7_6 *This, + IDeckLinkConfiguration_v7_6 **configObject); + + HRESULT (STDMETHODCALLTYPE *WriteConfigurationToPreferences)( + IDeckLinkConfiguration_v7_6 *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFormat)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoConnection_v7_6 videoOutputConnection); + + HRESULT (STDMETHODCALLTYPE *IsVideoOutputActive)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoConnection_v7_6 videoOutputConnection, + BOOL *active); + + HRESULT (STDMETHODCALLTYPE *SetAnalogVideoOutputFlags)( + IDeckLinkConfiguration_v7_6 *This, + BMDAnalogVideoFlags analogVideoFlags); + + HRESULT (STDMETHODCALLTYPE *GetAnalogVideoOutputFlags)( + IDeckLinkConfiguration_v7_6 *This, + BMDAnalogVideoFlags *analogVideoFlags); + + HRESULT (STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused)( + IDeckLinkConfiguration_v7_6 *This, + BOOL enable); + + HRESULT (STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused)( + IDeckLinkConfiguration_v7_6 *This, + BOOL *enabled); + + HRESULT (STDMETHODCALLTYPE *Set444And3GBpsVideoOutput)( + IDeckLinkConfiguration_v7_6 *This, + BOOL enable444VideoOutput, + BOOL enable3GbsOutput); + + HRESULT (STDMETHODCALLTYPE *Get444And3GBpsVideoOutput)( + IDeckLinkConfiguration_v7_6 *This, + BOOL *is444VideoOutputEnabled, + BOOL *threeGbsOutputEnabled); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputConversionMode)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoOutputConversionMode conversionMode); + + HRESULT (STDMETHODCALLTYPE *GetVideoOutputConversionMode)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoOutputConversionMode *conversionMode); + + HRESULT (STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion)( + IDeckLinkConfiguration_v7_6 *This, + BOOL enable); + + HRESULT (STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion)( + IDeckLinkConfiguration_v7_6 *This, + BOOL *enabled); + + HRESULT (STDMETHODCALLTYPE *SetVideoInputFormat)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoConnection_v7_6 videoInputFormat); + + HRESULT (STDMETHODCALLTYPE *GetVideoInputFormat)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoConnection_v7_6 *videoInputFormat); + + HRESULT (STDMETHODCALLTYPE *SetAnalogVideoInputFlags)( + IDeckLinkConfiguration_v7_6 *This, + BMDAnalogVideoFlags analogVideoFlags); + + HRESULT (STDMETHODCALLTYPE *GetAnalogVideoInputFlags)( + IDeckLinkConfiguration_v7_6 *This, + BMDAnalogVideoFlags *analogVideoFlags); + + HRESULT (STDMETHODCALLTYPE *SetVideoInputConversionMode)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoInputConversionMode conversionMode); + + HRESULT (STDMETHODCALLTYPE *GetVideoInputConversionMode)( + IDeckLinkConfiguration_v7_6 *This, + BMDVideoInputConversionMode *conversionMode); + + HRESULT (STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture)( + IDeckLinkConfiguration_v7_6 *This, + BOOL blackOutInCapture); + + HRESULT (STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture)( + IDeckLinkConfiguration_v7_6 *This, + BOOL *blackOutInCapture); + + HRESULT (STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame)( + IDeckLinkConfiguration_v7_6 *This, + unsigned int aFrameTimecode); + + HRESULT (STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame)( + IDeckLinkConfiguration_v7_6 *This, + unsigned int *aFrameTimecode); + + HRESULT (STDMETHODCALLTYPE *SetVancSourceLineMapping)( + IDeckLinkConfiguration_v7_6 *This, + unsigned int activeLine1VANCsource, + unsigned int activeLine2VANCsource, + unsigned int activeLine3VANCsource); + + HRESULT (STDMETHODCALLTYPE *GetVancSourceLineMapping)( + IDeckLinkConfiguration_v7_6 *This, + unsigned int *activeLine1VANCsource, + unsigned int *activeLine2VANCsource, + unsigned int *activeLine3VANCsource); + + HRESULT (STDMETHODCALLTYPE *SetAudioInputFormat)( + IDeckLinkConfiguration_v7_6 *This, + BMDAudioConnection_v10_2 audioInputFormat); + + HRESULT (STDMETHODCALLTYPE *GetAudioInputFormat)( + IDeckLinkConfiguration_v7_6 *This, + BMDAudioConnection_v10_2 *audioInputFormat); + + END_INTERFACE +} IDeckLinkConfiguration_v7_6Vtbl; + +interface IDeckLinkConfiguration_v7_6 { + CONST_VTBL IDeckLinkConfiguration_v7_6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkConfiguration_v7_6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkConfiguration_v7_6_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkConfiguration_v7_6 methods ***/ +#define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject) (This)->lpVtbl->GetConfigurationValidator(This,configObject) +#define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This) (This)->lpVtbl->WriteConfigurationToPreferences(This) +#define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection) (This)->lpVtbl->SetVideoOutputFormat(This,videoOutputConnection) +#define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active) (This)->lpVtbl->IsVideoOutputActive(This,videoOutputConnection,active) +#define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags) (This)->lpVtbl->SetAnalogVideoOutputFlags(This,analogVideoFlags) +#define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags) (This)->lpVtbl->GetAnalogVideoOutputFlags(This,analogVideoFlags) +#define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable) (This)->lpVtbl->EnableFieldFlickerRemovalWhenPaused(This,enable) +#define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) (This)->lpVtbl->IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) +#define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) (This)->lpVtbl->Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) +#define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) (This)->lpVtbl->Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) +#define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode) (This)->lpVtbl->SetVideoOutputConversionMode(This,conversionMode) +#define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode) (This)->lpVtbl->GetVideoOutputConversionMode(This,conversionMode) +#define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) (This)->lpVtbl->Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) +#define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) (This)->lpVtbl->Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) +#define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) (This)->lpVtbl->SetVideoInputFormat(This,videoInputFormat) +#define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) (This)->lpVtbl->GetVideoInputFormat(This,videoInputFormat) +#define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags) (This)->lpVtbl->SetAnalogVideoInputFlags(This,analogVideoFlags) +#define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags) (This)->lpVtbl->GetAnalogVideoInputFlags(This,analogVideoFlags) +#define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode) (This)->lpVtbl->SetVideoInputConversionMode(This,conversionMode) +#define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode) (This)->lpVtbl->GetVideoInputConversionMode(This,conversionMode) +#define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture) (This)->lpVtbl->SetBlackVideoOutputDuringCapture(This,blackOutInCapture) +#define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture) (This)->lpVtbl->GetBlackVideoOutputDuringCapture(This,blackOutInCapture) +#define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) (This)->lpVtbl->Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) +#define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) (This)->lpVtbl->Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) +#define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) (This)->lpVtbl->SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) +#define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) (This)->lpVtbl->GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) +#define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) (This)->lpVtbl->SetAudioInputFormat(This,audioInputFormat) +#define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) (This)->lpVtbl->GetAudioInputFormat(This,audioInputFormat) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_QueryInterface(IDeckLinkConfiguration_v7_6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v7_6_AddRef(IDeckLinkConfiguration_v7_6* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkConfiguration_v7_6_Release(IDeckLinkConfiguration_v7_6* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkConfiguration_v7_6 methods ***/ +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetConfigurationValidator(IDeckLinkConfiguration_v7_6* This,IDeckLinkConfiguration_v7_6 **configObject) { + return This->lpVtbl->GetConfigurationValidator(This,configObject); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(IDeckLinkConfiguration_v7_6* This) { + return This->lpVtbl->WriteConfigurationToPreferences(This); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(IDeckLinkConfiguration_v7_6* This,BMDVideoConnection_v7_6 videoOutputConnection) { + return This->lpVtbl->SetVideoOutputFormat(This,videoOutputConnection); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_IsVideoOutputActive(IDeckLinkConfiguration_v7_6* This,BMDVideoConnection_v7_6 videoOutputConnection,BOOL *active) { + return This->lpVtbl->IsVideoOutputActive(This,videoOutputConnection,active); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(IDeckLinkConfiguration_v7_6* This,BMDAnalogVideoFlags analogVideoFlags) { + return This->lpVtbl->SetAnalogVideoOutputFlags(This,analogVideoFlags); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(IDeckLinkConfiguration_v7_6* This,BMDAnalogVideoFlags *analogVideoFlags) { + return This->lpVtbl->GetAnalogVideoOutputFlags(This,analogVideoFlags); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(IDeckLinkConfiguration_v7_6* This,BOOL enable) { + return This->lpVtbl->EnableFieldFlickerRemovalWhenPaused(This,enable); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(IDeckLinkConfiguration_v7_6* This,BOOL *enabled) { + return This->lpVtbl->IsEnabledFieldFlickerRemovalWhenPaused(This,enabled); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(IDeckLinkConfiguration_v7_6* This,BOOL enable444VideoOutput,BOOL enable3GbsOutput) { + return This->lpVtbl->Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(IDeckLinkConfiguration_v7_6* This,BOOL *is444VideoOutputEnabled,BOOL *threeGbsOutputEnabled) { + return This->lpVtbl->Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(IDeckLinkConfiguration_v7_6* This,BMDVideoOutputConversionMode conversionMode) { + return This->lpVtbl->SetVideoOutputConversionMode(This,conversionMode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(IDeckLinkConfiguration_v7_6* This,BMDVideoOutputConversionMode *conversionMode) { + return This->lpVtbl->GetVideoOutputConversionMode(This,conversionMode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(IDeckLinkConfiguration_v7_6* This,BOOL enable) { + return This->lpVtbl->Set_HD1080p24_to_HD1080i5994_Conversion(This,enable); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(IDeckLinkConfiguration_v7_6* This,BOOL *enabled) { + return This->lpVtbl->Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetVideoInputFormat(IDeckLinkConfiguration_v7_6* This,BMDVideoConnection_v7_6 videoInputFormat) { + return This->lpVtbl->SetVideoInputFormat(This,videoInputFormat); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetVideoInputFormat(IDeckLinkConfiguration_v7_6* This,BMDVideoConnection_v7_6 *videoInputFormat) { + return This->lpVtbl->GetVideoInputFormat(This,videoInputFormat); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(IDeckLinkConfiguration_v7_6* This,BMDAnalogVideoFlags analogVideoFlags) { + return This->lpVtbl->SetAnalogVideoInputFlags(This,analogVideoFlags); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(IDeckLinkConfiguration_v7_6* This,BMDAnalogVideoFlags *analogVideoFlags) { + return This->lpVtbl->GetAnalogVideoInputFlags(This,analogVideoFlags); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(IDeckLinkConfiguration_v7_6* This,BMDVideoInputConversionMode conversionMode) { + return This->lpVtbl->SetVideoInputConversionMode(This,conversionMode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(IDeckLinkConfiguration_v7_6* This,BMDVideoInputConversionMode *conversionMode) { + return This->lpVtbl->GetVideoInputConversionMode(This,conversionMode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(IDeckLinkConfiguration_v7_6* This,BOOL blackOutInCapture) { + return This->lpVtbl->SetBlackVideoOutputDuringCapture(This,blackOutInCapture); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(IDeckLinkConfiguration_v7_6* This,BOOL *blackOutInCapture) { + return This->lpVtbl->GetBlackVideoOutputDuringCapture(This,blackOutInCapture); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(IDeckLinkConfiguration_v7_6* This,unsigned int aFrameTimecode) { + return This->lpVtbl->Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(IDeckLinkConfiguration_v7_6* This,unsigned int *aFrameTimecode) { + return This->lpVtbl->Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(IDeckLinkConfiguration_v7_6* This,unsigned int activeLine1VANCsource,unsigned int activeLine2VANCsource,unsigned int activeLine3VANCsource) { + return This->lpVtbl->SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(IDeckLinkConfiguration_v7_6* This,unsigned int *activeLine1VANCsource,unsigned int *activeLine2VANCsource,unsigned int *activeLine3VANCsource) { + return This->lpVtbl->GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_SetAudioInputFormat(IDeckLinkConfiguration_v7_6* This,BMDAudioConnection_v10_2 audioInputFormat) { + return This->lpVtbl->SetAudioInputFormat(This,audioInputFormat); +} +static FORCEINLINE HRESULT IDeckLinkConfiguration_v7_6_GetAudioInputFormat(IDeckLinkConfiguration_v7_6* This,BMDAudioConnection_v10_2 *audioInputFormat) { + return This->lpVtbl->GetAudioInputFormat(This,audioInputFormat); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * CDeckLinkGLScreenPreviewHelper_v7_6 coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkGLScreenPreviewHelper_v7_6, 0xd398cee7, 0x4434, 0x4ca3, 0x9b,0xa6, 0x5a,0xe3,0x45,0x56,0xb9,0x05); + +#ifdef __cplusplus +class DECLSPEC_UUID("d398cee7-4434-4ca3-9ba6-5ae34556b905") CDeckLinkGLScreenPreviewHelper_v7_6; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkGLScreenPreviewHelper_v7_6, 0xd398cee7, 0x4434, 0x4ca3, 0x9b,0xa6, 0x5a,0xe3,0x45,0x56,0xb9,0x05) +#endif +#endif + +/***************************************************************************** + * CDeckLinkVideoConversion_v7_6 coclass + */ + +DEFINE_GUID(CLSID_CDeckLinkVideoConversion_v7_6, 0xffa84f77, 0x73be, 0x4fb7, 0xb0,0x3e, 0xb5,0xe4,0x4b,0x9f,0x75,0x9b); + +#ifdef __cplusplus +class DECLSPEC_UUID("ffa84f77-73be-4fb7-b03e-b5e44b9f759b") CDeckLinkVideoConversion_v7_6; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(CDeckLinkVideoConversion_v7_6, 0xffa84f77, 0x73be, 0x4fb7, 0xb0,0x3e, 0xb5,0xe4,0x4b,0x9f,0x75,0x9b) +#endif +#endif + +#ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +#define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3; +#ifdef __cplusplus +interface IDeckLinkInputCallback_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__ +#define __IDeckLinkOutput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3; +#ifdef __cplusplus +interface IDeckLinkOutput_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__ +#define __IDeckLinkInput_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3; +#ifdef __cplusplus +interface IDeckLinkInput_v7_3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_3; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkInputCallback_v7_3 interface + */ +#ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInputCallback_v7_3, 0xfd6f311d, 0x4d00, 0x444b, 0x9e,0xd4, 0x1f,0x25,0xb5,0x73,0x0a,0xd0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fd6f311d-4d00-444b-9ed4-1f25b5730ad0") +IDeckLinkInputCallback_v7_3 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode_v7_6 *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + IDeckLinkVideoInputFrame_v7_3 *videoFrame, + IDeckLinkAudioInputPacket *audioPacket) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInputCallback_v7_3, 0xfd6f311d, 0x4d00, 0x444b, 0x9e,0xd4, 0x1f,0x25,0xb5,0x73,0x0a,0xd0) +#endif +#else +typedef struct IDeckLinkInputCallback_v7_3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInputCallback_v7_3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInputCallback_v7_3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInputCallback_v7_3 *This); + + /*** IDeckLinkInputCallback_v7_3 methods ***/ + HRESULT (STDMETHODCALLTYPE *VideoInputFormatChanged)( + IDeckLinkInputCallback_v7_3 *This, + BMDVideoInputFormatChangedEvents notificationEvents, + IDeckLinkDisplayMode_v7_6 *newDisplayMode, + BMDDetectedVideoInputFormatFlags detectedSignalFlags); + + HRESULT (STDMETHODCALLTYPE *VideoInputFrameArrived)( + IDeckLinkInputCallback_v7_3 *This, + IDeckLinkVideoInputFrame_v7_3 *videoFrame, + IDeckLinkAudioInputPacket *audioPacket); + + END_INTERFACE +} IDeckLinkInputCallback_v7_3Vtbl; + +interface IDeckLinkInputCallback_v7_3 { + CONST_VTBL IDeckLinkInputCallback_v7_3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInputCallback_v7_3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInputCallback_v7_3_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInputCallback_v7_3 methods ***/ +#define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) (This)->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) +#define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) (This)->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_3_QueryInterface(IDeckLinkInputCallback_v7_3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_3_AddRef(IDeckLinkInputCallback_v7_3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_3_Release(IDeckLinkInputCallback_v7_3* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInputCallback_v7_3 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(IDeckLinkInputCallback_v7_3* This,BMDVideoInputFormatChangedEvents notificationEvents,IDeckLinkDisplayMode_v7_6 *newDisplayMode,BMDDetectedVideoInputFormatFlags detectedSignalFlags) { + return This->lpVtbl->VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags); +} +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(IDeckLinkInputCallback_v7_3* This,IDeckLinkVideoInputFrame_v7_3 *videoFrame,IDeckLinkAudioInputPacket *audioPacket) { + return This->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkOutput_v7_3 interface + */ +#ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkOutput_v7_3, 0x271c65e3, 0xc323, 0x4344, 0xa3,0x0f, 0xd9,0x08,0xbc,0xb2,0x0a,0xa3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("271c65e3-c323-4344-a30f-d908bcb20aa3") +IDeckLinkOutput_v7_3 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame_v7_6 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + IDeckLinkVideoOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( + unsigned int *bufferedFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( + BOOL *active) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkOutput_v7_3, 0x271c65e3, 0xc323, 0x4344, 0xa3,0x0f, 0xd9,0x08,0xbc,0xb2,0x0a,0xa3) +#endif +#else +typedef struct IDeckLinkOutput_v7_3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkOutput_v7_3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkOutput_v7_3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkOutput_v7_3 *This); + + /*** IDeckLinkOutput_v7_3 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkOutput_v7_3 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoOutput)( + IDeckLinkOutput_v7_3 *This, + BMDDisplayMode displayMode, + BMDVideoOutputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoOutput)( + IDeckLinkOutput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrame)( + IDeckLinkOutput_v7_3 *This, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkMutableVideoFrame_v7_6 **outFrame); + + HRESULT (STDMETHODCALLTYPE *CreateAncillaryData)( + IDeckLinkOutput_v7_3 *This, + BMDPixelFormat pixelFormat, + IDeckLinkVideoFrameAncillary **outBuffer); + + HRESULT (STDMETHODCALLTYPE *DisplayVideoFrameSync)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkVideoFrame_v7_6 *theFrame); + + HRESULT (STDMETHODCALLTYPE *ScheduleVideoFrame)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkVideoFrame_v7_6 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkVideoOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *GetBufferedVideoFrameCount)( + IDeckLinkOutput_v7_3 *This, + unsigned int *bufferedFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioOutput)( + IDeckLinkOutput_v7_3 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount, + BMDAudioOutputStreamType streamType); + + HRESULT (STDMETHODCALLTYPE *DisableAudioOutput)( + IDeckLinkOutput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *WriteAudioSamplesSync)( + IDeckLinkOutput_v7_3 *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *BeginAudioPreroll)( + IDeckLinkOutput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *EndAudioPreroll)( + IDeckLinkOutput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *ScheduleAudioSamples)( + IDeckLinkOutput_v7_3 *This, + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkOutput_v7_3 *This, + unsigned int *bufferedSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *FlushBufferedAudioSamples)( + IDeckLinkOutput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *SetAudioCallback)( + IDeckLinkOutput_v7_3 *This, + IDeckLinkAudioOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *StartScheduledPlayback)( + IDeckLinkOutput_v7_3 *This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *StopScheduledPlayback)( + IDeckLinkOutput_v7_3 *This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *IsScheduledPlaybackRunning)( + IDeckLinkOutput_v7_3 *This, + BOOL *active); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkOutput_v7_3 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan); + + END_INTERFACE +} IDeckLinkOutput_v7_3Vtbl; + +interface IDeckLinkOutput_v7_3 { + CONST_VTBL IDeckLinkOutput_v7_3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkOutput_v7_3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkOutput_v7_3_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkOutput_v7_3 methods ***/ +#define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) (This)->lpVtbl->EnableVideoOutput(This,displayMode,flags) +#define IDeckLinkOutput_v7_3_DisableVideoOutput(This) (This)->lpVtbl->DisableVideoOutput(This) +#define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer) (This)->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer) +#define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame) (This)->lpVtbl->DisplayVideoFrameSync(This,theFrame) +#define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) (This)->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) +#define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback) (This)->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback) +#define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount) (This)->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount) +#define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) (This)->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) +#define IDeckLinkOutput_v7_3_DisableAudioOutput(This) (This)->lpVtbl->DisableAudioOutput(This) +#define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) (This)->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) +#define IDeckLinkOutput_v7_3_BeginAudioPreroll(This) (This)->lpVtbl->BeginAudioPreroll(This) +#define IDeckLinkOutput_v7_3_EndAudioPreroll(This) (This)->lpVtbl->EndAudioPreroll(This) +#define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) (This)->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) +#define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) +#define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This) (This)->lpVtbl->FlushBufferedAudioSamples(This) +#define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) (This)->lpVtbl->SetAudioCallback(This,theCallback) +#define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) (This)->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) +#define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) (This)->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) +#define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active) (This)->lpVtbl->IsScheduledPlaybackRunning(This,active) +#define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_QueryInterface(IDeckLinkOutput_v7_3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_3_AddRef(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_3_Release(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkOutput_v7_3 methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_DoesSupportVideoMode(IDeckLinkOutput_v7_3* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_GetDisplayModeIterator(IDeckLinkOutput_v7_3* This,IDeckLinkDisplayModeIterator_v7_6 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_SetScreenPreviewCallback(IDeckLinkOutput_v7_3* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_EnableVideoOutput(IDeckLinkOutput_v7_3* This,BMDDisplayMode displayMode,BMDVideoOutputFlags flags) { + return This->lpVtbl->EnableVideoOutput(This,displayMode,flags); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_DisableVideoOutput(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->DisableVideoOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(IDeckLinkOutput_v7_3* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_CreateVideoFrame(IDeckLinkOutput_v7_3* This,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkMutableVideoFrame_v7_6 **outFrame) { + return This->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_CreateAncillaryData(IDeckLinkOutput_v7_3* This,BMDPixelFormat pixelFormat,IDeckLinkVideoFrameAncillary **outBuffer) { + return This->lpVtbl->CreateAncillaryData(This,pixelFormat,outBuffer); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_DisplayVideoFrameSync(IDeckLinkOutput_v7_3* This,IDeckLinkVideoFrame_v7_6 *theFrame) { + return This->lpVtbl->DisplayVideoFrameSync(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_ScheduleVideoFrame(IDeckLinkOutput_v7_3* This,IDeckLinkVideoFrame_v7_6 *theFrame,BMDTimeValue displayTime,BMDTimeValue displayDuration,BMDTimeScale timeScale) { + return This->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(IDeckLinkOutput_v7_3* This,IDeckLinkVideoOutputCallback *theCallback) { + return This->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(IDeckLinkOutput_v7_3* This,unsigned int *bufferedFrameCount) { + return This->lpVtbl->GetBufferedVideoFrameCount(This,bufferedFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_EnableAudioOutput(IDeckLinkOutput_v7_3* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount,BMDAudioOutputStreamType streamType) { + return This->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_DisableAudioOutput(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->DisableAudioOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_WriteAudioSamplesSync(IDeckLinkOutput_v7_3* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesWritten) { + return This->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_BeginAudioPreroll(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->BeginAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_EndAudioPreroll(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->EndAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_ScheduleAudioSamples(IDeckLinkOutput_v7_3* This,void *buffer,unsigned int sampleFrameCount,BMDTimeValue streamTime,BMDTimeScale timeScale,unsigned int *sampleFramesWritten) { + return This->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(IDeckLinkOutput_v7_3* This,unsigned int *bufferedSampleFrameCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(IDeckLinkOutput_v7_3* This) { + return This->lpVtbl->FlushBufferedAudioSamples(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_SetAudioCallback(IDeckLinkOutput_v7_3* This,IDeckLinkAudioOutputCallback *theCallback) { + return This->lpVtbl->SetAudioCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_StartScheduledPlayback(IDeckLinkOutput_v7_3* This,BMDTimeValue playbackStartTime,BMDTimeScale timeScale,double playbackSpeed) { + return This->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_StopScheduledPlayback(IDeckLinkOutput_v7_3* This,BMDTimeValue stopPlaybackAtTime,BMDTimeValue *actualStopTime,BMDTimeScale timeScale) { + return This->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(IDeckLinkOutput_v7_3* This,BOOL *active) { + return This->lpVtbl->IsScheduledPlaybackRunning(This,active); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_3_GetHardwareReferenceClock(IDeckLinkOutput_v7_3* This,BMDTimeScale desiredTimeScale,BMDTimeValue *elapsedTimeSinceSchedulerBegan) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInput_v7_3 interface + */ +#ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInput_v7_3, 0x4973f012, 0x9925, 0x458c, 0x87,0x1c, 0x18,0x77,0x4c,0xdb,0xbe,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4973f012-9925-458c-871c-18774cdbbecb") +IDeckLinkInput_v7_3 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( + IDeckLinkScreenPreviewCallback *previewCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( + unsigned int *availableFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( + unsigned int *availableSampleFrameCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkInputCallback_v7_3 *theCallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInput_v7_3, 0x4973f012, 0x9925, 0x458c, 0x87,0x1c, 0x18,0x77,0x4c,0xdb,0xbe,0xcb) +#endif +#else +typedef struct IDeckLinkInput_v7_3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInput_v7_3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInput_v7_3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInput_v7_3 *This); + + /*** IDeckLinkInput_v7_3 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkInput_v7_3 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkInput_v7_3 *This, + IDeckLinkDisplayModeIterator_v7_6 **iterator); + + HRESULT (STDMETHODCALLTYPE *SetScreenPreviewCallback)( + IDeckLinkInput_v7_3 *This, + IDeckLinkScreenPreviewCallback *previewCallback); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkInput_v7_3 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableVideoFrameCount)( + IDeckLinkInput_v7_3 *This, + unsigned int *availableFrameCount); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkInput_v7_3 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount)( + IDeckLinkInput_v7_3 *This, + unsigned int *availableSampleFrameCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *FlushStreams)( + IDeckLinkInput_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkInput_v7_3 *This, + IDeckLinkInputCallback_v7_3 *theCallback); + + END_INTERFACE +} IDeckLinkInput_v7_3Vtbl; + +interface IDeckLinkInput_v7_3 { + CONST_VTBL IDeckLinkInput_v7_3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInput_v7_3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInput_v7_3_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInput_v7_3 methods ***/ +#define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback) (This)->lpVtbl->SetScreenPreviewCallback(This,previewCallback) +#define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkInput_v7_3_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount) (This)->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount) +#define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkInput_v7_3_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) (This)->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) +#define IDeckLinkInput_v7_3_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkInput_v7_3_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkInput_v7_3_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkInput_v7_3_FlushStreams(This) (This)->lpVtbl->FlushStreams(This) +#define IDeckLinkInput_v7_3_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_QueryInterface(IDeckLinkInput_v7_3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_3_AddRef(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_3_Release(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInput_v7_3 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_DoesSupportVideoMode(IDeckLinkInput_v7_3* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_GetDisplayModeIterator(IDeckLinkInput_v7_3* This,IDeckLinkDisplayModeIterator_v7_6 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_SetScreenPreviewCallback(IDeckLinkInput_v7_3* This,IDeckLinkScreenPreviewCallback *previewCallback) { + return This->lpVtbl->SetScreenPreviewCallback(This,previewCallback); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_EnableVideoInput(IDeckLinkInput_v7_3* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_DisableVideoInput(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(IDeckLinkInput_v7_3* This,unsigned int *availableFrameCount) { + return This->lpVtbl->GetAvailableVideoFrameCount(This,availableFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_EnableAudioInput(IDeckLinkInput_v7_3* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_DisableAudioInput(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(IDeckLinkInput_v7_3* This,unsigned int *availableSampleFrameCount) { + return This->lpVtbl->GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_StartStreams(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_StopStreams(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_PauseStreams(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_FlushStreams(IDeckLinkInput_v7_3* This) { + return This->lpVtbl->FlushStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_3_SetCallback(IDeckLinkInput_v7_3* This,IDeckLinkInputCallback_v7_3 *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoInputFrame_v7_3 interface + */ +#ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoInputFrame_v7_3, 0xcf317790, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cf317790-2894-11de-8c30-0800200c9a66") +IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 +{ + virtual HRESULT STDMETHODCALLTYPE GetStreamTime( + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoInputFrame_v7_3, 0xcf317790, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66) +#endif +#else +typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoInputFrame_v7_3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoInputFrame_v7_3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoInputFrame_v7_3 *This); + + /*** IDeckLinkVideoFrame_v7_6 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoInputFrame_v7_3 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoInputFrame_v7_3 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoInputFrame_v7_3 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoInputFrame_v7_3 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoInputFrame_v7_3 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoInputFrame_v7_3 *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetTimecode)( + IDeckLinkVideoInputFrame_v7_3 *This, + BMDTimecodeFormat format, + IDeckLinkTimecode_v7_6 **timecode); + + HRESULT (STDMETHODCALLTYPE *GetAncillaryData)( + IDeckLinkVideoInputFrame_v7_3 *This, + IDeckLinkVideoFrameAncillary **ancillary); + + /*** IDeckLinkVideoInputFrame_v7_3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStreamTime)( + IDeckLinkVideoInputFrame_v7_3 *This, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + END_INTERFACE +} IDeckLinkVideoInputFrame_v7_3Vtbl; + +interface IDeckLinkVideoInputFrame_v7_3 { + CONST_VTBL IDeckLinkVideoInputFrame_v7_3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoInputFrame_v7_3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoInputFrame_v7_3_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +#define IDeckLinkVideoInputFrame_v7_3_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoInputFrame_v7_3_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoInputFrame_v7_3_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) (This)->lpVtbl->GetTimecode(This,format,timecode) +#define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) (This)->lpVtbl->GetAncillaryData(This,ancillary) +/*** IDeckLinkVideoInputFrame_v7_3 methods ***/ +#define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale) (This)->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_3_QueryInterface(IDeckLinkVideoInputFrame_v7_3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_3_AddRef(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_3_Release(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_6 methods ***/ +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_3_GetWidth(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_3_GetHeight(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_3_GetRowBytes(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoInputFrame_v7_3_GetFlags(IDeckLinkVideoInputFrame_v7_3* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_3_GetBytes(IDeckLinkVideoInputFrame_v7_3* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_3_GetTimecode(IDeckLinkVideoInputFrame_v7_3* This,BMDTimecodeFormat format,IDeckLinkTimecode_v7_6 **timecode) { + return This->lpVtbl->GetTimecode(This,format,timecode); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(IDeckLinkVideoInputFrame_v7_3* This,IDeckLinkVideoFrameAncillary **ancillary) { + return This->lpVtbl->GetAncillaryData(This,ancillary); +} +/*** IDeckLinkVideoInputFrame_v7_3 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_3_GetStreamTime(IDeckLinkVideoInputFrame_v7_3* This,BMDTimeValue *frameTime,BMDTimeValue *frameDuration,BMDTimeScale timeScale) { + return This->lpVtbl->GetStreamTime(This,frameTime,frameDuration,timeScale); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */ + +#ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1; +#ifdef __cplusplus +interface IDeckLinkDisplayModeIterator_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +#define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1; +#ifdef __cplusplus +interface IDeckLinkDisplayMode_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1; +#ifdef __cplusplus +interface IDeckLinkVideoFrame_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1; +#ifdef __cplusplus +interface IDeckLinkVideoInputFrame_v7_1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +#define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ +typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1; +#ifdef __cplusplus +interface IDeckLinkAudioInputPacket_v7_1; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IDeckLinkDisplayModeIterator_v7_1 interface + */ +#ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayModeIterator_v7_1, 0xb28131b6, 0x59ac, 0x4857, 0xb5,0xac, 0xcd,0x75,0xd5,0x88,0x3e,0x2f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b28131b6-59ac-4857-b5ac-cd75d5883e2f") +IDeckLinkDisplayModeIterator_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayModeIterator_v7_1, 0xb28131b6, 0x59ac, 0x4857, 0xb5,0xac, 0xcd,0x75,0xd5,0x88,0x3e,0x2f) +#endif +#else +typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayModeIterator_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayModeIterator_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayModeIterator_v7_1 *This); + + /*** IDeckLinkDisplayModeIterator_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IDeckLinkDisplayModeIterator_v7_1 *This, + IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode); + + END_INTERFACE +} IDeckLinkDisplayModeIterator_v7_1Vtbl; + +interface IDeckLinkDisplayModeIterator_v7_1 { + CONST_VTBL IDeckLinkDisplayModeIterator_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayModeIterator_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayModeIterator_v7_1 methods ***/ +#define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode) (This)->lpVtbl->Next(This,deckLinkDisplayMode) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_v7_1_QueryInterface(IDeckLinkDisplayModeIterator_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_v7_1_AddRef(IDeckLinkDisplayModeIterator_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayModeIterator_v7_1_Release(IDeckLinkDisplayModeIterator_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayModeIterator_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayModeIterator_v7_1_Next(IDeckLinkDisplayModeIterator_v7_1* This,IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) { + return This->lpVtbl->Next(This,deckLinkDisplayMode); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkDisplayMode_v7_1 interface + */ +#ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkDisplayMode_v7_1, 0xaf0cd6d5, 0x8376, 0x435e, 0x84,0x33, 0x54,0xf9,0xdd,0x53,0x0a,0xc3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("af0cd6d5-8376-435e-8433-54f9dd530ac3") +IDeckLinkDisplayMode_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetName( + BSTR *name) = 0; + + virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFrameRate( + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkDisplayMode_v7_1, 0xaf0cd6d5, 0x8376, 0x435e, 0x84,0x33, 0x54,0xf9,0xdd,0x53,0x0a,0xc3) +#endif +#else +typedef struct IDeckLinkDisplayMode_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkDisplayMode_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkDisplayMode_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkDisplayMode_v7_1 *This); + + /*** IDeckLinkDisplayMode_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetName)( + IDeckLinkDisplayMode_v7_1 *This, + BSTR *name); + + BMDDisplayMode (STDMETHODCALLTYPE *GetDisplayMode)( + IDeckLinkDisplayMode_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkDisplayMode_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkDisplayMode_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFrameRate)( + IDeckLinkDisplayMode_v7_1 *This, + BMDTimeValue *frameDuration, + BMDTimeScale *timeScale); + + END_INTERFACE +} IDeckLinkDisplayMode_v7_1Vtbl; + +interface IDeckLinkDisplayMode_v7_1 { + CONST_VTBL IDeckLinkDisplayMode_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkDisplayMode_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkDisplayMode_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkDisplayMode_v7_1 methods ***/ +#define IDeckLinkDisplayMode_v7_1_GetName(This,name) (This)->lpVtbl->GetName(This,name) +#define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) (This)->lpVtbl->GetDisplayMode(This) +#define IDeckLinkDisplayMode_v7_1_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkDisplayMode_v7_1_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale) (This)->lpVtbl->GetFrameRate(This,frameDuration,timeScale) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_1_QueryInterface(IDeckLinkDisplayMode_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_v7_1_AddRef(IDeckLinkDisplayMode_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkDisplayMode_v7_1_Release(IDeckLinkDisplayMode_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkDisplayMode_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_1_GetName(IDeckLinkDisplayMode_v7_1* This,BSTR *name) { + return This->lpVtbl->GetName(This,name); +} +static FORCEINLINE BMDDisplayMode IDeckLinkDisplayMode_v7_1_GetDisplayMode(IDeckLinkDisplayMode_v7_1* This) { + return This->lpVtbl->GetDisplayMode(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_v7_1_GetWidth(IDeckLinkDisplayMode_v7_1* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkDisplayMode_v7_1_GetHeight(IDeckLinkDisplayMode_v7_1* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE HRESULT IDeckLinkDisplayMode_v7_1_GetFrameRate(IDeckLinkDisplayMode_v7_1* This,BMDTimeValue *frameDuration,BMDTimeScale *timeScale) { + return This->lpVtbl->GetFrameRate(This,frameDuration,timeScale); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoOutputCallback_v7_1 interface + */ +#ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoOutputCallback_v7_1, 0xebd01afa, 0xe4b0, 0x49c6, 0xa0,0x1d, 0xed,0xb9,0xd1,0xb5,0x5f,0xd9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ebd01afa-e4b0-49c6-a01d-edb9d1b55fd9") +IDeckLinkVideoOutputCallback_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( + IDeckLinkVideoFrame_v7_1 *completedFrame, + BMDOutputFrameCompletionResult result) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoOutputCallback_v7_1, 0xebd01afa, 0xe4b0, 0x49c6, 0xa0,0x1d, 0xed,0xb9,0xd1,0xb5,0x5f,0xd9) +#endif +#else +typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoOutputCallback_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoOutputCallback_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoOutputCallback_v7_1 *This); + + /*** IDeckLinkVideoOutputCallback_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *ScheduledFrameCompleted)( + IDeckLinkVideoOutputCallback_v7_1 *This, + IDeckLinkVideoFrame_v7_1 *completedFrame, + BMDOutputFrameCompletionResult result); + + END_INTERFACE +} IDeckLinkVideoOutputCallback_v7_1Vtbl; + +interface IDeckLinkVideoOutputCallback_v7_1 { + CONST_VTBL IDeckLinkVideoOutputCallback_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoOutputCallback_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoOutputCallback_v7_1 methods ***/ +#define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result) (This)->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_v7_1_QueryInterface(IDeckLinkVideoOutputCallback_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_v7_1_AddRef(IDeckLinkVideoOutputCallback_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoOutputCallback_v7_1_Release(IDeckLinkVideoOutputCallback_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoOutputCallback_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(IDeckLinkVideoOutputCallback_v7_1* This,IDeckLinkVideoFrame_v7_1 *completedFrame,BMDOutputFrameCompletionResult result) { + return This->lpVtbl->ScheduledFrameCompleted(This,completedFrame,result); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInputCallback_v7_1 interface + */ +#ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInputCallback_v7_1, 0x7f94f328, 0x5ed4, 0x4e9f, 0x97,0x29, 0x76,0xa8,0x6b,0xdc,0x99,0xcc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7f94f328-5ed4-4e9f-9729-76a86bdc99cc") +IDeckLinkInputCallback_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( + IDeckLinkVideoInputFrame_v7_1 *videoFrame, + IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInputCallback_v7_1, 0x7f94f328, 0x5ed4, 0x4e9f, 0x97,0x29, 0x76,0xa8,0x6b,0xdc,0x99,0xcc) +#endif +#else +typedef struct IDeckLinkInputCallback_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInputCallback_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInputCallback_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInputCallback_v7_1 *This); + + /*** IDeckLinkInputCallback_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *VideoInputFrameArrived)( + IDeckLinkInputCallback_v7_1 *This, + IDeckLinkVideoInputFrame_v7_1 *videoFrame, + IDeckLinkAudioInputPacket_v7_1 *audioPacket); + + END_INTERFACE +} IDeckLinkInputCallback_v7_1Vtbl; + +interface IDeckLinkInputCallback_v7_1 { + CONST_VTBL IDeckLinkInputCallback_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInputCallback_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInputCallback_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInputCallback_v7_1 methods ***/ +#define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) (This)->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_1_QueryInterface(IDeckLinkInputCallback_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_1_AddRef(IDeckLinkInputCallback_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInputCallback_v7_1_Release(IDeckLinkInputCallback_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInputCallback_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(IDeckLinkInputCallback_v7_1* This,IDeckLinkVideoInputFrame_v7_1 *videoFrame,IDeckLinkAudioInputPacket_v7_1 *audioPacket) { + return This->lpVtbl->VideoInputFrameArrived(This,videoFrame,audioPacket); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkOutput_v7_1 interface + */ +#ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkOutput_v7_1, 0xae5b3e9b, 0x4e1e, 0x4535, 0xb6,0xe8, 0x48,0x0f,0xf5,0x2f,0x6c,0xe5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ae5b3e9b-4e1e-4535-b6e8-480ff52f6ce5") +IDeckLinkOutput_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( + BMDDisplayMode displayMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( + IDeckLinkMemoryAllocator *theAllocator) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( + void *buffer, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( + IDeckLinkVideoFrame_v7_1 *theFrame) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( + IDeckLinkVideoFrame_v7_1 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( + IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( + IDeckLinkAudioOutputCallback *theCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkOutput_v7_1, 0xae5b3e9b, 0x4e1e, 0x4535, 0xb6,0xe8, 0x48,0x0f,0xf5,0x2f,0x6c,0xe5) +#endif +#else +typedef struct IDeckLinkOutput_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkOutput_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkOutput_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkOutput_v7_1 *This); + + /*** IDeckLinkOutput_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkOutput_v7_1 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkDisplayModeIterator_v7_1 **iterator); + + HRESULT (STDMETHODCALLTYPE *EnableVideoOutput)( + IDeckLinkOutput_v7_1 *This, + BMDDisplayMode displayMode); + + HRESULT (STDMETHODCALLTYPE *DisableVideoOutput)( + IDeckLinkOutput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkMemoryAllocator *theAllocator); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrame)( + IDeckLinkOutput_v7_1 *This, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame); + + HRESULT (STDMETHODCALLTYPE *CreateVideoFrameFromBuffer)( + IDeckLinkOutput_v7_1 *This, + void *buffer, + int width, + int height, + int rowBytes, + BMDPixelFormat pixelFormat, + BMDFrameFlags flags, + IDeckLinkVideoFrame_v7_1 **outFrame); + + HRESULT (STDMETHODCALLTYPE *DisplayVideoFrameSync)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkVideoFrame_v7_1 *theFrame); + + HRESULT (STDMETHODCALLTYPE *ScheduleVideoFrame)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkVideoFrame_v7_1 *theFrame, + BMDTimeValue displayTime, + BMDTimeValue displayDuration, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkVideoOutputCallback_v7_1 *theCallback); + + HRESULT (STDMETHODCALLTYPE *EnableAudioOutput)( + IDeckLinkOutput_v7_1 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioOutput)( + IDeckLinkOutput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *WriteAudioSamplesSync)( + IDeckLinkOutput_v7_1 *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *BeginAudioPreroll)( + IDeckLinkOutput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *EndAudioPreroll)( + IDeckLinkOutput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *ScheduleAudioSamples)( + IDeckLinkOutput_v7_1 *This, + void *buffer, + unsigned int sampleFrameCount, + BMDTimeValue streamTime, + BMDTimeScale timeScale, + unsigned int *sampleFramesWritten); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkOutput_v7_1 *This, + unsigned int *bufferedSampleCount); + + HRESULT (STDMETHODCALLTYPE *FlushBufferedAudioSamples)( + IDeckLinkOutput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *SetAudioCallback)( + IDeckLinkOutput_v7_1 *This, + IDeckLinkAudioOutputCallback *theCallback); + + HRESULT (STDMETHODCALLTYPE *StartScheduledPlayback)( + IDeckLinkOutput_v7_1 *This, + BMDTimeValue playbackStartTime, + BMDTimeScale timeScale, + double playbackSpeed); + + HRESULT (STDMETHODCALLTYPE *StopScheduledPlayback)( + IDeckLinkOutput_v7_1 *This, + BMDTimeValue stopPlaybackAtTime, + BMDTimeValue *actualStopTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *GetHardwareReferenceClock)( + IDeckLinkOutput_v7_1 *This, + BMDTimeScale desiredTimeScale, + BMDTimeValue *elapsedTimeSinceSchedulerBegan); + + END_INTERFACE +} IDeckLinkOutput_v7_1Vtbl; + +interface IDeckLinkOutput_v7_1 { + CONST_VTBL IDeckLinkOutput_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkOutput_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkOutput_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkOutput_v7_1 methods ***/ +#define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode) (This)->lpVtbl->EnableVideoOutput(This,displayMode) +#define IDeckLinkOutput_v7_1_DisableVideoOutput(This) (This)->lpVtbl->DisableVideoOutput(This) +#define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator) (This)->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator) +#define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) (This)->lpVtbl->CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) +#define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame) (This)->lpVtbl->DisplayVideoFrameSync(This,theFrame) +#define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) (This)->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) +#define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback) (This)->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback) +#define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkOutput_v7_1_DisableAudioOutput(This) (This)->lpVtbl->DisableAudioOutput(This) +#define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) (This)->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) +#define IDeckLinkOutput_v7_1_BeginAudioPreroll(This) (This)->lpVtbl->BeginAudioPreroll(This) +#define IDeckLinkOutput_v7_1_EndAudioPreroll(This) (This)->lpVtbl->EndAudioPreroll(This) +#define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) (This)->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) +#define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) +#define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This) (This)->lpVtbl->FlushBufferedAudioSamples(This) +#define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) (This)->lpVtbl->SetAudioCallback(This,theCallback) +#define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) (This)->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) +#define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) (This)->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) +#define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) (This)->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_QueryInterface(IDeckLinkOutput_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_1_AddRef(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkOutput_v7_1_Release(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkOutput_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_DoesSupportVideoMode(IDeckLinkOutput_v7_1* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_GetDisplayModeIterator(IDeckLinkOutput_v7_1* This,IDeckLinkDisplayModeIterator_v7_1 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_EnableVideoOutput(IDeckLinkOutput_v7_1* This,BMDDisplayMode displayMode) { + return This->lpVtbl->EnableVideoOutput(This,displayMode); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_DisableVideoOutput(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->DisableVideoOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(IDeckLinkOutput_v7_1* This,IDeckLinkMemoryAllocator *theAllocator) { + return This->lpVtbl->SetVideoOutputFrameMemoryAllocator(This,theAllocator); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_CreateVideoFrame(IDeckLinkOutput_v7_1* This,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkVideoFrame_v7_1 **outFrame) { + return This->lpVtbl->CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(IDeckLinkOutput_v7_1* This,void *buffer,int width,int height,int rowBytes,BMDPixelFormat pixelFormat,BMDFrameFlags flags,IDeckLinkVideoFrame_v7_1 **outFrame) { + return This->lpVtbl->CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_DisplayVideoFrameSync(IDeckLinkOutput_v7_1* This,IDeckLinkVideoFrame_v7_1 *theFrame) { + return This->lpVtbl->DisplayVideoFrameSync(This,theFrame); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_ScheduleVideoFrame(IDeckLinkOutput_v7_1* This,IDeckLinkVideoFrame_v7_1 *theFrame,BMDTimeValue displayTime,BMDTimeValue displayDuration,BMDTimeScale timeScale) { + return This->lpVtbl->ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(IDeckLinkOutput_v7_1* This,IDeckLinkVideoOutputCallback_v7_1 *theCallback) { + return This->lpVtbl->SetScheduledFrameCompletionCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_EnableAudioOutput(IDeckLinkOutput_v7_1* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioOutput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_DisableAudioOutput(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->DisableAudioOutput(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_WriteAudioSamplesSync(IDeckLinkOutput_v7_1* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesWritten) { + return This->lpVtbl->WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_BeginAudioPreroll(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->BeginAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_EndAudioPreroll(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->EndAudioPreroll(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_ScheduleAudioSamples(IDeckLinkOutput_v7_1* This,void *buffer,unsigned int sampleFrameCount,BMDTimeValue streamTime,BMDTimeScale timeScale,unsigned int *sampleFramesWritten) { + return This->lpVtbl->ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(IDeckLinkOutput_v7_1* This,unsigned int *bufferedSampleCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleCount); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(IDeckLinkOutput_v7_1* This) { + return This->lpVtbl->FlushBufferedAudioSamples(This); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_SetAudioCallback(IDeckLinkOutput_v7_1* This,IDeckLinkAudioOutputCallback *theCallback) { + return This->lpVtbl->SetAudioCallback(This,theCallback); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_StartScheduledPlayback(IDeckLinkOutput_v7_1* This,BMDTimeValue playbackStartTime,BMDTimeScale timeScale,double playbackSpeed) { + return This->lpVtbl->StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_StopScheduledPlayback(IDeckLinkOutput_v7_1* This,BMDTimeValue stopPlaybackAtTime,BMDTimeValue *actualStopTime,BMDTimeScale timeScale) { + return This->lpVtbl->StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkOutput_v7_1_GetHardwareReferenceClock(IDeckLinkOutput_v7_1* This,BMDTimeScale desiredTimeScale,BMDTimeValue *elapsedTimeSinceSchedulerBegan) { + return This->lpVtbl->GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkInput_v7_1 interface + */ +#ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkInput_v7_1, 0x2b54edef, 0x5b32, 0x429f, 0xba,0x11, 0xbb,0x99,0x05,0x96,0xea,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2b54edef-5b32-429f-ba11-bb990596eacd") +IDeckLinkInput_v7_1 : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( + IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesRead, + BMDTimeValue *audioPacketTime, + BMDTimeScale timeScale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( + unsigned int *bufferedSampleCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE PauseStreams( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IDeckLinkInputCallback_v7_1 *theCallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkInput_v7_1, 0x2b54edef, 0x5b32, 0x429f, 0xba,0x11, 0xbb,0x99,0x05,0x96,0xea,0xcd) +#endif +#else +typedef struct IDeckLinkInput_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkInput_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkInput_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkInput_v7_1 *This); + + /*** IDeckLinkInput_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *DoesSupportVideoMode)( + IDeckLinkInput_v7_1 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDDisplayModeSupport *result); + + HRESULT (STDMETHODCALLTYPE *GetDisplayModeIterator)( + IDeckLinkInput_v7_1 *This, + IDeckLinkDisplayModeIterator_v7_1 **iterator); + + HRESULT (STDMETHODCALLTYPE *EnableVideoInput)( + IDeckLinkInput_v7_1 *This, + BMDDisplayMode displayMode, + BMDPixelFormat pixelFormat, + BMDVideoInputFlags flags); + + HRESULT (STDMETHODCALLTYPE *DisableVideoInput)( + IDeckLinkInput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *EnableAudioInput)( + IDeckLinkInput_v7_1 *This, + BMDAudioSampleRate sampleRate, + BMDAudioSampleType sampleType, + unsigned int channelCount); + + HRESULT (STDMETHODCALLTYPE *DisableAudioInput)( + IDeckLinkInput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *ReadAudioSamples)( + IDeckLinkInput_v7_1 *This, + void *buffer, + unsigned int sampleFrameCount, + unsigned int *sampleFramesRead, + BMDTimeValue *audioPacketTime, + BMDTimeScale timeScale); + + HRESULT (STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount)( + IDeckLinkInput_v7_1 *This, + unsigned int *bufferedSampleCount); + + HRESULT (STDMETHODCALLTYPE *StartStreams)( + IDeckLinkInput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *StopStreams)( + IDeckLinkInput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *PauseStreams)( + IDeckLinkInput_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IDeckLinkInput_v7_1 *This, + IDeckLinkInputCallback_v7_1 *theCallback); + + END_INTERFACE +} IDeckLinkInput_v7_1Vtbl; + +interface IDeckLinkInput_v7_1 { + CONST_VTBL IDeckLinkInput_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkInput_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkInput_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkInput_v7_1 methods ***/ +#define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) (This)->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result) +#define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator) (This)->lpVtbl->GetDisplayModeIterator(This,iterator) +#define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags) (This)->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags) +#define IDeckLinkInput_v7_1_DisableVideoInput(This) (This)->lpVtbl->DisableVideoInput(This) +#define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount) (This)->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount) +#define IDeckLinkInput_v7_1_DisableAudioInput(This) (This)->lpVtbl->DisableAudioInput(This) +#define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) (This)->lpVtbl->ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) +#define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) (This)->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) +#define IDeckLinkInput_v7_1_StartStreams(This) (This)->lpVtbl->StartStreams(This) +#define IDeckLinkInput_v7_1_StopStreams(This) (This)->lpVtbl->StopStreams(This) +#define IDeckLinkInput_v7_1_PauseStreams(This) (This)->lpVtbl->PauseStreams(This) +#define IDeckLinkInput_v7_1_SetCallback(This,theCallback) (This)->lpVtbl->SetCallback(This,theCallback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_QueryInterface(IDeckLinkInput_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_1_AddRef(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkInput_v7_1_Release(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkInput_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_DoesSupportVideoMode(IDeckLinkInput_v7_1* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDDisplayModeSupport *result) { + return This->lpVtbl->DoesSupportVideoMode(This,displayMode,pixelFormat,result); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_GetDisplayModeIterator(IDeckLinkInput_v7_1* This,IDeckLinkDisplayModeIterator_v7_1 **iterator) { + return This->lpVtbl->GetDisplayModeIterator(This,iterator); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_EnableVideoInput(IDeckLinkInput_v7_1* This,BMDDisplayMode displayMode,BMDPixelFormat pixelFormat,BMDVideoInputFlags flags) { + return This->lpVtbl->EnableVideoInput(This,displayMode,pixelFormat,flags); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_DisableVideoInput(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->DisableVideoInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_EnableAudioInput(IDeckLinkInput_v7_1* This,BMDAudioSampleRate sampleRate,BMDAudioSampleType sampleType,unsigned int channelCount) { + return This->lpVtbl->EnableAudioInput(This,sampleRate,sampleType,channelCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_DisableAudioInput(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->DisableAudioInput(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_ReadAudioSamples(IDeckLinkInput_v7_1* This,void *buffer,unsigned int sampleFrameCount,unsigned int *sampleFramesRead,BMDTimeValue *audioPacketTime,BMDTimeScale timeScale) { + return This->lpVtbl->ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(IDeckLinkInput_v7_1* This,unsigned int *bufferedSampleCount) { + return This->lpVtbl->GetBufferedAudioSampleFrameCount(This,bufferedSampleCount); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_StartStreams(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->StartStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_StopStreams(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->StopStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_PauseStreams(IDeckLinkInput_v7_1* This) { + return This->lpVtbl->PauseStreams(This); +} +static FORCEINLINE HRESULT IDeckLinkInput_v7_1_SetCallback(IDeckLinkInput_v7_1* This,IDeckLinkInputCallback_v7_1 *theCallback) { + return This->lpVtbl->SetCallback(This,theCallback); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoFrame_v7_1 interface + */ +#ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoFrame_v7_1, 0x333f3a10, 0x8c2d, 0x43cf, 0xb7,0x9d, 0x46,0x56,0x0f,0xee,0xa1,0xce); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("333f3a10-8c2d-43cf-b79d-46560feea1ce") +IDeckLinkVideoFrame_v7_1 : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetWidth( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetHeight( + ) = 0; + + virtual LONG STDMETHODCALLTYPE GetRowBytes( + ) = 0; + + virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( + ) = 0; + + virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoFrame_v7_1, 0x333f3a10, 0x8c2d, 0x43cf, 0xb7,0x9d, 0x46,0x56,0x0f,0xee,0xa1,0xce) +#endif +#else +typedef struct IDeckLinkVideoFrame_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoFrame_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoFrame_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoFrame_v7_1 *This); + + /*** IDeckLinkVideoFrame_v7_1 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoFrame_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoFrame_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoFrame_v7_1 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoFrame_v7_1 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoFrame_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoFrame_v7_1 *This, + void **buffer); + + END_INTERFACE +} IDeckLinkVideoFrame_v7_1Vtbl; + +interface IDeckLinkVideoFrame_v7_1 { + CONST_VTBL IDeckLinkVideoFrame_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoFrame_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoFrame_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_1 methods ***/ +#define IDeckLinkVideoFrame_v7_1_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoFrame_v7_1_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoFrame_v7_1_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoFrame_v7_1_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_1_QueryInterface(IDeckLinkVideoFrame_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_v7_1_AddRef(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoFrame_v7_1_Release(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_1 methods ***/ +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_1_GetWidth(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_1_GetHeight(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoFrame_v7_1_GetRowBytes(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoFrame_v7_1_GetPixelFormat(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoFrame_v7_1_GetFlags(IDeckLinkVideoFrame_v7_1* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoFrame_v7_1_GetBytes(IDeckLinkVideoFrame_v7_1* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkVideoInputFrame_v7_1 interface + */ +#ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkVideoInputFrame_v7_1, 0xc8b41d95, 0x8848, 0x40ee, 0x9b,0x37, 0x6e,0x34,0x17,0xfb,0x11,0x4b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c8b41d95-8848-40ee-9b37-6e3417fb114b") +IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 +{ + virtual HRESULT STDMETHODCALLTYPE GetFrameTime( + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkVideoInputFrame_v7_1, 0xc8b41d95, 0x8848, 0x40ee, 0x9b,0x37, 0x6e,0x34,0x17,0xfb,0x11,0x4b) +#endif +#else +typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkVideoInputFrame_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkVideoInputFrame_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkVideoInputFrame_v7_1 *This); + + /*** IDeckLinkVideoFrame_v7_1 methods ***/ + LONG (STDMETHODCALLTYPE *GetWidth)( + IDeckLinkVideoInputFrame_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetHeight)( + IDeckLinkVideoInputFrame_v7_1 *This); + + LONG (STDMETHODCALLTYPE *GetRowBytes)( + IDeckLinkVideoInputFrame_v7_1 *This); + + BMDPixelFormat (STDMETHODCALLTYPE *GetPixelFormat)( + IDeckLinkVideoInputFrame_v7_1 *This); + + BMDFrameFlags (STDMETHODCALLTYPE *GetFlags)( + IDeckLinkVideoInputFrame_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkVideoInputFrame_v7_1 *This, + void **buffer); + + /*** IDeckLinkVideoInputFrame_v7_1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFrameTime)( + IDeckLinkVideoInputFrame_v7_1 *This, + BMDTimeValue *frameTime, + BMDTimeValue *frameDuration, + BMDTimeScale timeScale); + + END_INTERFACE +} IDeckLinkVideoInputFrame_v7_1Vtbl; + +interface IDeckLinkVideoInputFrame_v7_1 { + CONST_VTBL IDeckLinkVideoInputFrame_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkVideoInputFrame_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkVideoInputFrame_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkVideoFrame_v7_1 methods ***/ +#define IDeckLinkVideoInputFrame_v7_1_GetWidth(This) (This)->lpVtbl->GetWidth(This) +#define IDeckLinkVideoInputFrame_v7_1_GetHeight(This) (This)->lpVtbl->GetHeight(This) +#define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) (This)->lpVtbl->GetRowBytes(This) +#define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This) (This)->lpVtbl->GetPixelFormat(This) +#define IDeckLinkVideoInputFrame_v7_1_GetFlags(This) (This)->lpVtbl->GetFlags(This) +#define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +/*** IDeckLinkVideoInputFrame_v7_1 methods ***/ +#define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale) (This)->lpVtbl->GetFrameTime(This,frameTime,frameDuration,timeScale) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_1_QueryInterface(IDeckLinkVideoInputFrame_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_1_AddRef(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkVideoInputFrame_v7_1_Release(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkVideoFrame_v7_1 methods ***/ +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_1_GetWidth(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->GetWidth(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_1_GetHeight(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->GetHeight(This); +} +static FORCEINLINE LONG IDeckLinkVideoInputFrame_v7_1_GetRowBytes(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->GetRowBytes(This); +} +static FORCEINLINE BMDPixelFormat IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->GetPixelFormat(This); +} +static FORCEINLINE BMDFrameFlags IDeckLinkVideoInputFrame_v7_1_GetFlags(IDeckLinkVideoInputFrame_v7_1* This) { + return This->lpVtbl->GetFlags(This); +} +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_1_GetBytes(IDeckLinkVideoInputFrame_v7_1* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +/*** IDeckLinkVideoInputFrame_v7_1 methods ***/ +static FORCEINLINE HRESULT IDeckLinkVideoInputFrame_v7_1_GetFrameTime(IDeckLinkVideoInputFrame_v7_1* This,BMDTimeValue *frameTime,BMDTimeValue *frameDuration,BMDTimeScale timeScale) { + return This->lpVtbl->GetFrameTime(This,frameTime,frameDuration,timeScale); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDeckLinkAudioInputPacket_v7_1 interface + */ +#ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ +#define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDeckLinkAudioInputPacket_v7_1, 0xc86de4f6, 0xa29f, 0x42e3, 0xab,0x3a, 0x13,0x63,0xe2,0x9f,0x07,0x88); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c86de4f6-a29f-42e3-ab3a-1363e29f0788") +IDeckLinkAudioInputPacket_v7_1 : public IUnknown +{ + virtual LONG STDMETHODCALLTYPE GetSampleCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBytes( + void **buffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( + BMDTimeValue *packetTime, + BMDTimeScale timeScale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDeckLinkAudioInputPacket_v7_1, 0xc86de4f6, 0xa29f, 0x42e3, 0xab,0x3a, 0x13,0x63,0xe2,0x9f,0x07,0x88) +#endif +#else +typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDeckLinkAudioInputPacket_v7_1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDeckLinkAudioInputPacket_v7_1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDeckLinkAudioInputPacket_v7_1 *This); + + /*** IDeckLinkAudioInputPacket_v7_1 methods ***/ + LONG (STDMETHODCALLTYPE *GetSampleCount)( + IDeckLinkAudioInputPacket_v7_1 *This); + + HRESULT (STDMETHODCALLTYPE *GetBytes)( + IDeckLinkAudioInputPacket_v7_1 *This, + void **buffer); + + HRESULT (STDMETHODCALLTYPE *GetAudioPacketTime)( + IDeckLinkAudioInputPacket_v7_1 *This, + BMDTimeValue *packetTime, + BMDTimeScale timeScale); + + END_INTERFACE +} IDeckLinkAudioInputPacket_v7_1Vtbl; + +interface IDeckLinkAudioInputPacket_v7_1 { + CONST_VTBL IDeckLinkAudioInputPacket_v7_1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDeckLinkAudioInputPacket_v7_1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDeckLinkAudioInputPacket_v7_1_Release(This) (This)->lpVtbl->Release(This) +/*** IDeckLinkAudioInputPacket_v7_1 methods ***/ +#define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This) (This)->lpVtbl->GetSampleCount(This) +#define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer) (This)->lpVtbl->GetBytes(This,buffer) +#define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale) (This)->lpVtbl->GetAudioPacketTime(This,packetTime,timeScale) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_v7_1_QueryInterface(IDeckLinkAudioInputPacket_v7_1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IDeckLinkAudioInputPacket_v7_1_AddRef(IDeckLinkAudioInputPacket_v7_1* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IDeckLinkAudioInputPacket_v7_1_Release(IDeckLinkAudioInputPacket_v7_1* This) { + return This->lpVtbl->Release(This); +} +/*** IDeckLinkAudioInputPacket_v7_1 methods ***/ +static FORCEINLINE LONG IDeckLinkAudioInputPacket_v7_1_GetSampleCount(IDeckLinkAudioInputPacket_v7_1* This) { + return This->lpVtbl->GetSampleCount(This); +} +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_v7_1_GetBytes(IDeckLinkAudioInputPacket_v7_1* This,void **buffer) { + return This->lpVtbl->GetBytes(This,buffer); +} +static FORCEINLINE HRESULT IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(IDeckLinkAudioInputPacket_v7_1* This,BMDTimeValue *packetTime,BMDTimeScale timeScale) { + return This->lpVtbl->GetAudioPacketTime(This,packetTime,timeScale); +} +#endif +#endif + +#endif + + +#endif /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); +unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); +unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); +void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __decklinkapi_h__ */ diff --git a/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI_i.c b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI_i.c new file mode 100644 index 00000000000..c449f16568d --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPI_i.c @@ -0,0 +1,139 @@ +/*** Autogenerated by WIDL 3.1 from DeckLinkAPI.idl - Do not edit ***/ + +#include +#include + +#ifdef _MIDL_USE_GUIDDEF_ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) + +#else + +#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ + const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} + +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +MIDL_DEFINE_GUID(IID, LIBID_DeckLinkAPI, 0xd864517a, 0xedd5, 0x466d, 0x86,0x7d, 0xc8,0x19,0xf1,0xc0,0x52,0xbb); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode, 0xbc6cfbd3, 0x8317, 0x4325, 0xac,0x1c, 0x12,0x16,0x39,0x1e,0x93,0x40); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator, 0x9c88499f, 0xf601, 0x4021, 0xb8,0x0b, 0x03,0x2e,0x4e,0xb4,0x1c,0x35); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode, 0x3eb2c1ab, 0x0a3d, 0x4523, 0xa3,0xad, 0xf4,0x0d,0x7f,0xb1,0x4e,0x78); +MIDL_DEFINE_GUID(IID, IID_IDeckLink, 0xc418fbdd, 0x0587, 0x48ed, 0x8f,0xe5, 0x64,0x0f,0x0a,0x14,0xaf,0x91); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration, 0xef90380b, 0x4ae5, 0x4346, 0x90,0x77, 0xe2,0x88,0xe1,0x49,0xf1,0x29); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration, 0x138050e5, 0xc60a, 0x4552, 0xbf,0x3f, 0x0f,0x35,0x80,0x49,0x32,0x7e); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback, 0x53436ffb, 0xb434, 0x4906, 0xba,0xdc, 0xae,0x30,0x60,0xff,0xe8,0xef); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl, 0x8e1c3ace, 0x19c7, 0x4e00, 0x8b,0x92, 0xd8,0x04,0x31,0xd9,0x58,0xbe); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceNotificationCallback, 0xf9531d64, 0x3305, 0x4b29, 0xa3,0x87, 0x7f,0x74,0xbb,0x0d,0x0e,0x84); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264InputCallback, 0x823c475f, 0x55ae, 0x46f9, 0x89,0x0c, 0x53,0x7c,0xc5,0xce,0xdc,0xca); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDiscovery, 0x2c837444, 0xf989, 0x4d87, 0x90,0x1a, 0x47,0xc8,0xa3,0x6d,0x09,0x6d); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingMode, 0x1ab8035b, 0xcd13, 0x458d, 0xb6,0xdf, 0x5e,0x8f,0x7c,0x21,0x41,0xd9); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMutableVideoEncodingMode, 0x19bf7d90, 0x1e0a, 0x400d, 0xb2,0xc6, 0xff,0xc4,0xe7,0x8a,0xd4,0x9d); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingModePresetIterator, 0x7ac731a3, 0xc950, 0x4ad0, 0x80,0x4a, 0x83,0x77,0xaa,0x51,0xc6,0xc4); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceInput, 0x24b6b6ec, 0x1727, 0x44bb, 0x98,0x18, 0x34,0xff,0x08,0x6a,0xcf,0x98); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALPacket, 0xe260e955, 0x14be, 0x4395, 0x97,0x75, 0x9f,0x02,0xcc,0x0a,0x9d,0x89); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingAudioPacket, 0xd9eb5902, 0x1ad2, 0x43f4, 0x9e,0x2c, 0x3c,0xfa,0x50,0xb5,0xee,0x19); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMPEG2TSPacket, 0x91810d1c, 0x4fb3, 0x4aaa, 0xae,0x56, 0xfa,0x30,0x1d,0x3d,0xfa,0x4c); +MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALParser, 0x5867f18c, 0x5bfa, 0x4ccc, 0xb2,0xa7, 0x9d,0xfd,0x14,0x04,0x17,0xd2); +MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery, 0x23a4edf5, 0xa0e5, 0x432c, 0x94,0xef, 0x3b,0xab,0xb5,0xf8,0x1c,0x82); +MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingH264NALParser, 0x7753efbd, 0x951c, 0x407c, 0x97,0xa5, 0x23,0xc7,0x37,0xb7,0x3b,0x52); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback, 0x20aa5225, 0x1958, 0x47cb, 0x82,0x0b, 0x80,0xa8,0xd5,0x21,0xa6,0xee); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback, 0xdd04e5ec, 0x7415, 0x42ab, 0xae,0x4a, 0xe8,0x0c,0x4d,0xfc,0x04,0x4a); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInputCallback, 0xacf13e61, 0xf4a0, 0x4974, 0xa6,0xa7, 0x59,0xaf,0xf6,0x26,0x8b,0x31); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator, 0xb36eb6e7, 0x9d29, 0x4aa8, 0x92,0xef, 0x84,0x3b,0x87,0xa2,0x89,0xe8); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioOutputCallback, 0x403c681b, 0x7f46, 0x4a12, 0xb9,0x93, 0x2b,0xb1,0x27,0x08,0x4e,0xe6); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator, 0x50fb36cd, 0x3063, 0x4b73, 0xbd,0xbb, 0x95,0x80,0x87,0xf2,0xd8,0xba); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAPIInformation, 0x7bea3c68, 0x730d, 0x4322, 0xaf,0x34, 0x8a,0x71,0x52,0xb5,0x32,0xa4); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput, 0xcc5c8a6e, 0x3f2f, 0x4b3a, 0x87,0xea, 0xfd,0x78,0xaf,0x30,0x05,0x64); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput, 0xaf22762b, 0xdfac, 0x4846, 0xaa,0x79, 0xfa,0x88,0x83,0x56,0x09,0x95); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput, 0x270587da, 0x6b7d, 0x42e7, 0xa1,0xf0, 0x6d,0x85,0x3f,0x58,0x11,0x85); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame, 0x3f716fe0, 0xf023, 0x4111, 0xbe,0x5d, 0xef,0x44,0x14,0xc0,0x5b,0x17); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame, 0x69e2639f, 0x40da, 0x4e19, 0xb6,0xf2, 0x20,0xac,0xe8,0x15,0xc3,0x90); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame3DExtensions, 0xda0f7e4a, 0xedc7, 0x48a8, 0x9c,0xdd, 0x2d,0xb5,0x1c,0x72,0x9c,0xd7); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameMetadataExtensions, 0xd5973dc9, 0x6432, 0x46d0, 0x8f,0x0b, 0x24,0x96,0xf8,0xa1,0x23,0x8f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame, 0x05cfe374, 0x537c, 0x4094, 0x9a,0x57, 0x68,0x05,0x25,0x11,0x8f,0x44); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillary, 0x732e723c, 0xd1a4, 0x4e29, 0x9e,0x8e, 0x4a,0x88,0x79,0x7a,0x00,0x04); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderPacket, 0xb693f36c, 0x316e, 0x4af1, 0xb6,0xc2, 0xf3,0x89,0xa4,0xbc,0xa6,0x20); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderVideoPacket, 0x4e7fd944, 0xe8c7, 0x4eac, 0xb8,0xc0, 0x7b,0x77,0xf8,0x0f,0x5a,0xe0); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderAudioPacket, 0x49e8edc8, 0x693b, 0x4e14, 0x8e,0xf6, 0x12,0xc6,0x58,0xf5,0xa0,0x7a); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkH265NALPacket, 0x639c8e0b, 0x68d5, 0x4bde, 0xa6,0xd4, 0x95,0xf3,0xae,0xaf,0xf2,0xe7); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket, 0xe43d5870, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback, 0xb1d3f49a, 0x85fe, 0x4c5d, 0x95,0xc8, 0x0b,0x5d,0x5d,0xcc,0xd4,0x38); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper, 0x504e2209, 0xcac7, 0x4c1a, 0x9f,0xb4, 0xc5,0xbb,0x62,0x74,0xd2,0x2f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDX9ScreenPreviewHelper, 0x2094b522, 0xd1a1, 0x40c0, 0x9a,0xc7, 0x1c,0x01,0x22,0x18,0xef,0x02); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotificationCallback, 0xb002a1ec, 0x070d, 0x4288, 0x82,0x89, 0xbd,0x5d,0x36,0xe5,0xff,0x0d); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification, 0x0a1fb207, 0xe215, 0x441b, 0x9b,0x19, 0x6f,0xa1,0x57,0x59,0x46,0xc5); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAttributes, 0xabc11843, 0xd966, 0x44cb, 0x96,0xe2, 0xa1,0xcb,0x5d,0x31,0x35,0xc4); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkStatus, 0x5f558200, 0x4028, 0x49bc, 0xbe,0xac, 0xdb,0x3f,0xa4,0xa9,0x6e,0x46); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer, 0x89afcaf5, 0x65f8, 0x421e, 0x98,0xf7, 0x96,0xfe,0x5f,0x5b,0xfb,0xa3); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion, 0x3bbcb8a2, 0xda2c, 0x42d9, 0xb5,0xd8, 0x88,0x08,0x36,0x44,0xe9,0x9a); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeviceNotificationCallback, 0x4997053b, 0x0adf, 0x4cc8, 0xac,0x70, 0x7a,0x50,0xc4,0xbe,0x72,0x8f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDiscovery, 0xcdbf631c, 0xbc76, 0x45fa, 0xb4,0x4d, 0xc5,0x50,0x59,0xbc,0x61,0x01); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator, 0x87d2693f, 0x8d4a, 0x45c7, 0xb4,0x3f, 0x10,0xac,0xba,0x25,0xe6,0x8f); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkAPIInformation, 0x263ca19f, 0xed09, 0x482e, 0x9f,0x9d, 0x84,0x00,0x57,0x83,0xa2,0x37); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper, 0xf63e77c7, 0xb655, 0x4a4a, 0x9a,0xd0, 0x3c,0xa8,0x5d,0x39,0x43,0x43); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDX9ScreenPreviewHelper, 0xcc010023, 0xe01d, 0x4525, 0x9d,0x59, 0x80,0xc8,0xab,0x3d,0xc7,0xa0); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion, 0x7dbbbb11, 0x5b7b, 0x467d, 0xae,0xa4, 0xce,0xa4,0x68,0xfd,0x36,0x8c); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery, 0x652615d4, 0x26cd, 0x4514, 0xb1,0x61, 0x2f,0xd5,0x07,0x2e,0xd0,0x08); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_9, 0xcb71734a, 0xfe37, 0x4e8d, 0x8e,0x13, 0x80,0x21,0x33,0xa1,0xc3,0xf2); +MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery_v10_8, 0x0caa31f6, 0x8a26, 0x40b0, 0x86,0xa4, 0xbf,0x58,0xdc,0xca,0x71,0x0c); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v10_8, 0x1f2e109a, 0x8f4f, 0x49e4, 0x92,0x03, 0x13,0x55,0x95,0xcb,0x6f,0xa5); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery_v10_8, 0x1073a05c, 0xd885, 0x47e9, 0xb3,0xc6, 0x12,0x9b,0x3f,0x9f,0x64,0x8b); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration_v10_5, 0x67455668, 0x0848, 0x45df, 0x8d,0x8e, 0x35,0x0a,0x77,0xc9,0xa0,0x28); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_4, 0x1e69fcf6, 0x4203, 0x4936, 0x80,0x76, 0x2a,0x9f,0x4c,0xfd,0x50,0xcb); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_2, 0xc679a35b, 0x610c, 0x4d09, 0xb7,0x48, 0x1d,0x04,0x78,0x10,0x0f,0xc0); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v9_9, 0xa3ef0963, 0x0862, 0x44ed, 0x92,0xa9, 0xee,0x89,0xab,0xf4,0x31,0xc7); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v9_2, 0x6d40ef78, 0x28b9, 0x4e21, 0x99,0x0d, 0x95,0xbb,0x77,0x50,0xa0,0x4f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback_v8_1, 0xe5f693c1, 0x4283, 0x4716, 0xb1,0x8f, 0xc1,0x43,0x15,0x21,0x95,0x5b); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v8_1, 0x522a9e39, 0x0f3c, 0x4742, 0x94,0xee, 0xd8,0x0d,0xe3,0x35,0xda,0x1d); +MIDL_DEFINE_GUID(IID, IID_IDeckLink_v8_0, 0x62bff75d, 0x6569, 0x4e55, 0x8d,0x4d, 0x66,0xaa,0x03,0x82,0x9a,0xbc); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator_v8_0, 0x74e936fc, 0xcc28, 0x4a67, 0x81,0xa0, 0x1e,0x94,0xe5,0x2d,0x4e,0x69); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v8_0, 0xd9eda3b3, 0x2887, 0x41fa, 0xb7,0x24, 0x01,0x7c,0xf1,0xeb,0x1d,0x37); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v7_9, 0xa4d81043, 0x0619, 0x42b7, 0x8e,0xd6, 0x60,0x2d,0x29,0x04,0x1d,0xf7); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_6, 0xe763a626, 0x4a3c, 0x49d1, 0xbf,0x13, 0xe7,0xad,0x36,0x92,0xae,0x52); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_6, 0x31d28ee7, 0x88b6, 0x4cb1, 0x89,0x7a, 0xcd,0xbf,0x79,0xa2,0x64,0x14); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_6, 0x455d741f, 0x1779, 0x4800, 0x86,0xf5, 0x0b,0x5d,0x13,0xd7,0x97,0x51); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_6, 0x87451e84, 0x2b7e, 0x439e, 0xa6,0x29, 0x43,0x93,0xea,0x4a,0x85,0x50); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_6, 0x29228142, 0xeb8c, 0x4141, 0xa6,0x21, 0xf7,0x40,0x26,0x45,0x09,0x55); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_6, 0x300c135a, 0x9f43, 0x48e2, 0x99,0x06, 0x6d,0x79,0x11,0xd9,0x3c,0xf1); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode_v7_6, 0xefb9bca6, 0xa521, 0x44f7, 0xbd,0x69, 0x23,0x32,0xf2,0x4d,0x9e,0xe6); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_6, 0xa8d8238e, 0x6b18, 0x4196, 0x99,0xe1, 0x5a,0xf7,0x17,0xb8,0x3d,0x32); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame_v7_6, 0x46fcee00, 0xb4e6, 0x43d0, 0x91,0xc0, 0x02,0x3a,0x7f,0xce,0xb3,0x4f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_6, 0x9a74fa41, 0xae9f, 0x47ac, 0x8c,0xf4, 0x01,0xf4,0x2d,0xd5,0x99,0x65); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback_v7_6, 0x373f499d, 0x4b4d, 0x4518, 0xad,0x22, 0x63,0x54,0xe5,0xa5,0x82,0x5e); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper_v7_6, 0xba575cd9, 0xa15e, 0x497b, 0xb2,0xc2, 0xf9,0xaf,0xe7,0xbe,0x4e,0xba); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion_v7_6, 0x3eb504c9, 0xf97d, 0x40fe, 0xa1,0x58, 0xd4,0x07,0xd4,0x8c,0xb5,0x3b); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v7_6, 0xb8ead569, 0xb764, 0x47f0, 0xa7,0x3f, 0xae,0x40,0xdf,0x6c,0xbf,0x10); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper_v7_6, 0xd398cee7, 0x4434, 0x4ca3, 0x9b,0xa6, 0x5a,0xe3,0x45,0x56,0xb9,0x05); +MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion_v7_6, 0xffa84f77, 0x73be, 0x4fb7, 0xb0,0x3e, 0xb5,0xe4,0x4b,0x9f,0x75,0x9b); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_3, 0xfd6f311d, 0x4d00, 0x444b, 0x9e,0xd4, 0x1f,0x25,0xb5,0x73,0x0a,0xd0); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_3, 0x271c65e3, 0xc323, 0x4344, 0xa3,0x0f, 0xd9,0x08,0xbc,0xb2,0x0a,0xa3); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_3, 0x4973f012, 0x9925, 0x458c, 0x87,0x1c, 0x18,0x77,0x4c,0xdb,0xbe,0xcb); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_3, 0xcf317790, 0x2894, 0x11de, 0x8c,0x30, 0x08,0x00,0x20,0x0c,0x9a,0x66); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_1, 0xb28131b6, 0x59ac, 0x4857, 0xb5,0xac, 0xcd,0x75,0xd5,0x88,0x3e,0x2f); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_1, 0xaf0cd6d5, 0x8376, 0x435e, 0x84,0x33, 0x54,0xf9,0xdd,0x53,0x0a,0xc3); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_1, 0xebd01afa, 0xe4b0, 0x49c6, 0xa0,0x1d, 0xed,0xb9,0xd1,0xb5,0x5f,0xd9); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_1, 0x7f94f328, 0x5ed4, 0x4e9f, 0x97,0x29, 0x76,0xa8,0x6b,0xdc,0x99,0xcc); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_1, 0xae5b3e9b, 0x4e1e, 0x4535, 0xb6,0xe8, 0x48,0x0f,0xf5,0x2f,0x6c,0xe5); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_1, 0x2b54edef, 0x5b32, 0x429f, 0xba,0x11, 0xbb,0x99,0x05,0x96,0xea,0xcd); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_1, 0x333f3a10, 0x8c2d, 0x43cf, 0xb7,0x9d, 0x46,0x56,0x0f,0xee,0xa1,0xce); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_1, 0xc8b41d95, 0x8848, 0x40ee, 0x9b,0x37, 0x6e,0x34,0x17,0xfb,0x11,0x4b); +MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket_v7_1, 0xc86de4f6, 0xa29f, 0x42e3, 0xab,0x3a, 0x13,0x63,0xe2,0x9f,0x07,0x88); + +#ifdef __cplusplus +} +#endif + +#undef MIDL_DEFINE_GUID diff --git a/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h new file mode 100644 index 00000000000..a2565e04fc2 --- /dev/null +++ b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h @@ -0,0 +1,37 @@ +/* -LICENSE-START- + * ** Copyright (c) 2014 Blackmagic Design + * ** + * ** Permission is hereby granted, free of charge, to any person or organization + * ** obtaining a copy of the software and accompanying documentation covered by + * ** this license (the "Software") to use, reproduce, display, distribute, + * ** execute, and transmit the Software, and to prepare derivative works of the + * ** Software, and to permit third-parties to whom the Software is furnished to + * ** do so, all subject to the following: + * ** + * ** The copyright notices in the Software and this entire statement, including + * ** the above license grant, this restriction and the following disclaimer, + * ** must be included in all copies of the Software, in whole or in part, and + * ** all derivative works of the Software, unless such copies or derivative + * ** works are solely in the form of machine-executable object code generated by + * ** a source language processor. + * ** + * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * ** DEALINGS IN THE SOFTWARE. + * ** -LICENSE-END- + * */ + +/* DeckLinkAPIVersion.h */ + +#ifndef __DeckLink_API_Version_h__ +#define __DeckLink_API_Version_h__ + +#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 +#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" + +#endif // __DeckLink_API_Version_h__ + From 38df7eb7b36f064a8dd902d0fbfac60816018dad Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 4 Apr 2018 23:48:14 -0400 Subject: [PATCH 08/15] Typo. --- ffmpeg/src/main/resources/decklink/decklink.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg/src/main/resources/decklink/decklink.txt b/ffmpeg/src/main/resources/decklink/decklink.txt index b1f1fbb48ab..36f8c3688e3 100644 --- a/ffmpeg/src/main/resources/decklink/decklink.txt +++ b/ffmpeg/src/main/resources/decklink/decklink.txt @@ -2,7 +2,7 @@ Instructions for the files before: 1) Download latest Desktop SDK from https://www.blackmagicdesign.com/support 2) Install pacman -S mingw-w64-{i686,x86_64}-tools-git dos2unix - ** This is in addition to the normal windows values. + ** This is in addition to the normal packages. === Instructions for Compiling on Windows === https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers From be59cb44a9a56fc340275b8a32ef2bb0b7d3f0e7 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 25 Apr 2018 01:16:05 -0400 Subject: [PATCH 09/15] Fixing a bug with the decklink implementation. I can now detect when a source is not available using the flags field of the AVPacket. --- ffmpeg/cppbuild.sh | 1 + ffmpeg/decklink_dec.cpp.patch | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 ffmpeg/decklink_dec.cpp.patch diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index a52318d7c49..b633770c62b 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -76,6 +76,7 @@ export PATH=$INSTALL_PATH/bin:$PATH cd .. patch -p0 < ../../lame.patch +patch -p0 < ../../decklink_dec.cpp.patch case $PLATFORM in android-arm) diff --git a/ffmpeg/decklink_dec.cpp.patch b/ffmpeg/decklink_dec.cpp.patch new file mode 100644 index 00000000000..d0e9cace0c9 --- /dev/null +++ b/ffmpeg/decklink_dec.cpp.patch @@ -0,0 +1,10 @@ +--- ffmpeg-3.4.2/libavdevice/decklink_dec.cpp 2018-02-11 19:29:06.000000000 -0500 ++++ ffmpeg-3.4.2/libavdevice/decklink_dec2.cpp 2018-04-25 01:05:05.508627400 -0400 +@@ -675,6 +675,7 @@ + "- Frames dropped %u\n", ctx->frameCount, ++ctx->dropped); + } + no_video = 1; ++ pkt.flags |= AV_PKT_FLAG_DISCARD; + } else { + if (no_video) { + av_log(avctx, AV_LOG_WARNING, "Frame received (#%lu) - Input returned " From 7afcb3f7c4a97ebeb386c3d5a1c1484d5c6e71f0 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 5 May 2018 11:56:17 -0400 Subject: [PATCH 10/15] Prevent logging from generation too many threads. --- ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java b/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java index b55d465d1ca..a2c53f27ea6 100644 --- a/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java +++ b/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java @@ -35,7 +35,7 @@ * @author Samuel Audet */ @Properties(target="org.bytedeco.javacpp.avutil", value={ - @Platform(define="__STDC_CONSTANT_MACROS", cinclude={"", "", "", "", + @Platform(define={"__STDC_CONSTANT_MACROS", "NO_JNI_DETACH_THREAD"}, cinclude={"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", From 802905bfb3e93e7e17f21cc0a8033dd1f50446af Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sat, 5 May 2018 12:36:16 -0400 Subject: [PATCH 11/15] Removed unredistributable files. Added a patch to remove references to unredistributable files from within the FFmpeg source code. --- ffmpeg/cppbuild.sh | 10 +- ffmpeg/decklink_common.h.patch | 23 + .../src/main/resources/decklink/decklink.txt | 26 +- .../resources/decklink/linux/DeckLinkAPI.h | 1104 ---------------- .../decklink/linux/DeckLinkAPIConfiguration.h | 261 ---- .../linux/DeckLinkAPIConfiguration_v10_2.h | 60 - .../linux/DeckLinkAPIConfiguration_v10_4.h | 63 - .../linux/DeckLinkAPIConfiguration_v10_5.h | 60 - .../linux/DeckLinkAPIConfiguration_v10_9.h | 62 - .../decklink/linux/DeckLinkAPIDeckControl.h | 219 ---- .../decklink/linux/DeckLinkAPIDiscovery.h | 75 -- .../decklink/linux/DeckLinkAPIDispatch.cpp | 146 --- .../linux/DeckLinkAPIDispatch_v10_8.cpp | 146 --- .../linux/DeckLinkAPIDispatch_v7_6.cpp | 109 -- .../linux/DeckLinkAPIDispatch_v8_0.cpp | 133 -- .../decklink/linux/DeckLinkAPIModes.h | 200 --- .../decklink/linux/DeckLinkAPITypes.h | 125 -- .../decklink/linux/DeckLinkAPIVersion.h | 37 - .../decklink/linux/DeckLinkAPI_v10_2.h | 55 - .../decklink/linux/DeckLinkAPI_v10_4.h | 45 - .../decklink/linux/DeckLinkAPI_v10_5.h | 46 - .../decklink/linux/DeckLinkAPI_v10_6.h | 50 - .../decklink/linux/DeckLinkAPI_v10_9.h | 45 - .../decklink/linux/DeckLinkAPI_v7_1.h | 198 --- .../decklink/linux/DeckLinkAPI_v7_3.h | 173 --- .../decklink/linux/DeckLinkAPI_v7_6.h | 404 ------ .../decklink/linux/DeckLinkAPI_v7_9.h | 88 -- .../decklink/linux/DeckLinkAPI_v8_0.h | 63 - .../decklink/linux/DeckLinkAPI_v8_1.h | 111 -- .../decklink/linux/DeckLinkAPI_v9_2.h | 81 -- .../decklink/linux/DeckLinkAPI_v9_9.h | 98 -- .../main/resources/decklink/linux/LinuxCOM.h | 103 -- .../resources/decklink/macosx/DeckLinkAPI.h | 1120 ----------------- .../macosx/DeckLinkAPIConfiguration.h | 261 ---- .../macosx/DeckLinkAPIConfiguration_v10_2.h | 60 - .../macosx/DeckLinkAPIConfiguration_v10_4.h | 62 - .../macosx/DeckLinkAPIConfiguration_v10_5.h | 60 - .../macosx/DeckLinkAPIConfiguration_v10_9.h | 62 - .../decklink/macosx/DeckLinkAPIDeckControl.h | 219 ---- .../decklink/macosx/DeckLinkAPIDiscovery.h | 75 -- .../decklink/macosx/DeckLinkAPIDispatch.cpp | 193 --- .../macosx/DeckLinkAPIDispatch_v10_8.cpp | 193 --- .../macosx/DeckLinkAPIDispatch_v7_6.cpp | 105 -- .../macosx/DeckLinkAPIDispatch_v8_0.cpp | 131 -- .../decklink/macosx/DeckLinkAPIModes.h | 200 --- .../decklink/macosx/DeckLinkAPIStreaming.h | 379 ------ .../decklink/macosx/DeckLinkAPITypes.h | 125 -- .../decklink/macosx/DeckLinkAPIVersion.h | 37 - .../decklink/macosx/DeckLinkAPI_v10_2.h | 55 - .../decklink/macosx/DeckLinkAPI_v10_4.h | 45 - .../decklink/macosx/DeckLinkAPI_v10_5.h | 46 - .../decklink/macosx/DeckLinkAPI_v10_6.h | 51 - .../decklink/macosx/DeckLinkAPI_v10_9.h | 45 - .../decklink/macosx/DeckLinkAPI_v7_1.h | 198 --- .../decklink/macosx/DeckLinkAPI_v7_3.h | 173 --- .../decklink/macosx/DeckLinkAPI_v7_6.h | 421 ------- .../decklink/macosx/DeckLinkAPI_v7_9.h | 91 -- .../decklink/macosx/DeckLinkAPI_v8_0.h | 63 - .../decklink/macosx/DeckLinkAPI_v8_1.h | 111 -- .../decklink/macosx/DeckLinkAPI_v9_2.h | 81 -- .../decklink/macosx/DeckLinkAPI_v9_9.h | 101 -- .../decklink/windows/DeckLinkAPIversion.h | 37 - 62 files changed, 38 insertions(+), 9181 deletions(-) create mode 100644 ffmpeg/decklink_common.h.patch delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h delete mode 100644 ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h delete mode 100644 ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index b633770c62b..cb56b2b82f9 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -77,6 +77,7 @@ cd .. patch -p0 < ../../lame.patch patch -p0 < ../../decklink_dec.cpp.patch +patch -p0 < ../../decklink_common.h.patch case $PLATFORM in android-arm) @@ -422,9 +423,6 @@ case $PLATFORM in fi cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-linux.patch - cp -R $INSTALL_PATH/../../src/main/resources/decklink/linux/* $INSTALL_PATH/include - ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" make -j $MAKEJ make install @@ -487,9 +485,6 @@ case $PLATFORM in fi cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-linux.patch - cp -R $INSTALL_PATH/../../src/main/resources/decklink/linux/* $INSTALL_PATH/include - ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-pthreads --enable-libxcb --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" make -j $MAKEJ make install @@ -751,9 +746,6 @@ case $PLATFORM in make install cd ../ffmpeg-$FFMPEG_VERSION patch -Np1 < ../../../ffmpeg-macosx.patch - cp -R $INSTALL_PATH/../../src/main/resources/decklink/macosx/* $INSTALL_PATH/include - ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-pthreads --enable-indev=avfoundation --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-lstdc++ -ldl" --disable-doc --disable-programs make -j $MAKEJ make install diff --git a/ffmpeg/decklink_common.h.patch b/ffmpeg/decklink_common.h.patch new file mode 100644 index 00000000000..f7a9f5ed21c --- /dev/null +++ b/ffmpeg/decklink_common.h.patch @@ -0,0 +1,23 @@ +--- ffmpeg-3.4.2/libavdevice/decklink_common.h 2018-05-05 12:28:50.632245500 -0400 ++++ ffmpeg-3.4.2/libavdevice/decklink_common2.h 2018-05-05 12:26:31.082000000 -0400 +@@ -23,8 +23,6 @@ + #ifndef AVDEVICE_DECKLINK_COMMON_H + #define AVDEVICE_DECKLINK_COMMON_H + +-#include +- + #include "libavutil/thread.h" + #include "decklink_common_c.h" + +@@ -102,11 +100,7 @@ + typedef enum { DIRECTION_IN, DIRECTION_OUT} decklink_direction_t; + + #ifdef _WIN32 +-#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0a040000 +-typedef unsigned long buffercount_type; +-#else + typedef unsigned int buffercount_type; +-#endif + IDeckLinkIterator *CreateDeckLinkIteratorInstance(void); + #else + typedef uint32_t buffercount_type; diff --git a/ffmpeg/src/main/resources/decklink/decklink.txt b/ffmpeg/src/main/resources/decklink/decklink.txt index 36f8c3688e3..e9398ae1ce0 100644 --- a/ffmpeg/src/main/resources/decklink/decklink.txt +++ b/ffmpeg/src/main/resources/decklink/decklink.txt @@ -1,15 +1,17 @@ -Instructions for the files before: +Instructions on how to create headers for Windows: -1) Download latest Desktop SDK from https://www.blackmagicdesign.com/support -2) Install pacman -S mingw-w64-{i686,x86_64}-tools-git dos2unix - ** This is in addition to the normal packages. - -=== Instructions for Compiling on Windows === https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers -cd /Win/include -widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl -dos2unix DeckLinkAPI{,version}.h DecklinkAPI_i.c -Get license from DeckLinkAPI.idl and paste it to the beginning of each resulting file or to a separate LICENSE file -sed -n '2,24 s/^\*\*//p' DeckLinkAPI.idl > DeckLinkAPI.LICENSE -Copy DeckLinkAPI.h, DeckLinkAPIVersion.h and DeckLinkAPI_i.c to your /include dir or add their dir path to CFLAGS \ No newline at end of file +Special thanks to Ricardo Constantino. 1) Download latest Desktop SDK from https://www.blackmagicdesign.com/support + 2) Install pacman -S mingw-w64-{i686,x86_64}-tools-git dos2unix + ** This is in addition to the normal packages. + + === Instructions for Compiling on Windows === + https://github.com/jb-alvarado/media-autobuild_suite/wiki/Getting-Decklink-headers + + cd /Win/include + widl -I/mingw64/x86_64-w64-mingw32/include -h -u DeckLinkAPI.idl + dos2unix DeckLinkAPI{,version}.h DecklinkAPI_i.c + Get license from DeckLinkAPI.idl and paste it to the beginning of each resulting file or to a separate LICENSE file + sed -n '2,24 s/^\*\*//p' DeckLinkAPI.idl > DeckLinkAPI.LICENSE + Copy DeckLinkAPI.h, DeckLinkAPIVersion.h and DeckLinkAPI_i.c to your /include dir or add their dir path to CFLAGS \ No newline at end of file diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h deleted file mode 100644 index a1ef1ad912a..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI.h +++ /dev/null @@ -1,1104 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_H -#define BMD_DECKLINKAPI_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -/* DeckLink API */ - -#include -#include "LinuxCOM.h" - -#include "DeckLinkAPITypes.h" -#include "DeckLinkAPIModes.h" -#include "DeckLinkAPIDiscovery.h" -#include "DeckLinkAPIConfiguration.h" -#include "DeckLinkAPIDeckControl.h" - -#define BLACKMAGIC_DECKLINK_API_MAGIC 1 - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE}; -BMD_CONST REFIID IID_IDeckLinkInputCallback = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A}; -BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31}; -BMD_CONST REFIID IID_IDeckLinkMemoryAllocator = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8}; -BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6}; -BMD_CONST REFIID IID_IDeckLinkIterator = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA}; -BMD_CONST REFIID IID_IDeckLinkAPIInformation = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4}; -BMD_CONST REFIID IID_IDeckLinkOutput = /* CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564 */ {0xCC,0x5C,0x8A,0x6E,0x3F,0x2F,0x4B,0x3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64}; -BMD_CONST REFIID IID_IDeckLinkInput = /* AF22762B-DFAC-4846-AA79-FA8883560995 */ {0xAF,0x22,0x76,0x2B,0xDF,0xAC,0x48,0x46,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95}; -BMD_CONST REFIID IID_IDeckLinkEncoderInput = /* 270587DA-6B7D-42E7-A1F0-6D853F581185 */ {0x27,0x05,0x87,0xDA,0x6B,0x7D,0x42,0xE7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85}; -BMD_CONST REFIID IID_IDeckLinkVideoFrame = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17}; -BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90}; -BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7}; -BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F}; -BMD_CONST REFIID IID_IDeckLinkVideoInputFrame = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44}; -BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04}; -BMD_CONST REFIID IID_IDeckLinkEncoderPacket = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20}; -BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0}; -BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A}; -BMD_CONST REFIID IID_IDeckLinkH265NALPacket = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7}; -BMD_CONST REFIID IID_IDeckLinkAudioInputPacket = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66}; -BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38}; -BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F}; -BMD_CONST REFIID IID_IDeckLinkNotificationCallback = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D}; -BMD_CONST REFIID IID_IDeckLinkNotification = /* 0A1FB207-E215-441B-9B19-6FA1575946C5 */ {0x0A,0x1F,0xB2,0x07,0xE2,0x15,0x44,0x1B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5}; -BMD_CONST REFIID IID_IDeckLinkAttributes = /* ABC11843-D966-44CB-96E2-A1CB5D3135C4 */ {0xAB,0xC1,0x18,0x43,0xD9,0x66,0x44,0xCB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4}; -BMD_CONST REFIID IID_IDeckLinkStatus = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46}; -BMD_CONST REFIID IID_IDeckLinkKeyer = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3}; -BMD_CONST REFIID IID_IDeckLinkVideoConversion = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A}; -BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F}; -BMD_CONST REFIID IID_IDeckLinkDiscovery = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01}; - -/* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */ - -typedef uint32_t BMDVideoOutputFlags; -enum _BMDVideoOutputFlags { - bmdVideoOutputFlagDefault = 0, - bmdVideoOutputVANC = 1 << 0, - bmdVideoOutputVITC = 1 << 1, - bmdVideoOutputRP188 = 1 << 2, - bmdVideoOutputDualStream3D = 1 << 4 -}; - -/* Enum BMDPacketType - Type of packet */ - -typedef uint32_t BMDPacketType; -enum _BMDPacketType { - bmdPacketTypeStreamInterruptedMarker = /* 'sint' */ 0x73696E74, // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable - bmdPacketTypeStreamData = /* 'sdat' */ 0x73646174 // Regular stream data -}; - -/* Enum BMDFrameFlags - Frame flags */ - -typedef uint32_t BMDFrameFlags; -enum _BMDFrameFlags { - bmdFrameFlagDefault = 0, - bmdFrameFlagFlipVertical = 1 << 0, - bmdFrameContainsHDRMetadata = 1 << 1, - bmdFrameContainsCintelMetadata = 1 << 2, - - /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */ - - bmdFrameHasNoInputSource = 1 << 31 -}; - -/* Enum BMDVideoInputFlags - Flags applicable to video input */ - -typedef uint32_t BMDVideoInputFlags; -enum _BMDVideoInputFlags { - bmdVideoInputFlagDefault = 0, - bmdVideoInputEnableFormatDetection = 1 << 0, - bmdVideoInputDualStream3D = 1 << 1 -}; - -/* Enum BMDVideoInputFormatChangedEvents - Bitmask passed to the VideoInputFormatChanged notification to identify the properties of the input signal that have changed */ - -typedef uint32_t BMDVideoInputFormatChangedEvents; -enum _BMDVideoInputFormatChangedEvents { - bmdVideoInputDisplayModeChanged = 1 << 0, - bmdVideoInputFieldDominanceChanged = 1 << 1, - bmdVideoInputColorspaceChanged = 1 << 2 -}; - -/* Enum BMDDetectedVideoInputFormatFlags - Flags passed to the VideoInputFormatChanged notification to describe the detected video input signal */ - -typedef uint32_t BMDDetectedVideoInputFormatFlags; -enum _BMDDetectedVideoInputFormatFlags { - bmdDetectedVideoInputYCbCr422 = 1 << 0, - bmdDetectedVideoInputRGB444 = 1 << 1, - bmdDetectedVideoInputDualStream3D = 1 << 2 -}; - -/* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */ - -typedef uint32_t BMDDeckLinkCapturePassthroughMode; -enum _BMDDeckLinkCapturePassthroughMode { - bmdDeckLinkCapturePassthroughModeDisabled = /* 'pdis' */ 0x70646973, - bmdDeckLinkCapturePassthroughModeDirect = /* 'pdir' */ 0x70646972, - bmdDeckLinkCapturePassthroughModeCleanSwitch = /* 'pcln' */ 0x70636C6E -}; - -/* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */ - -typedef uint32_t BMDOutputFrameCompletionResult; -enum _BMDOutputFrameCompletionResult { - bmdOutputFrameCompleted, - bmdOutputFrameDisplayedLate, - bmdOutputFrameDropped, - bmdOutputFrameFlushed -}; - -/* Enum BMDReferenceStatus - GenLock input status */ - -typedef uint32_t BMDReferenceStatus; -enum _BMDReferenceStatus { - bmdReferenceNotSupportedByHardware = 1 << 0, - bmdReferenceLocked = 1 << 1 -}; - -/* Enum BMDAudioFormat - Audio Format */ - -typedef uint32_t BMDAudioFormat; -enum _BMDAudioFormat { - bmdAudioFormatPCM = /* 'lpcm' */ 0x6C70636D // Linear signed PCM samples -}; - -/* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */ - -typedef uint32_t BMDAudioSampleRate; -enum _BMDAudioSampleRate { - bmdAudioSampleRate48kHz = 48000 -}; - -/* Enum BMDAudioSampleType - Audio sample sizes supported for output/input */ - -typedef uint32_t BMDAudioSampleType; -enum _BMDAudioSampleType { - bmdAudioSampleType16bitInteger = 16, - bmdAudioSampleType32bitInteger = 32 -}; - -/* Enum BMDAudioOutputStreamType - Audio output stream type */ - -typedef uint32_t BMDAudioOutputStreamType; -enum _BMDAudioOutputStreamType { - bmdAudioOutputStreamContinuous, - bmdAudioOutputStreamContinuousDontResample, - bmdAudioOutputStreamTimestamped -}; - -/* Enum BMDDisplayModeSupport - Output mode supported flags */ - -typedef uint32_t BMDDisplayModeSupport; -enum _BMDDisplayModeSupport { - bmdDisplayModeNotSupported = 0, - bmdDisplayModeSupported, - bmdDisplayModeSupportedWithConversion -}; - -/* Enum BMDTimecodeFormat - Timecode formats for frame metadata */ - -typedef uint32_t BMDTimecodeFormat; -enum _BMDTimecodeFormat { - bmdTimecodeRP188VITC1 = /* 'rpv1' */ 0x72707631, // RP188 timecode where DBB1 equals VITC1 (line 9) - bmdTimecodeRP188VITC2 = /* 'rp12' */ 0x72703132, // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF) - bmdTimecodeRP188LTC = /* 'rplt' */ 0x72706C74, // RP188 timecode where DBB1 equals LTC (line 10) - bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // For capture: return the first valid timecode in {VITC1, LTC ,VITC2} - For playback: set the timecode as VITC1 - bmdTimecodeVITC = /* 'vitc' */ 0x76697463, - bmdTimecodeVITCField2 = /* 'vit2' */ 0x76697432, - bmdTimecodeSerial = /* 'seri' */ 0x73657269 -}; - -/* Enum BMDAnalogVideoFlags - Analog video display flags */ - -typedef uint32_t BMDAnalogVideoFlags; -enum _BMDAnalogVideoFlags { - bmdAnalogVideoFlagCompositeSetup75 = 1 << 0, - bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1 -}; - -/* Enum BMDAudioOutputAnalogAESSwitch - Audio output Analog/AESEBU switch */ - -typedef uint32_t BMDAudioOutputAnalogAESSwitch; -enum _BMDAudioOutputAnalogAESSwitch { - bmdAudioOutputSwitchAESEBU = /* 'aes ' */ 0x61657320, - bmdAudioOutputSwitchAnalog = /* 'anlg' */ 0x616E6C67 -}; - -/* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */ - -typedef uint32_t BMDVideoOutputConversionMode; -enum _BMDVideoOutputConversionMode { - bmdNoVideoOutputConversion = /* 'none' */ 0x6E6F6E65, - bmdVideoOutputLetterboxDownconversion = /* 'ltbx' */ 0x6C746278, - bmdVideoOutputAnamorphicDownconversion = /* 'amph' */ 0x616D7068, - bmdVideoOutputHD720toHD1080Conversion = /* '720c' */ 0x37323063, - bmdVideoOutputHardwareLetterboxDownconversion = /* 'HWlb' */ 0x48576C62, - bmdVideoOutputHardwareAnamorphicDownconversion = /* 'HWam' */ 0x4857616D, - bmdVideoOutputHardwareCenterCutDownconversion = /* 'HWcc' */ 0x48576363, - bmdVideoOutputHardware720p1080pCrossconversion = /* 'xcap' */ 0x78636170, - bmdVideoOutputHardwareAnamorphic720pUpconversion = /* 'ua7p' */ 0x75613770, - bmdVideoOutputHardwareAnamorphic1080iUpconversion = /* 'ua1i' */ 0x75613169, - bmdVideoOutputHardwareAnamorphic149To720pUpconversion = /* 'u47p' */ 0x75343770, - bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = /* 'u41i' */ 0x75343169, - bmdVideoOutputHardwarePillarbox720pUpconversion = /* 'up7p' */ 0x75703770, - bmdVideoOutputHardwarePillarbox1080iUpconversion = /* 'up1i' */ 0x75703169 -}; - -/* Enum BMDVideoInputConversionMode - Video input conversion mode */ - -typedef uint32_t BMDVideoInputConversionMode; -enum _BMDVideoInputConversionMode { - bmdNoVideoInputConversion = /* 'none' */ 0x6E6F6E65, - bmdVideoInputLetterboxDownconversionFromHD1080 = /* '10lb' */ 0x31306C62, - bmdVideoInputAnamorphicDownconversionFromHD1080 = /* '10am' */ 0x3130616D, - bmdVideoInputLetterboxDownconversionFromHD720 = /* '72lb' */ 0x37326C62, - bmdVideoInputAnamorphicDownconversionFromHD720 = /* '72am' */ 0x3732616D, - bmdVideoInputLetterboxUpconversion = /* 'lbup' */ 0x6C627570, - bmdVideoInputAnamorphicUpconversion = /* 'amup' */ 0x616D7570 -}; - -/* Enum BMDVideo3DPackingFormat - Video 3D packing format */ - -typedef uint32_t BMDVideo3DPackingFormat; -enum _BMDVideo3DPackingFormat { - bmdVideo3DPackingSidebySideHalf = /* 'sbsh' */ 0x73627368, - bmdVideo3DPackingLinebyLine = /* 'lbyl' */ 0x6C62796C, - bmdVideo3DPackingTopAndBottom = /* 'tabo' */ 0x7461626F, - bmdVideo3DPackingFramePacking = /* 'frpk' */ 0x6672706B, - bmdVideo3DPackingLeftOnly = /* 'left' */ 0x6C656674, - bmdVideo3DPackingRightOnly = /* 'righ' */ 0x72696768 -}; - -/* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */ - -typedef uint32_t BMDIdleVideoOutputOperation; -enum _BMDIdleVideoOutputOperation { - bmdIdleVideoOutputBlack = /* 'blac' */ 0x626C6163, - bmdIdleVideoOutputLastFrame = /* 'lafa' */ 0x6C616661 -}; - -/* Enum BMDVideoEncoderFrameCodingMode - Video frame coding mode */ - -typedef uint32_t BMDVideoEncoderFrameCodingMode; -enum _BMDVideoEncoderFrameCodingMode { - bmdVideoEncoderFrameCodingModeInter = /* 'inte' */ 0x696E7465, - bmdVideoEncoderFrameCodingModeIntra = /* 'intr' */ 0x696E7472 -}; - -/* Enum BMDDNxHRLevel - DNxHR Levels */ - -typedef uint32_t BMDDNxHRLevel; -enum _BMDDNxHRLevel { - bmdDNxHRLevelSQ = /* 'dnsq' */ 0x646E7371, - bmdDNxHRLevelLB = /* 'dnlb' */ 0x646E6C62, - bmdDNxHRLevelHQ = /* 'dnhq' */ 0x646E6871, - bmdDNxHRLevelHQX = /* 'dhqx' */ 0x64687178, - bmdDNxHRLevel444 = /* 'd444' */ 0x64343434 -}; - -/* Enum BMDLinkConfiguration - Video link configuration */ - -typedef uint32_t BMDLinkConfiguration; -enum _BMDLinkConfiguration { - bmdLinkConfigurationSingleLink = /* 'lcsl' */ 0x6C63736C, - bmdLinkConfigurationDualLink = /* 'lcdl' */ 0x6C63646C, - bmdLinkConfigurationQuadLink = /* 'lcql' */ 0x6C63716C -}; - -/* Enum BMDDeviceInterface - Device interface type */ - -typedef uint32_t BMDDeviceInterface; -enum _BMDDeviceInterface { - bmdDeviceInterfacePCI = /* 'pci ' */ 0x70636920, - bmdDeviceInterfaceUSB = /* 'usb ' */ 0x75736220, - bmdDeviceInterfaceThunderbolt = /* 'thun' */ 0x7468756E -}; - -/* Enum BMDDeckLinkFrameMetadataID - DeckLink Frame Metadata ID */ - -typedef uint32_t BMDDeckLinkFrameMetadataID; -enum _BMDDeckLinkFrameMetadataID { - bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc = /* 'eotf' */ 0x656F7466, // EOTF in range 0-7 as per CEA 861.3 - bmdDeckLinkFrameMetadataCintelFilmType = /* 'cfty' */ 0x63667479, // Current film type - bmdDeckLinkFrameMetadataCintelFilmGauge = /* 'cfga' */ 0x63666761, // Current film gauge - bmdDeckLinkFrameMetadataCintelOffsetDetectedHorizontal = /* 'odfh' */ 0x6F646668, // Horizontal offset (pixels) detected in image - bmdDeckLinkFrameMetadataCintelOffsetDetectedVertical = /* 'odfv' */ 0x6F646676, // Vertical offset (pixels) detected in image - bmdDeckLinkFrameMetadataCintelOffsetAppliedHorizontal = /* 'odah' */ 0x6F646168, // Horizontal offset (pixels) applied to image - bmdDeckLinkFrameMetadataCintelOffsetAppliedVertical = /* 'odav' */ 0x6F646176, // Vertical offset (pixels) applied to image - bmdDeckLinkFrameMetadataCintelKeykodeLow = /* 'ckkl' */ 0x636B6B6C, // Raw keykode value - low 64 bits - bmdDeckLinkFrameMetadataCintelKeykodeHigh = /* 'ckkh' */ 0x636B6B68, // Raw keykode value - high 64 bits - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed = /* 'mrir' */ 0x6D726972, // Red in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed = /* 'mgir' */ 0x6D676972, // Green in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed = /* 'mbir' */ 0x6D626972, // Blue in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen = /* 'mrig' */ 0x6D726967, // Red in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen = /* 'mgig' */ 0x6D676967, // Green in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = /* 'mbig' */ 0x6D626967, // Blue in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue = /* 'mrib' */ 0x6D726962, // Red in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = /* 'mgib' */ 0x6D676962, // Green in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue = /* 'mbib' */ 0x6D626962, // Blue in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed = /* 'mlrr' */ 0x6D6C7272, // Red in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed = /* 'mlgr' */ 0x6D6C6772, // Green in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed = /* 'mlbr' */ 0x6D6C6272, // Blue in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen = /* 'mlrg' */ 0x6D6C7267, // Red in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen = /* 'mlgg' */ 0x6D6C6767, // Green in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen = /* 'mlbg' */ 0x6D6C6267, // Blue in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue = /* 'mlrb' */ 0x6D6C7262, // Red in blue log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue = /* 'mlgb' */ 0x6D6C6762, // Green in blue log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue = /* 'mlbb' */ 0x6D6C6262, // Blue in blue log masking parameter - bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX = /* 'hdrx' */ 0x68647278, // Red display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY = /* 'hdry' */ 0x68647279, // Red display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX = /* 'hdgx' */ 0x68646778, // Green display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY = /* 'hdgy' */ 0x68646779, // Green display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX = /* 'hdbx' */ 0x68646278, // Blue display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY = /* 'hdby' */ 0x68646279, // Blue display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRWhitePointX = /* 'hdwx' */ 0x68647778, // White point in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRWhitePointY = /* 'hdwy' */ 0x68647779, // White point in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance = /* 'hdml' */ 0x68646D6C, // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance = /* 'hmil' */ 0x686D696C, // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2 - bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel = /* 'mcll' */ 0x6D636C6C, // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = /* 'fall' */ 0x66616C6C, // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataCintel16mmCropRequired = /* 'c16c' */ 0x63313663, // The image should be cropped to 16mm size - bmdDeckLinkFrameMetadataCintelInversionRequired = /* 'cinv' */ 0x63696E76, // The image should be colour inverted - bmdDeckLinkFrameMetadataCintelFlipRequired = /* 'cflr' */ 0x63666C72, // The image should be flipped horizontally - bmdDeckLinkFrameMetadataCintelFocusAssistEnabled = /* 'cfae' */ 0x63666165, // Focus Assist is currently enabled - bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated = /* 'kkii' */ 0x6B6B6969 // The keykode for this frame is interpolated from nearby keykodes -}; - -/* Enum BMDDuplexMode - Duplex for configurable ports */ - -typedef uint32_t BMDDuplexMode; -enum _BMDDuplexMode { - bmdDuplexModeFull = /* 'fdup' */ 0x66647570, - bmdDuplexModeHalf = /* 'hdup' */ 0x68647570 -}; - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID; -enum _BMDDeckLinkAttributeID { - - /* Flags */ - - BMDDeckLinkSupportsInternalKeying = /* 'keyi' */ 0x6B657969, - BMDDeckLinkSupportsExternalKeying = /* 'keye' */ 0x6B657965, - BMDDeckLinkSupportsHDKeying = /* 'keyh' */ 0x6B657968, - BMDDeckLinkSupportsInputFormatDetection = /* 'infd' */ 0x696E6664, - BMDDeckLinkHasReferenceInput = /* 'hrin' */ 0x6872696E, - BMDDeckLinkHasSerialPort = /* 'hspt' */ 0x68737074, - BMDDeckLinkHasAnalogVideoOutputGain = /* 'avog' */ 0x61766F67, - BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = /* 'ovog' */ 0x6F766F67, - BMDDeckLinkHasVideoInputAntiAliasingFilter = /* 'aafl' */ 0x6161666C, - BMDDeckLinkHasBypass = /* 'byps' */ 0x62797073, - BMDDeckLinkSupportsClockTimingAdjustment = /* 'ctad' */ 0x63746164, - BMDDeckLinkSupportsFullDuplex = /* 'fdup' */ 0x66647570, - BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = /* 'frin' */ 0x6672696E, - BMDDeckLinkSupportsSMPTELevelAOutput = /* 'lvla' */ 0x6C766C61, - BMDDeckLinkSupportsDualLinkSDI = /* 'sdls' */ 0x73646C73, - BMDDeckLinkSupportsQuadLinkSDI = /* 'sqls' */ 0x73716C73, - BMDDeckLinkSupportsIdleOutput = /* 'idou' */ 0x69646F75, - BMDDeckLinkHasLTCTimecodeInput = /* 'hltc' */ 0x686C7463, - BMDDeckLinkSupportsDuplexModeConfiguration = /* 'dupx' */ 0x64757078, - BMDDeckLinkSupportsHDRMetadata = /* 'hdrm' */ 0x6864726D, - - /* Integers */ - - BMDDeckLinkMaximumAudioChannels = /* 'mach' */ 0x6D616368, - BMDDeckLinkMaximumAnalogAudioInputChannels = /* 'iach' */ 0x69616368, - BMDDeckLinkMaximumAnalogAudioOutputChannels = /* 'aach' */ 0x61616368, - BMDDeckLinkNumberOfSubDevices = /* 'nsbd' */ 0x6E736264, - BMDDeckLinkSubDeviceIndex = /* 'subi' */ 0x73756269, - BMDDeckLinkPersistentID = /* 'peid' */ 0x70656964, - BMDDeckLinkDeviceGroupID = /* 'dgid' */ 0x64676964, - BMDDeckLinkTopologicalID = /* 'toid' */ 0x746F6964, - BMDDeckLinkVideoOutputConnections = /* 'vocn' */ 0x766F636E, // Returns a BMDVideoConnection bit field - BMDDeckLinkVideoInputConnections = /* 'vicn' */ 0x7669636E, // Returns a BMDVideoConnection bit field - BMDDeckLinkAudioOutputConnections = /* 'aocn' */ 0x616F636E, // Returns a BMDAudioConnection bit field - BMDDeckLinkAudioInputConnections = /* 'aicn' */ 0x6169636E, // Returns a BMDAudioConnection bit field - BMDDeckLinkVideoIOSupport = /* 'vios' */ 0x76696F73, // Returns a BMDVideoIOSupport bit field - BMDDeckLinkDeckControlConnections = /* 'dccn' */ 0x6463636E, // Returns a BMDDeckControlConnection bit field - BMDDeckLinkDeviceInterface = /* 'dbus' */ 0x64627573, // Returns a BMDDeviceInterface - BMDDeckLinkAudioInputRCAChannelCount = /* 'airc' */ 0x61697263, - BMDDeckLinkAudioInputXLRChannelCount = /* 'aixc' */ 0x61697863, - BMDDeckLinkAudioOutputRCAChannelCount = /* 'aorc' */ 0x616F7263, - BMDDeckLinkAudioOutputXLRChannelCount = /* 'aoxc' */ 0x616F7863, - BMDDeckLinkPairedDevicePersistentID = /* 'ppid' */ 0x70706964, - - /* Floats */ - - BMDDeckLinkVideoInputGainMinimum = /* 'vigm' */ 0x7669676D, - BMDDeckLinkVideoInputGainMaximum = /* 'vigx' */ 0x76696778, - BMDDeckLinkVideoOutputGainMinimum = /* 'vogm' */ 0x766F676D, - BMDDeckLinkVideoOutputGainMaximum = /* 'vogx' */ 0x766F6778, - BMDDeckLinkMicrophoneInputGainMinimum = /* 'migm' */ 0x6D69676D, - BMDDeckLinkMicrophoneInputGainMaximum = /* 'migx' */ 0x6D696778, - - /* Strings */ - - BMDDeckLinkSerialPortDeviceName = /* 'slpn' */ 0x736C706E, - BMDDeckLinkVendorName = /* 'vndr' */ 0x766E6472, - BMDDeckLinkDisplayName = /* 'dspn' */ 0x6473706E, - BMDDeckLinkModelName = /* 'mdln' */ 0x6D646C6E, - BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668 -}; - -/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */ - -typedef uint32_t BMDDeckLinkAPIInformationID; -enum _BMDDeckLinkAPIInformationID { - BMDDeckLinkAPIVersion = /* 'vers' */ 0x76657273 -}; - -/* Enum BMDDeckLinkStatusID - DeckLink Status ID */ - -typedef uint32_t BMDDeckLinkStatusID; -enum _BMDDeckLinkStatusID { - - /* Integers */ - - bmdDeckLinkStatusDetectedVideoInputMode = /* 'dvim' */ 0x6476696D, - bmdDeckLinkStatusDetectedVideoInputFlags = /* 'dvif' */ 0x64766966, - bmdDeckLinkStatusCurrentVideoInputMode = /* 'cvim' */ 0x6376696D, - bmdDeckLinkStatusCurrentVideoInputPixelFormat = /* 'cvip' */ 0x63766970, - bmdDeckLinkStatusCurrentVideoInputFlags = /* 'cvif' */ 0x63766966, - bmdDeckLinkStatusCurrentVideoOutputMode = /* 'cvom' */ 0x63766F6D, - bmdDeckLinkStatusCurrentVideoOutputFlags = /* 'cvof' */ 0x63766F66, - bmdDeckLinkStatusPCIExpressLinkWidth = /* 'pwid' */ 0x70776964, - bmdDeckLinkStatusPCIExpressLinkSpeed = /* 'plnk' */ 0x706C6E6B, - bmdDeckLinkStatusLastVideoOutputPixelFormat = /* 'opix' */ 0x6F706978, - bmdDeckLinkStatusReferenceSignalMode = /* 'refm' */ 0x7265666D, - bmdDeckLinkStatusReferenceSignalFlags = /* 'reff' */ 0x72656666, - bmdDeckLinkStatusDuplexMode = /* 'dupx' */ 0x64757078, - bmdDeckLinkStatusBusy = /* 'busy' */ 0x62757379, - bmdDeckLinkStatusInterchangeablePanelType = /* 'icpt' */ 0x69637074, - - /* Flags */ - - bmdDeckLinkStatusVideoInputSignalLocked = /* 'visl' */ 0x7669736C, - bmdDeckLinkStatusReferenceSignalLocked = /* 'refl' */ 0x7265666C, - bmdDeckLinkStatusReceivedEDID = /* 'edid' */ 0x65646964 -}; - -/* Enum BMDDeckLinkVideoStatusFlags - */ - -typedef uint32_t BMDDeckLinkVideoStatusFlags; -enum _BMDDeckLinkVideoStatusFlags { - bmdDeckLinkVideoStatusPsF = 1 << 0, - bmdDeckLinkVideoStatusDualStream3D = 1 << 1 -}; - -/* Enum BMDDuplexStatus - Duplex status of the device */ - -typedef uint32_t BMDDuplexStatus; -enum _BMDDuplexStatus { - bmdDuplexStatusFullDuplex = /* 'fdup' */ 0x66647570, - bmdDuplexStatusHalfDuplex = /* 'hdup' */ 0x68647570, - bmdDuplexStatusSimplex = /* 'splx' */ 0x73706C78, - bmdDuplexStatusInactive = /* 'inac' */ 0x696E6163 -}; - -/* Enum BMDPanelType - The type of interchangeable panel */ - -typedef uint32_t BMDPanelType; -enum _BMDPanelType { - bmdPanelNotDetected = /* 'npnl' */ 0x6E706E6C, - bmdPanelTeranexMiniSmartPanel = /* 'tmsm' */ 0x746D736D -}; - -/* Enum BMDDeviceBusyState - Current device busy state */ - -typedef uint32_t BMDDeviceBusyState; -enum _BMDDeviceBusyState { - bmdDeviceCaptureBusy = 1 << 0, - bmdDevicePlaybackBusy = 1 << 1, - bmdDeviceSerialPortBusy = 1 << 2 -}; - -/* Enum BMDVideoIOSupport - Device video input/output support */ - -typedef uint32_t BMDVideoIOSupport; -enum _BMDVideoIOSupport { - bmdDeviceSupportsCapture = 1 << 0, - bmdDeviceSupportsPlayback = 1 << 1 -}; - -/* Enum BMD3DPreviewFormat - Linked Frame preview format */ - -typedef uint32_t BMD3DPreviewFormat; -enum _BMD3DPreviewFormat { - bmd3DPreviewFormatDefault = /* 'defa' */ 0x64656661, - bmd3DPreviewFormatLeftOnly = /* 'left' */ 0x6C656674, - bmd3DPreviewFormatRightOnly = /* 'righ' */ 0x72696768, - bmd3DPreviewFormatSideBySide = /* 'side' */ 0x73696465, - bmd3DPreviewFormatTopBottom = /* 'topb' */ 0x746F7062 -}; - -/* Enum BMDNotifications - Events that can be subscribed through IDeckLinkNotification */ - -typedef uint32_t BMDNotifications; -enum _BMDNotifications { - bmdPreferencesChanged = /* 'pref' */ 0x70726566, - bmdStatusChanged = /* 'stat' */ 0x73746174 -}; - -#if defined(__cplusplus) - -// Forward Declarations - -class IDeckLinkVideoOutputCallback; -class IDeckLinkInputCallback; -class IDeckLinkEncoderInputCallback; -class IDeckLinkMemoryAllocator; -class IDeckLinkAudioOutputCallback; -class IDeckLinkIterator; -class IDeckLinkAPIInformation; -class IDeckLinkOutput; -class IDeckLinkInput; -class IDeckLinkEncoderInput; -class IDeckLinkVideoFrame; -class IDeckLinkMutableVideoFrame; -class IDeckLinkVideoFrame3DExtensions; -class IDeckLinkVideoFrameMetadataExtensions; -class IDeckLinkVideoInputFrame; -class IDeckLinkVideoFrameAncillary; -class IDeckLinkEncoderPacket; -class IDeckLinkEncoderVideoPacket; -class IDeckLinkEncoderAudioPacket; -class IDeckLinkH265NALPacket; -class IDeckLinkAudioInputPacket; -class IDeckLinkScreenPreviewCallback; -class IDeckLinkGLScreenPreviewHelper; -class IDeckLinkNotificationCallback; -class IDeckLinkNotification; -class IDeckLinkAttributes; -class IDeckLinkStatus; -class IDeckLinkKeyer; -class IDeckLinkVideoConversion; -class IDeckLinkDeviceNotificationCallback; -class IDeckLinkDiscovery; - -/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ - -class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown -{ -public: - virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; - virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; - -protected: - virtual ~IDeckLinkVideoOutputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown -{ -public: - virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0; - virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkEncoderInputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkMemoryAllocator - Memory allocator for video frames. */ - -class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown -{ -public: - virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0; - virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0; - - virtual HRESULT Commit (void) = 0; - virtual HRESULT Decommit (void) = 0; -}; - -/* Interface IDeckLinkAudioOutputCallback - Optional callback to allow audio samples to be pulled as required. */ - -class BMD_PUBLIC IDeckLinkAudioOutputCallback : public IUnknown -{ -public: - virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0; -}; - -/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */ - -class BMD_PUBLIC IDeckLinkIterator : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0; -}; - -/* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */ - -class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ const char **value) = 0; - -protected: - virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkOutput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0; - -protected: - virtual ~IDeckLinkOutput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkInput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0; - virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ - -class BMD_PUBLIC IDeckLinkVideoFrame : public IUnknown -{ -public: - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual long GetRowBytes (void) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDFrameFlags GetFlags (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - - virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; - virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; - -protected: - virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ - -class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame -{ -public: - virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0; - - virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0; - virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0; - virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; - virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0; - -protected: - virtual ~IDeckLinkMutableVideoFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrame3DExtensions - Optional interface implemented on IDeckLinkVideoFrame to support 3D frames */ - -class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown -{ -public: - virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0; - virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0; - -protected: - virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */ - -class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown -{ -public: - virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ const char **value) = 0; - -protected: - virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrameAncillary - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */ - -class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown -{ -public: - - virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - -protected: - virtual ~IDeckLinkVideoFrameAncillary () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderPacket - Interface to encapsulate an encoded packet. */ - -class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown -{ -public: - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - virtual long GetSize (void) = 0; - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0; - virtual BMDPacketType GetPacketType (void) = 0; - -protected: - virtual ~IDeckLinkEncoderPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderVideoPacket - Provided by the IDeckLinkEncoderInput video packet arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket -{ -public: - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - - virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; - -protected: - virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderAudioPacket - Provided by the IDeckLinkEncoderInput audio packet arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket -{ -public: - virtual BMDAudioFormat GetAudioFormat (void) = 0; - -protected: - virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */ - -class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket -{ -public: - virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0; - virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0; - virtual long GetSizeNoPrefix (void) = 0; - -protected: - virtual ~IDeckLinkH265NALPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkAudioInputPacket - Provided by the IDeckLinkInput callback. */ - -class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown -{ -public: - virtual long GetSampleFrameCount (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0; - -protected: - virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ - -class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown -{ -public: - virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - -protected: - virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown -{ -public: - - /* Methods must be called with OpenGL context set */ - - virtual HRESULT InitializeGL (void) = 0; - virtual HRESULT PaintGL (void) = 0; - virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0; - -protected: - virtual ~IDeckLinkGLScreenPreviewHelper () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkNotificationCallback - DeckLink Notification Callback Interface */ - -class BMD_PUBLIC IDeckLinkNotificationCallback : public IUnknown -{ -public: - virtual HRESULT Notify (/* in */ BMDNotifications topic, /* in */ uint64_t param1, /* in */ uint64_t param2) = 0; -}; - -/* Interface IDeckLinkNotification - DeckLink Notification interface */ - -class BMD_PUBLIC IDeckLinkNotification : public IUnknown -{ -public: - virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; - virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; -}; - -/* Interface IDeckLinkAttributes - DeckLink Attribute interface */ - -class BMD_PUBLIC IDeckLinkAttributes : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ const char **value) = 0; - -protected: - virtual ~IDeckLinkAttributes () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkStatus - DeckLink Status interface */ - -class BMD_PUBLIC IDeckLinkStatus : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ const char **value) = 0; - virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0; - -protected: - virtual ~IDeckLinkStatus () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkKeyer - DeckLink Keyer interface */ - -class BMD_PUBLIC IDeckLinkKeyer : public IUnknown -{ -public: - virtual HRESULT Enable (/* in */ bool isExternal) = 0; - virtual HRESULT SetLevel (/* in */ uint8_t level) = 0; - virtual HRESULT RampUp (/* in */ uint32_t numberOfFrames) = 0; - virtual HRESULT RampDown (/* in */ uint32_t numberOfFrames) = 0; - virtual HRESULT Disable (void) = 0; - -protected: - virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown -{ -public: - virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame* srcFrame, /* in */ IDeckLinkVideoFrame* dstFrame) = 0; - -protected: - virtual ~IDeckLinkVideoConversion () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeviceNotificationCallback - DeckLink device arrival/removal notification callbacks */ - -class BMD_PUBLIC IDeckLinkDeviceNotificationCallback : public IUnknown -{ -public: - virtual HRESULT DeckLinkDeviceArrived (/* in */ IDeckLink* deckLinkDevice) = 0; - virtual HRESULT DeckLinkDeviceRemoved (/* in */ IDeckLink* deckLinkDevice) = 0; - -protected: - virtual ~IDeckLinkDeviceNotificationCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDiscovery - DeckLink device discovery */ - -class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown -{ -public: - virtual HRESULT InstallDeviceNotifications (/* in */ IDeckLinkDeviceNotificationCallback* deviceNotificationCallback) = 0; - virtual HRESULT UninstallDeviceNotifications (void) = 0; - -protected: - virtual ~IDeckLinkDiscovery () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void); - IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void); - IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void); - IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void); - IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void); - -} - - -#endif // defined(__cplusplus) -#endif /* defined(BMD_DECKLINKAPI_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h deleted file mode 100644 index bf5c7a1e4c9..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration.h +++ /dev/null @@ -1,261 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_H -#define BMD_DECKLINKAPICONFIGURATION_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration = /* EF90380B-4AE5-4346-9077-E288E149F129 */ {0xEF,0x90,0x38,0x0B,0x4A,0xE5,0x43,0x46,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29}; -BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E}; - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID; -enum _BMDDeckLinkConfigurationID { - - /* Serial port Flags */ - - bmdDeckLinkConfigSwapSerialRxTx = /* 'ssrt' */ 0x73737274, - - /* Video Input/Output Integers */ - - bmdDeckLinkConfigHDMI3DPackingFormat = /* '3dpf' */ 0x33647066, - bmdDeckLinkConfigBypass = /* 'byps' */ 0x62797073, - bmdDeckLinkConfigClockTimingAdjustment = /* 'ctad' */ 0x63746164, - bmdDeckLinkConfigDuplexMode = /* 'dupx' */ 0x64757078, - - /* Audio Input/Output Flags */ - - bmdDeckLinkConfigAnalogAudioConsumerLevels = /* 'aacl' */ 0x6161636C, - - /* Video output flags */ - - bmdDeckLinkConfigFieldFlickerRemoval = /* 'fdfr' */ 0x66646672, - bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = /* 'to59' */ 0x746F3539, - bmdDeckLinkConfig444SDIVideoOutput = /* '444o' */ 0x3434346F, - bmdDeckLinkConfigBlackVideoOutputDuringCapture = /* 'bvoc' */ 0x62766F63, - bmdDeckLinkConfigLowLatencyVideoOutput = /* 'llvo' */ 0x6C6C766F, - bmdDeckLinkConfigDownConversionOnAllAnalogOutput = /* 'caao' */ 0x6361616F, - bmdDeckLinkConfigSMPTELevelAOutput = /* 'smta' */ 0x736D7461, - - /* Video Output Flags */ - - bmdDeckLinkConfigOutput1080pAsPsF = /* 'pfpr' */ 0x70667072, - - /* Video Output Integers */ - - bmdDeckLinkConfigVideoOutputConnection = /* 'vocn' */ 0x766F636E, - bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D, - bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66, - bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74, - bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */ 0x766F696F, - bmdDeckLinkConfigDefaultVideoOutputMode = /* 'dvom' */ 0x64766F6D, - bmdDeckLinkConfigDefaultVideoOutputModeFlags = /* 'dvof' */ 0x64766F66, - bmdDeckLinkConfigSDIOutputLinkConfiguration = /* 'solc' */ 0x736F6C63, - - /* Video Output Floats */ - - bmdDeckLinkConfigVideoOutputComponentLumaGain = /* 'oclg' */ 0x6F636C67, - bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = /* 'occb' */ 0x6F636362, - bmdDeckLinkConfigVideoOutputComponentChromaRedGain = /* 'occr' */ 0x6F636372, - bmdDeckLinkConfigVideoOutputCompositeLumaGain = /* 'oilg' */ 0x6F696C67, - bmdDeckLinkConfigVideoOutputCompositeChromaGain = /* 'oicg' */ 0x6F696367, - bmdDeckLinkConfigVideoOutputSVideoLumaGain = /* 'oslg' */ 0x6F736C67, - bmdDeckLinkConfigVideoOutputSVideoChromaGain = /* 'oscg' */ 0x6F736367, - - /* Video Input Flags */ - - bmdDeckLinkConfigVideoInputScanning = /* 'visc' */ 0x76697363, // Applicable to H264 Pro Recorder only - bmdDeckLinkConfigUseDedicatedLTCInput = /* 'dltc' */ 0x646C7463, // Use timecode from LTC input instead of SDI stream - bmdDeckLinkConfigSDIInput3DPayloadOverride = /* '3dds' */ 0x33646473, - - /* Video Input Flags */ - - bmdDeckLinkConfigCapture1080pAsPsF = /* 'cfpr' */ 0x63667072, - - /* Video Input Integers */ - - bmdDeckLinkConfigVideoInputConnection = /* 'vicn' */ 0x7669636E, - bmdDeckLinkConfigAnalogVideoInputFlags = /* 'avif' */ 0x61766966, - bmdDeckLinkConfigVideoInputConversionMode = /* 'vicm' */ 0x7669636D, - bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = /* 'pdif' */ 0x70646966, - bmdDeckLinkConfigVANCSourceLine1Mapping = /* 'vsl1' */ 0x76736C31, - bmdDeckLinkConfigVANCSourceLine2Mapping = /* 'vsl2' */ 0x76736C32, - bmdDeckLinkConfigVANCSourceLine3Mapping = /* 'vsl3' */ 0x76736C33, - bmdDeckLinkConfigCapturePassThroughMode = /* 'cptm' */ 0x6370746D, - - /* Video Input Floats */ - - bmdDeckLinkConfigVideoInputComponentLumaGain = /* 'iclg' */ 0x69636C67, - bmdDeckLinkConfigVideoInputComponentChromaBlueGain = /* 'iccb' */ 0x69636362, - bmdDeckLinkConfigVideoInputComponentChromaRedGain = /* 'iccr' */ 0x69636372, - bmdDeckLinkConfigVideoInputCompositeLumaGain = /* 'iilg' */ 0x69696C67, - bmdDeckLinkConfigVideoInputCompositeChromaGain = /* 'iicg' */ 0x69696367, - bmdDeckLinkConfigVideoInputSVideoLumaGain = /* 'islg' */ 0x69736C67, - bmdDeckLinkConfigVideoInputSVideoChromaGain = /* 'iscg' */ 0x69736367, - - /* Audio Input Flags */ - - bmdDeckLinkConfigMicrophonePhantomPower = /* 'mphp' */ 0x6D706870, - - /* Audio Input Integers */ - - bmdDeckLinkConfigAudioInputConnection = /* 'aicn' */ 0x6169636E, - - /* Audio Input Floats */ - - bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = /* 'ais1' */ 0x61697331, - bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = /* 'ais2' */ 0x61697332, - bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = /* 'ais3' */ 0x61697333, - bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = /* 'ais4' */ 0x61697334, - bmdDeckLinkConfigDigitalAudioInputScale = /* 'dais' */ 0x64616973, - bmdDeckLinkConfigMicrophoneInputGain = /* 'micg' */ 0x6D696367, - - /* Audio Output Integers */ - - bmdDeckLinkConfigAudioOutputAESAnalogSwitch = /* 'aoaa' */ 0x616F6161, - - /* Audio Output Floats */ - - bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = /* 'aos1' */ 0x616F7331, - bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = /* 'aos2' */ 0x616F7332, - bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = /* 'aos3' */ 0x616F7333, - bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = /* 'aos4' */ 0x616F7334, - bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */ 0x64616F73, - bmdDeckLinkConfigHeadphoneVolume = /* 'hvol' */ 0x68766F6C, - - /* Device Information Strings */ - - bmdDeckLinkConfigDeviceInformationLabel = /* 'dila' */ 0x64696C61, - bmdDeckLinkConfigDeviceInformationSerialNumber = /* 'disn' */ 0x6469736E, - bmdDeckLinkConfigDeviceInformationCompany = /* 'dico' */ 0x6469636F, - bmdDeckLinkConfigDeviceInformationPhone = /* 'diph' */ 0x64697068, - bmdDeckLinkConfigDeviceInformationEmail = /* 'diem' */ 0x6469656D, - bmdDeckLinkConfigDeviceInformationDate = /* 'dida' */ 0x64696461, - - /* Deck Control Integers */ - - bmdDeckLinkConfigDeckControlConnection = /* 'dcco' */ 0x6463636F -}; - -/* Enum BMDDeckLinkEncoderConfigurationID - DeckLink Encoder Configuration ID */ - -typedef uint32_t BMDDeckLinkEncoderConfigurationID; -enum _BMDDeckLinkEncoderConfigurationID { - - /* Video Encoder Integers */ - - bmdDeckLinkEncoderConfigPreferredBitDepth = /* 'epbr' */ 0x65706272, - bmdDeckLinkEncoderConfigFrameCodingMode = /* 'efcm' */ 0x6566636D, - - /* HEVC/H.265 Encoder Integers */ - - bmdDeckLinkEncoderConfigH265TargetBitrate = /* 'htbr' */ 0x68746272, - - /* DNxHR/DNxHD Compression ID */ - - bmdDeckLinkEncoderConfigDNxHRCompressionID = /* 'dcid' */ 0x64636964, - - /* DNxHR/DNxHD Level */ - - bmdDeckLinkEncoderConfigDNxHRLevel = /* 'dlev' */ 0x646C6576, - - /* Encoded Sample Decriptions */ - - bmdDeckLinkEncoderConfigMPEG4SampleDescription = /* 'stsE' */ 0x73747345, // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more - bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = /* 'esds' */ 0x65736473 // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more -}; - -// Forward Declarations - -class IDeckLinkConfiguration; -class IDeckLinkEncoderConfiguration; - -/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ - -class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderConfiguration - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ - -class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0; - -protected: - virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h deleted file mode 100644 index 457f041e99a..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_2.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2014 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_2_H -#define BMD_DECKLINKAPICONFIGURATION_v10_2_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_2 = /* C679A35B-610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0}; - -// Forward Declarations - -class IDeckLinkConfiguration_v10_2; - -/* Interface IDeckLinkConfiguration_v10_2 - DeckLink Configuration interface */ - -class BMD_PUBLIC IDeckLinkConfiguration_v10_2 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_2 () {} // call Release method to drop reference count -}; - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h deleted file mode 100644 index c4d340f6f34..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_4.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_4_H -#define BMD_DECKLINKAPICONFIGURATION_v10_4_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_4 = /* 1E69FCF6-4203-4936-8076-2A9F4CFD50CB */ {0x1E,0x69,0xFC,0xF6,0x42,0x03,0x49,0x36,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB}; - - -// -// Forward Declarations - -class IDeckLinkConfiguration_v10_4; - -/* Interface IDeckLinkConfiguration_v10_4 - DeckLink Configuration interface */ - -class BMD_PUBLIC IDeckLinkConfiguration_v10_4 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_4 () {} // call Release method to drop reference count -}; - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h deleted file mode 100644 index 684b83bf04a..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_5.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_5_H -#define BMD_DECKLINKAPICONFIGURATION_v10_5_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration_v10_5 = /* 67455668-0848-45DF-8D8E-350A77C9A028 */ {0x67,0x45,0x56,0x68,0x08,0x48,0x45,0xDF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28}; - -// Forward Declarations - -class IDeckLinkEncoderConfiguration_v10_5; - -/* Interface IDeckLinkEncoderConfiguration_v10_5 - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ - -class BMD_PUBLIC IDeckLinkEncoderConfiguration_v10_5 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT GetDecoderConfigurationInfo (/* out */ void *buffer, /* in */ long bufferSize, /* out */ long *returnedSize) = 0; - -protected: - virtual ~IDeckLinkEncoderConfiguration_v10_5 () {} // call Release method to drop reference count -}; - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_5_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h deleted file mode 100644 index f507637a4bf..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIConfiguration_v10_9.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2017 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_9_H -#define BMD_DECKLINKAPICONFIGURATION_v10_9_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_9 = /* CB71734A-FE37-4E8D-8E13-802133A1C3F2 */ {0xCB,0x71,0x73,0x4A,0xFE,0x37,0x4E,0x8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2}; - -// -// Forward Declarations - -class IDeckLinkConfiguration_v10_9; - -/* Interface IDeckLinkConfiguration_v10_9 - DeckLink Configuration interface */ - -class BMD_PUBLIC IDeckLinkConfiguration_v10_9 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_9 () {} // call Release method to drop reference count -}; - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h deleted file mode 100644 index 3d3f221177c..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDeckControl.h +++ /dev/null @@ -1,219 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIDECKCONTROL_H -#define BMD_DECKLINKAPIDECKCONTROL_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF}; -BMD_CONST REFIID IID_IDeckLinkDeckControl = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE}; - -/* Enum BMDDeckControlMode - DeckControl mode */ - -typedef uint32_t BMDDeckControlMode; -enum _BMDDeckControlMode { - bmdDeckControlNotOpened = /* 'ntop' */ 0x6E746F70, - bmdDeckControlVTRControlMode = /* 'vtrc' */ 0x76747263, - bmdDeckControlExportMode = /* 'expm' */ 0x6578706D, - bmdDeckControlCaptureMode = /* 'capm' */ 0x6361706D -}; - -/* Enum BMDDeckControlEvent - DeckControl event */ - -typedef uint32_t BMDDeckControlEvent; -enum _BMDDeckControlEvent { - bmdDeckControlAbortedEvent = /* 'abte' */ 0x61627465, // This event is triggered when a capture or edit-to-tape operation is aborted. - - /* Export-To-Tape events */ - - bmdDeckControlPrepareForExportEvent = /* 'pfee' */ 0x70666565, // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point. - bmdDeckControlExportCompleteEvent = /* 'exce' */ 0x65786365, // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. - - /* Capture events */ - - bmdDeckControlPrepareForCaptureEvent = /* 'pfce' */ 0x70666365, // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid. - bmdDeckControlCaptureCompleteEvent = /* 'ccev' */ 0x63636576 // This event is triggered a few frames after reaching the out-point. -}; - -/* Enum BMDDeckControlVTRControlState - VTR Control state */ - -typedef uint32_t BMDDeckControlVTRControlState; -enum _BMDDeckControlVTRControlState { - bmdDeckControlNotInVTRControlMode = /* 'nvcm' */ 0x6E76636D, - bmdDeckControlVTRControlPlaying = /* 'vtrp' */ 0x76747270, - bmdDeckControlVTRControlRecording = /* 'vtrr' */ 0x76747272, - bmdDeckControlVTRControlStill = /* 'vtra' */ 0x76747261, - bmdDeckControlVTRControlShuttleForward = /* 'vtsf' */ 0x76747366, - bmdDeckControlVTRControlShuttleReverse = /* 'vtsr' */ 0x76747372, - bmdDeckControlVTRControlJogForward = /* 'vtjf' */ 0x76746A66, - bmdDeckControlVTRControlJogReverse = /* 'vtjr' */ 0x76746A72, - bmdDeckControlVTRControlStopped = /* 'vtro' */ 0x7674726F -}; - -/* Enum BMDDeckControlStatusFlags - Deck Control status flags */ - -typedef uint32_t BMDDeckControlStatusFlags; -enum _BMDDeckControlStatusFlags { - bmdDeckControlStatusDeckConnected = 1 << 0, - bmdDeckControlStatusRemoteMode = 1 << 1, - bmdDeckControlStatusRecordInhibited = 1 << 2, - bmdDeckControlStatusCassetteOut = 1 << 3 -}; - -/* Enum BMDDeckControlExportModeOpsFlags - Export mode flags */ - -typedef uint32_t BMDDeckControlExportModeOpsFlags; -enum _BMDDeckControlExportModeOpsFlags { - bmdDeckControlExportModeInsertVideo = 1 << 0, - bmdDeckControlExportModeInsertAudio1 = 1 << 1, - bmdDeckControlExportModeInsertAudio2 = 1 << 2, - bmdDeckControlExportModeInsertAudio3 = 1 << 3, - bmdDeckControlExportModeInsertAudio4 = 1 << 4, - bmdDeckControlExportModeInsertAudio5 = 1 << 5, - bmdDeckControlExportModeInsertAudio6 = 1 << 6, - bmdDeckControlExportModeInsertAudio7 = 1 << 7, - bmdDeckControlExportModeInsertAudio8 = 1 << 8, - bmdDeckControlExportModeInsertAudio9 = 1 << 9, - bmdDeckControlExportModeInsertAudio10 = 1 << 10, - bmdDeckControlExportModeInsertAudio11 = 1 << 11, - bmdDeckControlExportModeInsertAudio12 = 1 << 12, - bmdDeckControlExportModeInsertTimeCode = 1 << 13, - bmdDeckControlExportModeInsertAssemble = 1 << 14, - bmdDeckControlExportModeInsertPreview = 1 << 15, - bmdDeckControlUseManualExport = 1 << 16 -}; - -/* Enum BMDDeckControlError - Deck Control error */ - -typedef uint32_t BMDDeckControlError; -enum _BMDDeckControlError { - bmdDeckControlNoError = /* 'noer' */ 0x6E6F6572, - bmdDeckControlModeError = /* 'moer' */ 0x6D6F6572, - bmdDeckControlMissedInPointError = /* 'mier' */ 0x6D696572, - bmdDeckControlDeckTimeoutError = /* 'dter' */ 0x64746572, - bmdDeckControlCommandFailedError = /* 'cfer' */ 0x63666572, - bmdDeckControlDeviceAlreadyOpenedError = /* 'dalo' */ 0x64616C6F, - bmdDeckControlFailedToOpenDeviceError = /* 'fder' */ 0x66646572, - bmdDeckControlInLocalModeError = /* 'lmer' */ 0x6C6D6572, - bmdDeckControlEndOfTapeError = /* 'eter' */ 0x65746572, - bmdDeckControlUserAbortError = /* 'uaer' */ 0x75616572, - bmdDeckControlNoTapeInDeckError = /* 'nter' */ 0x6E746572, - bmdDeckControlNoVideoFromCardError = /* 'nvfc' */ 0x6E766663, - bmdDeckControlNoCommunicationError = /* 'ncom' */ 0x6E636F6D, - bmdDeckControlBufferTooSmallError = /* 'btsm' */ 0x6274736D, - bmdDeckControlBadChecksumError = /* 'chks' */ 0x63686B73, - bmdDeckControlUnknownError = /* 'uner' */ 0x756E6572 -}; - -// Forward Declarations - -class IDeckLinkDeckControlStatusCallback; -class IDeckLinkDeckControl; - -/* Interface IDeckLinkDeckControlStatusCallback - Deck control state change callback. */ - -class BMD_PUBLIC IDeckLinkDeckControlStatusCallback : public IUnknown -{ -public: - virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; - virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState newState, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; - -protected: - virtual ~IDeckLinkDeckControlStatusCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeckControl - Deck Control main interface */ - -class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h deleted file mode 100644 index e9164f913b5..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDiscovery.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIDISCOVERY_H -#define BMD_DECKLINKAPIDISCOVERY_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLink = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91}; - -// Forward Declarations - -class IDeckLink; - -/* Interface IDeckLink - represents a DeckLink device */ - -class BMD_PUBLIC IDeckLink : public IUnknown -{ -public: - virtual HRESULT GetModelName (/* out */ const char **modelName) = 0; - virtual HRESULT GetDisplayName (/* out */ const char **displayName) = 0; - -protected: - virtual ~IDeckLink () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp deleted file mode 100644 index 067ccf26161..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -**/ - -#include -#include -#include - -#include "DeckLinkAPI.h" - -#define kDeckLinkAPI_Name "libDeckLinkAPI.so" -#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" - -typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); -typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; - -static bool gLoadedDeckLinkAPI = false; - -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; -static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; - -void InitDeckLinkAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - - gLoadedDeckLinkAPI = true; - - gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0003"); - if (!gCreateIteratorFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); - if (!gCreateAPIInformationFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); - if (!gCreateVideoConversionFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)dlsym(libraryHandle, "CreateDeckLinkDiscoveryInstance_0002"); - if (!gCreateDeckLinkDiscoveryFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -void InitDeckLinkPreviewAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); - if (!gCreateOpenGLPreviewFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -bool IsDeckLinkAPIPresent (void) -{ - // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller - return gLoadedDeckLinkAPI; -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - return gCreateVideoConversionFunc(); -} - -IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateDeckLinkDiscoveryFunc == NULL) - return NULL; - return gCreateDeckLinkDiscoveryFunc(); -} diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp deleted file mode 100644 index 6a038fb1284..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v10_8.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -**/ - -#include -#include -#include - -#include "DeckLinkAPI.h" - -#define kDeckLinkAPI_Name "libDeckLinkAPI.so" -#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" - -typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); -typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; - -static bool gLoadedDeckLinkAPI = false; - -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; -static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; - -void InitDeckLinkAPI(void) -{ - void *libraryHandle; - - libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW | RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - - gLoadedDeckLinkAPI = true; - - gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0002"); - if (!gCreateIteratorFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); - if (!gCreateAPIInformationFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); - if (!gCreateVideoConversionFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)dlsym(libraryHandle, "CreateDeckLinkDiscoveryInstance_0001"); - if (!gCreateDeckLinkDiscoveryFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -void InitDeckLinkPreviewAPI(void) -{ - void *libraryHandle; - - libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW | RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); - if (!gCreateOpenGLPreviewFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -bool IsDeckLinkAPIPresent(void) -{ - // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller - return gLoadedDeckLinkAPI; -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - return gCreateVideoConversionFunc(); -} - -IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateDeckLinkDiscoveryFunc == NULL) - return NULL; - return gCreateDeckLinkDiscoveryFunc(); -} diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp deleted file mode 100644 index 9ec157f1502..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v7_6.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -**/ - -#include -#include -#include - -#include "DeckLinkAPI_v7_6.h" - -#define kDeckLinkAPI_Name "libDeckLinkAPI.so" -#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" - -typedef IDeckLinkIterator* (*CreateIteratorFunc_v7_6)(void); -typedef IDeckLinkGLScreenPreviewHelper_v7_6* (*CreateOpenGLScreenPreviewHelperFunc_v7_6)(void); -typedef IDeckLinkVideoConversion_v7_6* (*CreateVideoConversionInstanceFunc_v7_6)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; - -static CreateIteratorFunc_v7_6 gCreateIteratorFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc_v7_6 gCreateOpenGLPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc_v7_6 gCreateVideoConversionFunc = NULL; - -void InitDeckLinkAPI_v7_6 (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - - gCreateIteratorFunc = (CreateIteratorFunc_v7_6)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance"); - if (!gCreateIteratorFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc_v7_6)dlsym(libraryHandle, "CreateVideoConversionInstance"); - if (!gCreateVideoConversionFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -void InitDeckLinkPreviewAPI_v7_6 (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc_v7_6)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper"); - if (!gCreateOpenGLPreviewFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateIteratorFunc == NULL) - return NULL; - return gCreateIteratorFunc(); -} - -IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI_v7_6); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - return gCreateVideoConversionFunc(); -} - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp deleted file mode 100644 index 686fd672c74..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIDispatch_v8_0.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2011 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -**/ - -#include -#include -#include - -#include "DeckLinkAPI_v8_0.h" - -#define kDeckLinkAPI_Name "libDeckLinkAPI.so" -#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so" - -typedef IDeckLinkIterator_v8_0* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static pthread_once_t gPreviewOnceControl = PTHREAD_ONCE_INIT; - -static bool gLoadedDeckLinkAPI = false; - -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; - -void InitDeckLinkAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - - gLoadedDeckLinkAPI = true; - - gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0001"); - if (!gCreateIteratorFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)dlsym(libraryHandle, "CreateDeckLinkAPIInformationInstance_0001"); - if (!gCreateAPIInformationFunc) - fprintf(stderr, "%s\n", dlerror()); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)dlsym(libraryHandle, "CreateVideoConversionInstance_0001"); - if (!gCreateVideoConversionFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -void InitDeckLinkPreviewAPI (void) -{ - void *libraryHandle; - - libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL); - if (!libraryHandle) - { - fprintf(stderr, "%s\n", dlerror()); - return; - } - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)dlsym(libraryHandle, "CreateOpenGLScreenPreviewHelper_0001"); - if (!gCreateOpenGLPreviewFunc) - fprintf(stderr, "%s\n", dlerror()); -} - -bool IsDeckLinkAPIPresent (void) -{ - // If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller - return gLoadedDeckLinkAPI; -} - -IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - return gCreateVideoConversionFunc(); -} - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h deleted file mode 100644 index 7464a11ed09..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIModes.h +++ /dev/null @@ -1,200 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIMODES_H -#define BMD_DECKLINKAPIMODES_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}; -BMD_CONST REFIID IID_IDeckLinkDisplayMode = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}; - -/* Enum BMDDisplayMode - Video display modes */ - -typedef uint32_t BMDDisplayMode; -enum _BMDDisplayMode { - - /* SD Modes */ - - bmdModeNTSC = /* 'ntsc' */ 0x6E747363, - bmdModeNTSC2398 = /* 'nt23' */ 0x6E743233, // 3:2 pulldown - bmdModePAL = /* 'pal ' */ 0x70616C20, - bmdModeNTSCp = /* 'ntsp' */ 0x6E747370, - bmdModePALp = /* 'palp' */ 0x70616C70, - - /* HD 1080 Modes */ - - bmdModeHD1080p2398 = /* '23ps' */ 0x32337073, - bmdModeHD1080p24 = /* '24ps' */ 0x32347073, - bmdModeHD1080p25 = /* 'Hp25' */ 0x48703235, - bmdModeHD1080p2997 = /* 'Hp29' */ 0x48703239, - bmdModeHD1080p30 = /* 'Hp30' */ 0x48703330, - bmdModeHD1080i50 = /* 'Hi50' */ 0x48693530, - bmdModeHD1080i5994 = /* 'Hi59' */ 0x48693539, - bmdModeHD1080i6000 = /* 'Hi60' */ 0x48693630, // N.B. This _really_ is 60.00 Hz. - bmdModeHD1080p50 = /* 'Hp50' */ 0x48703530, - bmdModeHD1080p5994 = /* 'Hp59' */ 0x48703539, - bmdModeHD1080p6000 = /* 'Hp60' */ 0x48703630, // N.B. This _really_ is 60.00 Hz. - - /* HD 720 Modes */ - - bmdModeHD720p50 = /* 'hp50' */ 0x68703530, - bmdModeHD720p5994 = /* 'hp59' */ 0x68703539, - bmdModeHD720p60 = /* 'hp60' */ 0x68703630, - - /* 2k Modes */ - - bmdMode2k2398 = /* '2k23' */ 0x326B3233, - bmdMode2k24 = /* '2k24' */ 0x326B3234, - bmdMode2k25 = /* '2k25' */ 0x326B3235, - - /* DCI Modes (output only) */ - - bmdMode2kDCI2398 = /* '2d23' */ 0x32643233, - bmdMode2kDCI24 = /* '2d24' */ 0x32643234, - bmdMode2kDCI25 = /* '2d25' */ 0x32643235, - - /* 4k Modes */ - - bmdMode4K2160p2398 = /* '4k23' */ 0x346B3233, - bmdMode4K2160p24 = /* '4k24' */ 0x346B3234, - bmdMode4K2160p25 = /* '4k25' */ 0x346B3235, - bmdMode4K2160p2997 = /* '4k29' */ 0x346B3239, - bmdMode4K2160p30 = /* '4k30' */ 0x346B3330, - bmdMode4K2160p50 = /* '4k50' */ 0x346B3530, - bmdMode4K2160p5994 = /* '4k59' */ 0x346B3539, - bmdMode4K2160p60 = /* '4k60' */ 0x346B3630, - - /* DCI Modes (output only) */ - - bmdMode4kDCI2398 = /* '4d23' */ 0x34643233, - bmdMode4kDCI24 = /* '4d24' */ 0x34643234, - bmdMode4kDCI25 = /* '4d25' */ 0x34643235, - - /* Special Modes */ - - bmdModeUnknown = /* 'iunk' */ 0x69756E6B -}; - -/* Enum BMDFieldDominance - Video field dominance */ - -typedef uint32_t BMDFieldDominance; -enum _BMDFieldDominance { - bmdUnknownFieldDominance = 0, - bmdLowerFieldFirst = /* 'lowr' */ 0x6C6F7772, - bmdUpperFieldFirst = /* 'uppr' */ 0x75707072, - bmdProgressiveFrame = /* 'prog' */ 0x70726F67, - bmdProgressiveSegmentedFrame = /* 'psf ' */ 0x70736620 -}; - -/* Enum BMDPixelFormat - Video pixel formats supported for output/input */ - -typedef uint32_t BMDPixelFormat; -enum _BMDPixelFormat { - bmdFormat8BitYUV = /* '2vuy' */ 0x32767579, - bmdFormat10BitYUV = /* 'v210' */ 0x76323130, - bmdFormat8BitARGB = 32, - bmdFormat8BitBGRA = /* 'BGRA' */ 0x42475241, - bmdFormat10BitRGB = /* 'r210' */ 0x72323130, // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 - bmdFormat12BitRGB = /* 'R12B' */ 0x52313242, // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component - bmdFormat12BitRGBLE = /* 'R12L' */ 0x5231324C, // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component - bmdFormat10BitRGBXLE = /* 'R10l' */ 0x5231306C, // Little-endian 10-bit RGB with SMPTE video levels (64-940) - bmdFormat10BitRGBX = /* 'R10b' */ 0x52313062, // Big-endian 10-bit RGB with SMPTE video levels (64-940) - bmdFormatH265 = /* 'hev1' */ 0x68657631, // High Efficiency Video Coding (HEVC/h.265) - - /* AVID DNxHR */ - - bmdFormatDNxHR = /* 'AVdh' */ 0x41566468 -}; - -/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */ - -typedef uint32_t BMDDisplayModeFlags; -enum _BMDDisplayModeFlags { - bmdDisplayModeSupports3D = 1 << 0, - bmdDisplayModeColorspaceRec601 = 1 << 1, - bmdDisplayModeColorspaceRec709 = 1 << 2 -}; - -// Forward Declarations - -class IDeckLinkDisplayModeIterator; -class IDeckLinkDisplayMode; - -/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ - -class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; - -protected: - virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDisplayMode - represents a display mode */ - -class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown -{ -public: - virtual HRESULT GetName (/* out */ const char **name) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; - virtual BMDFieldDominance GetFieldDominance (void) = 0; - virtual BMDDisplayModeFlags GetFlags (void) = 0; - -protected: - virtual ~IDeckLinkDisplayMode () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIMODES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h deleted file mode 100644 index 6749a80098a..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPITypes.h +++ /dev/null @@ -1,125 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPITYPES_H -#define BMD_DECKLINKAPITYPES_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - -typedef int64_t BMDTimeValue; -typedef int64_t BMDTimeScale; -typedef uint32_t BMDTimecodeBCD; -typedef uint32_t BMDTimecodeUserBits; - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkTimecode = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40}; - -/* Enum BMDTimecodeFlags - Timecode flags */ - -typedef uint32_t BMDTimecodeFlags; -enum _BMDTimecodeFlags { - bmdTimecodeFlagDefault = 0, - bmdTimecodeIsDropFrame = 1 << 0, - bmdTimecodeFieldMark = 1 << 1, - bmdTimecodeColorFrame = 1 << 2 -}; - -/* Enum BMDVideoConnection - Video connection types */ - -typedef uint32_t BMDVideoConnection; -enum _BMDVideoConnection { - bmdVideoConnectionSDI = 1 << 0, - bmdVideoConnectionHDMI = 1 << 1, - bmdVideoConnectionOpticalSDI = 1 << 2, - bmdVideoConnectionComponent = 1 << 3, - bmdVideoConnectionComposite = 1 << 4, - bmdVideoConnectionSVideo = 1 << 5 -}; - -/* Enum BMDAudioConnection - Audio connection types */ - -typedef uint32_t BMDAudioConnection; -enum _BMDAudioConnection { - bmdAudioConnectionEmbedded = 1 << 0, - bmdAudioConnectionAESEBU = 1 << 1, - bmdAudioConnectionAnalog = 1 << 2, - bmdAudioConnectionAnalogXLR = 1 << 3, - bmdAudioConnectionAnalogRCA = 1 << 4, - bmdAudioConnectionMicrophone = 1 << 5, - bmdAudioConnectionHeadphones = 1 << 6 -}; - -/* Enum BMDDeckControlConnection - Deck control connections */ - -typedef uint32_t BMDDeckControlConnection; -enum _BMDDeckControlConnection { - bmdDeckControlConnectionRS422Remote1 = 1 << 0, - bmdDeckControlConnectionRS422Remote2 = 1 << 1 -}; - -// Forward Declarations - -class IDeckLinkTimecode; - -/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ - -class BMD_PUBLIC IDeckLinkTimecode : public IUnknown -{ -public: - virtual BMDTimecodeBCD GetBCD (void) = 0; - virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; - virtual HRESULT GetString (/* out */ const char **timecode) = 0; - virtual BMDTimecodeFlags GetFlags (void) = 0; - virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0; - -protected: - virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPITYPES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h deleted file mode 100644 index a2565e04fc2..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPIVersion.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -LICENSE-START- - * ** Copyright (c) 2014 Blackmagic Design - * ** - * ** Permission is hereby granted, free of charge, to any person or organization - * ** obtaining a copy of the software and accompanying documentation covered by - * ** this license (the "Software") to use, reproduce, display, distribute, - * ** execute, and transmit the Software, and to prepare derivative works of the - * ** Software, and to permit third-parties to whom the Software is furnished to - * ** do so, all subject to the following: - * ** - * ** The copyright notices in the Software and this entire statement, including - * ** the above license grant, this restriction and the following disclaimer, - * ** must be included in all copies of the Software, in whole or in part, and - * ** all derivative works of the Software, unless such copies or derivative - * ** works are solely in the form of machine-executable object code generated by - * ** a source language processor. - * ** - * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * ** DEALINGS IN THE SOFTWARE. - * ** -LICENSE-END- - * */ - -/* DeckLinkAPIVersion.h */ - -#ifndef __DeckLink_API_Version_h__ -#define __DeckLink_API_Version_h__ - -#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 -#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" - -#endif // __DeckLink_API_Version_h__ - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h deleted file mode 100644 index ad2ff32d705..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_2.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2014 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_2_H -#define BMD_DECKLINKAPI_v10_2_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_2; -enum _BMDDeckLinkConfigurationID_v10_2 { - /* Video output flags */ - - bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = '3gbs', -}; - -/* Enum BMDAudioConnection_v10_2 - Audio connection types */ - -typedef uint32_t BMDAudioConnection_v10_2; -enum _BMDAudioConnection_v10_2 { - bmdAudioConnectionEmbedded_v10_2 = /* 'embd' */ 0x656D6264, - bmdAudioConnectionAESEBU_v10_2 = /* 'aes ' */ 0x61657320, - bmdAudioConnectionAnalog_v10_2 = /* 'anlg' */ 0x616E6C67, - bmdAudioConnectionAnalogXLR_v10_2 = /* 'axlr' */ 0x61786C72, - bmdAudioConnectionAnalogRCA_v10_2 = /* 'arca' */ 0x61726361 -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h deleted file mode 100644 index 7e5019ca2b0..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_4.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_4_H -#define BMD_DECKLINKAPI_v10_4_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_4; -enum _BMDDeckLinkConfigurationID_v10_4 { - - /* Video output flags */ - - bmdDeckLinkConfigSingleLinkVideoOutput_v10_4 = /* 'sglo' */ 0x73676C6F, -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h deleted file mode 100644 index 4439daef7b0..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_5.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_5_H -#define BMD_DECKLINKAPI_v10_5_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID_v10_5; -enum _BMDDeckLinkAttributeID_v10_5 { - - /* Integers */ - - BMDDeckLinkDeviceBusyState_v10_5 = /* 'dbst' */ 0x64627374, -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_5_H) */ - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h deleted file mode 100644 index 3c935789514..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_6.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_6_H -#define BMD_DECKLINKAPI_v10_6_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID_c10_6; -enum _BMDDeckLinkAttributeID_v10_6 { - - /* Flags */ - - BMDDeckLinkSupportsDesktopDisplay_v10_6 = /* 'extd' */ 0x65787464, -}; - -typedef uint32_t BMDIdleVideoOutputOperation_v10_6; -enum _BMDIdleVideoOutputOperation_v10_6 { - bmdIdleVideoOutputDesktop_v10_6 = /* 'desk' */ 0x6465736B -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_6_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h deleted file mode 100644 index aec8c7c2018..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v10_9.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2017 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_9_H -#define BMD_DECKLINKAPI_v10_9_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_9; -enum _BMDDeckLinkConfigurationID_v10_9 { - - /* Flags */ - - bmdDeckLinkConfig1080pNotPsF_v10_9 = 'fpro', -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h deleted file mode 100644 index b0c637cfe72..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_1.h +++ /dev/null @@ -1,198 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPI_v7_1.h */ - -#ifndef __DeckLink_API_v7_1_h__ -#define __DeckLink_API_v7_1_h__ - -#include "DeckLinkAPI.h" - -// "B28131B6-59AC-4857-B5AC-CD75D5883E2F" -#define IID_IDeckLinkDisplayModeIterator_v7_1 (REFIID){0xB2,0x81,0x31,0xB6,0x59,0xAC,0x48,0x57,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F} - -// "AF0CD6D5-8376-435E-8433-54F9DD530AC3" -#define IID_IDeckLinkDisplayMode_v7_1 (REFIID){0xAF,0x0C,0xD6,0xD5,0x83,0x76,0x43,0x5E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3} - -// "EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9" -#define IID_IDeckLinkVideoOutputCallback_v7_1 (REFIID){0xEB,0xD0,0x1A,0xFA,0xE4,0xB0,0x49,0xC6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9} - -// "7F94F328-5ED4-4E9F-9729-76A86BDC99CC" -#define IID_IDeckLinkInputCallback_v7_1 (REFIID){0x7F,0x94,0xF3,0x28,0x5E,0xD4,0x4E,0x9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC} - -// "AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5" -#define IID_IDeckLinkOutput_v7_1 (REFIID){0xAE,0x5B,0x3E,0x9B,0x4E,0x1E,0x45,0x35,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5} - -// "2B54EDEF-5B32-429F-BA11-BB990596EACD" -#define IID_IDeckLinkInput_v7_1 (REFIID){0x2B,0x54,0xED,0xEF,0x5B,0x32,0x42,0x9F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD} - -// "333F3A10-8C2D-43CF-B79D-46560FEEA1CE" -#define IID_IDeckLinkVideoFrame_v7_1 (REFIID){0x33,0x3F,0x3A,0x10,0x8C,0x2D,0x43,0xCF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE} - -// "C8B41D95-8848-40EE-9B37-6E3417FB114B" -#define IID_IDeckLinkVideoInputFrame_v7_1 (REFIID){0xC8,0xB4,0x1D,0x95,0x88,0x48,0x40,0xEE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B} - -// "C86DE4F6-A29F-42E3-AB3A-1363E29F0788" -#define IID_IDeckLinkAudioInputPacket_v7_1 (REFIID){0xC8,0x6D,0xE4,0xF6,0xA2,0x9F,0x42,0xE3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88} - -#if defined(__cplusplus) - -class IDeckLinkDisplayModeIterator_v7_1; -class IDeckLinkDisplayMode_v7_1; -class IDeckLinkVideoFrame_v7_1; -class IDeckLinkVideoInputFrame_v7_1; -class IDeckLinkAudioInputPacket_v7_1; - -class BMD_PUBLIC IDeckLinkDisplayModeIterator_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Next (IDeckLinkDisplayMode_v7_1* *deckLinkDisplayMode) = 0; -}; - - -class BMD_PUBLIC IDeckLinkDisplayMode_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetName (const char **name) = 0; - virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode () = 0; - virtual long STDMETHODCALLTYPE GetWidth () = 0; - virtual long STDMETHODCALLTYPE GetHeight () = 0; - virtual HRESULT STDMETHODCALLTYPE GetFrameRate (BMDTimeValue *frameDuration, BMDTimeScale *timeScale) = 0; -}; - -class BMD_PUBLIC IDeckLinkVideoOutputCallback_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted (IDeckLinkVideoFrame_v7_1* completedFrame, BMDOutputFrameCompletionResult result) = 0; -}; - -class BMD_PUBLIC IDeckLinkInputCallback_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived (IDeckLinkVideoInputFrame_v7_1* videoFrame, IDeckLinkAudioInputPacket_v7_1* audioPacket) = 0; -}; - -// IDeckLinkOutput_v7_1. Created by QueryInterface from IDeckLink. -class BMD_PUBLIC IDeckLinkOutput_v7_1 : public IUnknown -{ -public: - // Display mode predicates - virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1* *iterator) = 0; - - - // Video output - virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput (BMDDisplayMode displayMode) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput () = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator (IDeckLinkMemoryAllocator* theAllocator) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer (void* buffer, int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync (IDeckLinkVideoFrame_v7_1* theFrame) = 0; - virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame (IDeckLinkVideoFrame_v7_1* theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback (IDeckLinkVideoOutputCallback_v7_1* theCallback) = 0; - - - // Audio output - virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput () = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll () = 0; - virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll () = 0; - virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples (void* buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; - virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples () = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAudioCallback (IDeckLinkAudioOutputCallback* theCallback) = 0; - - - // Output control - virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; - virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; -}; - -// IDeckLinkInput_v7_1. Created by QueryInterface from IDeckLink. -class BMD_PUBLIC IDeckLinkInput_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; - - // Video input - virtual HRESULT STDMETHODCALLTYPE EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableVideoInput () = 0; - - // Audio input - virtual HRESULT STDMETHODCALLTYPE EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableAudioInput () = 0; - virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesRead, BMDTimeValue *audioPacketTime, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; - - - virtual HRESULT STDMETHODCALLTYPE StartStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE StopStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE PauseStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE SetCallback (IDeckLinkInputCallback_v7_1* theCallback) = 0; -}; - -// IDeckLinkVideoFrame_v7_1. Created by IDeckLinkOutput::CreateVideoFrame. -class BMD_PUBLIC IDeckLinkVideoFrame_v7_1 : public IUnknown -{ -public: - virtual long STDMETHODCALLTYPE GetWidth () = 0; - virtual long STDMETHODCALLTYPE GetHeight () = 0; - virtual long STDMETHODCALLTYPE GetRowBytes () = 0; - virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat () = 0; - virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags () = 0; - virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; -}; - -// IDeckLinkVideoInputFrame_v7_1. Provided by the IDeckLinkInput_v7_1 frame arrival callback. -class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetFrameTime (BMDTimeValue *frameTime, BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; -}; - -// IDeckLinkAudioInputPacket_v7_1. Provided by the IDeckLinkInput_v7_1 callback. -class BMD_PUBLIC IDeckLinkAudioInputPacket_v7_1 : public IUnknown -{ -public: - virtual long STDMETHODCALLTYPE GetSampleCount () = 0; - virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime (BMDTimeValue *packetTime, BMDTimeScale timeScale) = 0; -}; - -#endif // defined(__cplusplus) - -#endif // __DeckLink_API_v7_1_h__ - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h deleted file mode 100644 index bb3192ea41b..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_3.h +++ /dev/null @@ -1,173 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_3.h */ - -#ifndef __DeckLink_API_v7_3_h__ -#define __DeckLink_API_v7_3_h__ - -#include "DeckLinkAPI.h" -#include "DeckLinkAPI_v7_6.h" - -/* Interface ID Declarations */ - -#define IID_IDeckLinkInputCallback_v7_3 /* FD6F311D-4D00-444B-9ED4-1F25B5730AD0 */ (REFIID){0xFD,0x6F,0x31,0x1D,0x4D,0x00,0x44,0x4B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0} -#define IID_IDeckLinkOutput_v7_3 /* 271C65E3-C323-4344-A30F-D908BCB20AA3 */ (REFIID){0x27,0x1C,0x65,0xE3,0xC3,0x23,0x43,0x44,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3} -#define IID_IDeckLinkInput_v7_3 /* 4973F012-9925-458C-871C-18774CDBBECB */ (REFIID){0x49,0x73,0xF0,0x12,0x99,0x25,0x45,0x8C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB} -#define IID_IDeckLinkVideoInputFrame_v7_3 /* CF317790-2894-11DE-8C30-0800200C9A66 */ (REFIID){0xCF,0x31,0x77,0x90,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66} - -/* End Interface ID Declarations */ - -#if defined(__cplusplus) - -/* Forward Declarations */ - -class IDeckLinkVideoInputFrame_v7_3; - -/* End Forward Declarations */ - - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkOutput_v7_3 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (BMDDisplayMode displayMode, BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; - virtual HRESULT CreateAncillaryData (BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount, BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; - -protected: - virtual ~IDeckLinkOutput_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkOutput */ - - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkInputCallback_v7_3 : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, /* in */ IDeckLinkAudioInputPacket *audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkInputCallback */ - - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkInput_v7_3 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_3 *theCallback) = 0; - -protected: - virtual ~IDeckLinkInput_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkInput */ - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkVideoInputFrame */ - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_3_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h deleted file mode 100644 index d981206513b..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_6.h +++ /dev/null @@ -1,404 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_6.h */ - -#ifndef __DeckLink_API_v7_6_h__ -#define __DeckLink_API_v7_6_h__ - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -#define IID_IDeckLinkVideoOutputCallback_v7_6 /* E763A626-4A3C-49D1-BF13-E7AD3692AE52 */ (REFIID){0xE7,0x63,0xA6,0x26,0x4A,0x3C,0x49,0xD1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52} -#define IID_IDeckLinkInputCallback_v7_6 /* 31D28EE7-88B6-4CB1-897A-CDBF79A26414 */ (REFIID){0x31,0xD2,0x8E,0xE7,0x88,0xB6,0x4C,0xB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14} -#define IID_IDeckLinkDisplayModeIterator_v7_6 /* 455D741F-1779-4800-86F5-0B5D13D79751 */ (REFIID){0x45,0x5D,0x74,0x1F,0x17,0x79,0x48,0x00,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51} -#define IID_IDeckLinkDisplayMode_v7_6 /* 87451E84-2B7E-439E-A629-4393EA4A8550 */ (REFIID){0x87,0x45,0x1E,0x84,0x2B,0x7E,0x43,0x9E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50} -#define IID_IDeckLinkOutput_v7_6 /* 29228142-EB8C-4141-A621-F74026450955 */ (REFIID){0x29,0x22,0x81,0x42,0xEB,0x8C,0x41,0x41,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55} -#define IID_IDeckLinkInput_v7_6 /* 300C135A-9F43-48E2-9906-6D7911D93CF1 */ (REFIID){0x30,0x0C,0x13,0x5A,0x9F,0x43,0x48,0xE2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1} -#define IID_IDeckLinkTimecode_v7_6 /* EFB9BCA6-A521-44F7-BD69-2332F24D9EE6 */ (REFIID){0xEF,0xB9,0xBC,0xA6,0xA5,0x21,0x44,0xF7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6} -#define IID_IDeckLinkVideoFrame_v7_6 /* A8D8238E-6B18-4196-99E1-5AF717B83D32 */ (REFIID){0xA8,0xD8,0x23,0x8E,0x6B,0x18,0x41,0x96,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32} -#define IID_IDeckLinkMutableVideoFrame_v7_6 /* 46FCEE00-B4E6-43D0-91C0-023A7FCEB34F */ (REFIID){0x46,0xFC,0xEE,0x00,0xB4,0xE6,0x43,0xD0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F} -#define IID_IDeckLinkVideoInputFrame_v7_6 /* 9A74FA41-AE9F-47AC-8CF4-01F42DD59965 */ (REFIID){0x9A,0x74,0xFA,0x41,0xAE,0x9F,0x47,0xAC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65} -#define IID_IDeckLinkScreenPreviewCallback_v7_6 /* 373F499D-4B4D-4518-AD22-6354E5A5825E */ (REFIID){0x37,0x3F,0x49,0x9D,0x4B,0x4D,0x45,0x18,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E} -#define IID_IDeckLinkGLScreenPreviewHelper_v7_6 /* BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA */ (REFIID){0xBA,0x57,0x5C,0xD9,0xA1,0x5E,0x49,0x7B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA} -#define IID_IDeckLinkVideoConversion_v7_6 /* 3EB504C9-F97D-40FE-A158-D407D48CB53B */ (REFIID){0x3E,0xB5,0x04,0xC9,0xF9,0x7D,0x40,0xFE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B} -#define IID_IDeckLinkConfiguration_v7_6 /* B8EAD569-B764-47F0-A73F-AE40DF6CBF10 */ (REFIID){0xB8,0xEA,0xD5,0x69,0xB7,0x64,0x47,0xF0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10} - - -#if defined(__cplusplus) - -/* Enum BMDVideoConnection - Video connection types */ - -typedef uint32_t BMDVideoConnection_v7_6; -enum _BMDVideoConnection_v7_6 { - bmdVideoConnectionSDI_v7_6 = 'sdi ', - bmdVideoConnectionHDMI_v7_6 = 'hdmi', - bmdVideoConnectionOpticalSDI_v7_6 = 'opti', - bmdVideoConnectionComponent_v7_6 = 'cpnt', - bmdVideoConnectionComposite_v7_6 = 'cmst', - bmdVideoConnectionSVideo_v7_6 = 'svid' -}; - -// Forward Declarations - -class IDeckLinkVideoOutputCallback_v7_6; -class IDeckLinkInputCallback_v7_6; -class IDeckLinkDisplayModeIterator_v7_6; -class IDeckLinkDisplayMode_v7_6; -class IDeckLinkOutput_v7_6; -class IDeckLinkInput_v7_6; -class IDeckLinkTimecode_v7_6; -class IDeckLinkVideoFrame_v7_6; -class IDeckLinkMutableVideoFrame_v7_6; -class IDeckLinkVideoInputFrame_v7_6; -class IDeckLinkScreenPreviewCallback_v7_6; -class IDeckLinkGLScreenPreviewHelper_v7_6; -class IDeckLinkVideoConversion_v7_6; - - -/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ - -class BMD_PUBLIC IDeckLinkVideoOutputCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame_v7_6 *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; - virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; - -protected: - virtual ~IDeckLinkVideoOutputCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkInputCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_6* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ - -class BMD_PUBLIC IDeckLinkDisplayModeIterator_v7_6 : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; - -protected: - virtual ~IDeckLinkDisplayModeIterator_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkDisplayMode - represents a display mode */ - -class BMD_PUBLIC IDeckLinkDisplayMode_v7_6 : public IUnknown -{ -public: - virtual HRESULT GetName (/* out */ const char **name) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; - virtual BMDFieldDominance GetFieldDominance (void) = 0; - -protected: - virtual ~IDeckLinkDisplayMode_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkOutput_v7_6 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkOutput_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkInput_v7_6 - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkInput_v7_6 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_6 *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ - -class BMD_PUBLIC IDeckLinkTimecode_v7_6 : public IUnknown -{ -public: - virtual BMDTimecodeBCD GetBCD (void) = 0; - virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; - virtual HRESULT GetString (/* out */ const char **timecode) = 0; - virtual BMDTimecodeFlags GetFlags (void) = 0; - -protected: - virtual ~IDeckLinkTimecode_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ - -class BMD_PUBLIC IDeckLinkVideoFrame_v7_6 : public IUnknown -{ -public: - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual long GetRowBytes (void) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDFrameFlags GetFlags (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - - virtual HRESULT GetTimecode (BMDTimecodeFormat format, /* out */ IDeckLinkTimecode_v7_6 **timecode) = 0; - virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; - -protected: - virtual ~IDeckLinkVideoFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ - -class BMD_PUBLIC IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT SetFlags (BMDFrameFlags newFlags) = 0; - - virtual HRESULT SetTimecode (BMDTimecodeFormat format, /* in */ IDeckLinkTimecode_v7_6 *timecode) = 0; - virtual HRESULT SetTimecodeFromComponents (BMDTimecodeFormat format, uint8_t hours, uint8_t minutes, uint8_t seconds, uint8_t frames, BMDTimecodeFlags flags) = 0; - virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; - -protected: - virtual ~IDeckLinkMutableVideoFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ - -class BMD_PUBLIC IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - -protected: - virtual ~IDeckLinkScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown -{ -public: - - /* Methods must be called with OpenGL context set */ - - virtual HRESULT InitializeGL (void) = 0; - virtual HRESULT PaintGL (void) = 0; - virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - -protected: - virtual ~IDeckLinkGLScreenPreviewHelper_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkVideoConversion_v7_6 : public IUnknown -{ -public: - virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame_v7_6* srcFrame, /* in */ IDeckLinkVideoFrame_v7_6* dstFrame) = 0; - -protected: - virtual ~IDeckLinkVideoConversion_v7_6 () {}; // call Release method to drop reference count -}; - -/* Interface IDeckLinkConfiguration - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkConfiguration_v7_6 : public IUnknown -{ -public: - virtual HRESULT GetConfigurationValidator (/* out */ IDeckLinkConfiguration_v7_6 **configObject) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - - /* Video Output Configuration */ - - virtual HRESULT SetVideoOutputFormat (/* in */ BMDVideoConnection_v7_6 videoOutputConnection) = 0; - virtual HRESULT IsVideoOutputActive (/* in */ BMDVideoConnection_v7_6 videoOutputConnection, /* out */ bool *active) = 0; - - virtual HRESULT SetAnalogVideoOutputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; - virtual HRESULT GetAnalogVideoOutputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; - - virtual HRESULT EnableFieldFlickerRemovalWhenPaused (/* in */ bool enable) = 0; - virtual HRESULT IsEnabledFieldFlickerRemovalWhenPaused (/* out */ bool *enabled) = 0; - - virtual HRESULT Set444And3GBpsVideoOutput (/* in */ bool enable444VideoOutput, /* in */ bool enable3GbsOutput) = 0; - virtual HRESULT Get444And3GBpsVideoOutput (/* out */ bool *is444VideoOutputEnabled, /* out */ bool *threeGbsOutputEnabled) = 0; - - virtual HRESULT SetVideoOutputConversionMode (/* in */ BMDVideoOutputConversionMode conversionMode) = 0; - virtual HRESULT GetVideoOutputConversionMode (/* out */ BMDVideoOutputConversionMode *conversionMode) = 0; - - virtual HRESULT Set_HD1080p24_to_HD1080i5994_Conversion (/* in */ bool enable) = 0; - virtual HRESULT Get_HD1080p24_to_HD1080i5994_Conversion (/* out */ bool *enabled) = 0; - - /* Video Input Configuration */ - - virtual HRESULT SetVideoInputFormat (/* in */ BMDVideoConnection_v7_6 videoInputFormat) = 0; - virtual HRESULT GetVideoInputFormat (/* out */ BMDVideoConnection_v7_6 *videoInputFormat) = 0; - - virtual HRESULT SetAnalogVideoInputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; - virtual HRESULT GetAnalogVideoInputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; - - virtual HRESULT SetVideoInputConversionMode (/* in */ BMDVideoInputConversionMode conversionMode) = 0; - virtual HRESULT GetVideoInputConversionMode (/* out */ BMDVideoInputConversionMode *conversionMode) = 0; - - virtual HRESULT SetBlackVideoOutputDuringCapture (/* in */ bool blackOutInCapture) = 0; - virtual HRESULT GetBlackVideoOutputDuringCapture (/* out */ bool *blackOutInCapture) = 0; - - virtual HRESULT Set32PulldownSequenceInitialTimecodeFrame (/* in */ uint32_t aFrameTimecode) = 0; - virtual HRESULT Get32PulldownSequenceInitialTimecodeFrame (/* out */ uint32_t *aFrameTimecode) = 0; - - virtual HRESULT SetVancSourceLineMapping (/* in */ uint32_t activeLine1VANCsource, /* in */ uint32_t activeLine2VANCsource, /* in */ uint32_t activeLine3VANCsource) = 0; - virtual HRESULT GetVancSourceLineMapping (/* out */ uint32_t *activeLine1VANCsource, /* out */ uint32_t *activeLine2VANCsource, /* out */ uint32_t *activeLine3VANCsource) = 0; - - /* Audio Input Configuration */ - - virtual HRESULT SetAudioInputFormat (/* in */ BMDAudioConnection audioInputFormat) = 0; - virtual HRESULT GetAudioInputFormat (/* out */ BMDAudioConnection *audioInputFormat) = 0; -}; - -/* Functions */ - -extern "C" { - - IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance_v7_6 (void); - IDeckLinkGLScreenPreviewHelper_v7_6* BMD_PUBLIC CreateOpenGLScreenPreviewHelper_v7_6 (void); - IDeckLinkVideoConversion_v7_6* BMD_PUBLIC CreateVideoConversionInstance_v7_6 (void); - -}; - - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_6_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h deleted file mode 100644 index c8e3faa28dd..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v7_9.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2010 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_9.h */ - -#ifndef __DeckLink_API_v7_9_h__ -#define __DeckLink_API_v7_9_h__ - -#include "DeckLinkAPI.h" - -// Interface ID Declarations -#define IID_IDeckLinkDeckControl_v7_9 /* A4D81043-0619-42B7-8ED6-602D29041DF7 */ (REFIID){0xA4,0xD8,0x10,0x43,0x06,0x19,0x42,0xB7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7} - -#if defined(__cplusplus) - - -// Forward Declarations -class IDeckLinkDeckControl_v7_9; - -/* Interface IDeckLinkDeckControl_v7_9 - Deck Control main interface */ -class BMD_PUBLIC IDeckLinkDeckControl_v7_9 : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl_v7_9 () {}; // call Release method to drop reference count -}; - - - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_9_h__ diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h deleted file mode 100644 index 6cace7e1004..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_0.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2011 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v8_0_H -#define BMD_DECKLINKAPI_v8_0_H - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -#define IID_IDeckLink_v8_0 /* 62BFF75D-6569-4E55-8D4D-66AA03829ABC */ (REFIID){0x62,0xBF,0xF7,0x5D,0x65,0x69,0x4E,0x55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC} -#define IID_IDeckLinkIterator_v8_0 /* 74E936FC-CC28-4A67-81A0-1E94E52D4E69 */ (REFIID){0x74,0xE9,0x36,0xFC,0xCC,0x28,0x4A,0x67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69} - -#if defined (__cplusplus) - -/* Interface IDeckLink_v8_0 - represents a DeckLink device */ - -class BMD_PUBLIC IDeckLink_v8_0 : public IUnknown -{ -public: - virtual HRESULT GetModelName (/* out */ const char **modelName) = 0; -}; - -/* Interface IDeckLinkIterator_v8_0 - enumerates installed DeckLink hardware */ - -class BMD_PUBLIC IDeckLinkIterator_v8_0 : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLink_v8_0 **deckLinkInstance) = 0; -}; - -extern "C" { - IDeckLinkIterator_v8_0* BMD_PUBLIC CreateDeckLinkIteratorInstance_v8_0 (void); -}; - -#endif // defined __cplusplus - -#endif /* defined(BMD_DECKLINKAPI_v8_0_H) */ - diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h deleted file mode 100644 index c7362aa4db4..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v8_1.h +++ /dev/null @@ -1,111 +0,0 @@ -/* -LICENSE-START- - ** Copyright (c) 2011 Blackmagic Design - ** - ** Permission is hereby granted, free of charge, to any person or organization - ** obtaining a copy of the software and accompanying documentation covered by - ** this license (the "Software") to use, reproduce, display, distribute, - ** execute, and transmit the Software, and to prepare derivative works of the - ** Software, and to permit third-parties to whom the Software is furnished to - ** do so, all subject to the following: - ** - ** The copyright notices in the Software and this entire statement, including - ** the above license grant, this restriction and the following disclaimer, - ** must be included in all copies of the Software, in whole or in part, and - ** all derivative works of the Software, unless such copies or derivative - ** works are solely in the form of machine-executable object code generated by - ** a source language processor. - ** - ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - ** DEALINGS IN THE SOFTWARE. - ** -LICENSE-END- - */ - -#ifndef BMD_DECKLINKAPI_v8_1_H -#define BMD_DECKLINKAPI_v8_1_H - -#include "DeckLinkAPI.h" - - -// Interface ID Declarations - -#define IID_IDeckLinkDeckControlStatusCallback_v8_1 /* E5F693C1-4283-4716-B18F-C1431521955B */ (REFIID){0xE5,0xF6,0x93,0xC1,0x42,0x83,0x47,0x16,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B} -#define IID_IDeckLinkDeckControl_v8_1 /* 522A9E39-0F3C-4742-94EE-D80DE335DA1D */ (REFIID){0x52,0x2A,0x9E,0x39,0x0F,0x3C,0x47,0x42,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D} - - -/* Enum BMDDeckControlVTRControlState_v8_1 - VTR Control state */ - -typedef uint32_t BMDDeckControlVTRControlState_v8_1; -enum _BMDDeckControlVTRControlState_v8_1 { - bmdDeckControlNotInVTRControlMode_v8_1 = 'nvcm', - bmdDeckControlVTRControlPlaying_v8_1 = 'vtrp', - bmdDeckControlVTRControlRecording_v8_1 = 'vtrr', - bmdDeckControlVTRControlStill_v8_1 = 'vtra', - bmdDeckControlVTRControlSeeking_v8_1 = 'vtrs', - bmdDeckControlVTRControlStopped_v8_1 = 'vtro' -}; - - -/* Interface IDeckLinkDeckControlStatusCallback_v8_1 - Deck control state change callback. */ - -class BMD_PUBLIC IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown -{ -public: - virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; - virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState_v8_1 newState, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; - -protected: - virtual ~IDeckLinkDeckControlStatusCallback_v8_1 () {}; // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeckControl_v8_1 - Deck Control main interface */ - -class BMD_PUBLIC IDeckLinkDeckControl_v8_1 : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState_v8_1 *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl_v8_1 () {}; // call Release method to drop reference count -}; - - -#endif // BMD_DECKLINKAPI_v8_1_H diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h deleted file mode 100644 index dd5f83f37d7..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_2.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2012 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v9_2_H -#define BMD_DECKLINKAPI_v9_2_H - -#include "DeckLinkAPI.h" - - -// Interface ID Declarations - -#define IID_IDeckLinkInput_v9_2 /* 6D40EF78-28B9-4E21-990D-95BB7750A04F */ (REFIID){0x6D,0x40,0xEF,0x78,0x28,0xB9,0x4E,0x21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F} - - -#if defined(__cplusplus) - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkInput_v9_2 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput_v9_2 () {}; // call Release method to drop reference count -}; - - -#endif // defined(__cplusplus) -#endif // BMD_DECKLINKAPI_v9_2_H diff --git a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h b/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h deleted file mode 100644 index 9a51bf242a5..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/DeckLinkAPI_v9_9.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2013 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v9_9_H -#define BMD_DECKLINKAPI_v9_9_H - -#include "DeckLinkAPI.h" - - -// Interface ID Declarations - -#define IID_IDeckLinkOutput_v9_9 /* A3EF0963-0862-44ED-92A9-EE89ABF431C7 */ (REFIID){0xA3,0xEF,0x09,0x63,0x08,0x62,0x44,0xED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7} - - -#if defined(__cplusplus) - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkOutput_v9_9 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkOutput_v9_9 () {}; // call Release method to drop reference count -}; - -#endif // defined(__cplusplus) -#endif // BMD_DECKLINKAPI_v9_9_H diff --git a/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h b/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h deleted file mode 100644 index 663602bc529..00000000000 --- a/ffmpeg/src/main/resources/decklink/linux/LinuxCOM.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef __LINUX_COM_H_ -#define __LINUX_COM_H_ - -struct REFIID -{ - unsigned char byte0; - unsigned char byte1; - unsigned char byte2; - unsigned char byte3; - unsigned char byte4; - unsigned char byte5; - unsigned char byte6; - unsigned char byte7; - unsigned char byte8; - unsigned char byte9; - unsigned char byte10; - unsigned char byte11; - unsigned char byte12; - unsigned char byte13; - unsigned char byte14; - unsigned char byte15; -}; - -typedef REFIID CFUUIDBytes; -#define CFUUIDGetUUIDBytes(x) x - -typedef int HRESULT; -typedef unsigned long ULONG; -typedef void *LPVOID; - -#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0) -#define FAILED(Status) ((HRESULT)(Status)<0) - -#define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR) -#define HRESULT_CODE(hr) ((hr) & 0xFFFF) -#define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) -#define HRESULT_SEVERITY(hr) (((hr) >> 31) & 0x1) -#define SEVERITY_SUCCESS 0 -#define SEVERITY_ERROR 1 - -#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) - -#define S_OK ((HRESULT)0x00000000L) -#define S_FALSE ((HRESULT)0x00000001L) -#define E_UNEXPECTED ((HRESULT)0x8000FFFFL) -#define E_NOTIMPL ((HRESULT)0x80000001L) -#define E_OUTOFMEMORY ((HRESULT)0x80000002L) -#define E_INVALIDARG ((HRESULT)0x80000003L) -#define E_NOINTERFACE ((HRESULT)0x80000004L) -#define E_POINTER ((HRESULT)0x80000005L) -#define E_HANDLE ((HRESULT)0x80000006L) -#define E_ABORT ((HRESULT)0x80000007L) -#define E_FAIL ((HRESULT)0x80000008L) -#define E_ACCESSDENIED ((HRESULT)0x80000009L) - -#define STDMETHODCALLTYPE - -#define IID_IUnknown (REFIID){0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46} -#define IUnknownUUID IID_IUnknown - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -#ifdef __cplusplus -class BMD_PUBLIC IUnknown -{ - public: - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, LPVOID *ppv) = 0; - virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0; - virtual ULONG STDMETHODCALLTYPE Release(void) = 0; -}; -#endif - -#endif - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h deleted file mode 100644 index 2c04fe021f4..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI.h +++ /dev/null @@ -1,1120 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_H -#define BMD_DECKLINKAPI_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -/* DeckLink API */ - -#include -#include -#include - -#include "DeckLinkAPITypes.h" -#include "DeckLinkAPIModes.h" -#include "DeckLinkAPIDiscovery.h" -#include "DeckLinkAPIConfiguration.h" -#include "DeckLinkAPIDeckControl.h" - -#include "DeckLinkAPIStreaming.h" - -#define BLACKMAGIC_DECKLINK_API_MAGIC 1 - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE}; -BMD_CONST REFIID IID_IDeckLinkInputCallback = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A}; -BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31}; -BMD_CONST REFIID IID_IDeckLinkMemoryAllocator = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8}; -BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6}; -BMD_CONST REFIID IID_IDeckLinkIterator = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA}; -BMD_CONST REFIID IID_IDeckLinkAPIInformation = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4}; -BMD_CONST REFIID IID_IDeckLinkOutput = /* CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564 */ {0xCC,0x5C,0x8A,0x6E,0x3F,0x2F,0x4B,0x3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64}; -BMD_CONST REFIID IID_IDeckLinkInput = /* AF22762B-DFAC-4846-AA79-FA8883560995 */ {0xAF,0x22,0x76,0x2B,0xDF,0xAC,0x48,0x46,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95}; -BMD_CONST REFIID IID_IDeckLinkEncoderInput = /* 270587DA-6B7D-42E7-A1F0-6D853F581185 */ {0x27,0x05,0x87,0xDA,0x6B,0x7D,0x42,0xE7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85}; -BMD_CONST REFIID IID_IDeckLinkVideoFrame = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17}; -BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90}; -BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7}; -BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F}; -BMD_CONST REFIID IID_IDeckLinkVideoInputFrame = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44}; -BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04}; -BMD_CONST REFIID IID_IDeckLinkEncoderPacket = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20}; -BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0}; -BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A}; -BMD_CONST REFIID IID_IDeckLinkH265NALPacket = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7}; -BMD_CONST REFIID IID_IDeckLinkAudioInputPacket = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66}; -BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38}; -BMD_CONST REFIID IID_IDeckLinkCocoaScreenPreviewCallback = /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ {0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA}; -BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F}; -BMD_CONST REFIID IID_IDeckLinkNotificationCallback = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D}; -BMD_CONST REFIID IID_IDeckLinkNotification = /* 0A1FB207-E215-441B-9B19-6FA1575946C5 */ {0x0A,0x1F,0xB2,0x07,0xE2,0x15,0x44,0x1B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5}; -BMD_CONST REFIID IID_IDeckLinkAttributes = /* ABC11843-D966-44CB-96E2-A1CB5D3135C4 */ {0xAB,0xC1,0x18,0x43,0xD9,0x66,0x44,0xCB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4}; -BMD_CONST REFIID IID_IDeckLinkStatus = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46}; -BMD_CONST REFIID IID_IDeckLinkKeyer = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3}; -BMD_CONST REFIID IID_IDeckLinkVideoConversion = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A}; -BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F}; -BMD_CONST REFIID IID_IDeckLinkDiscovery = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01}; - -/* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */ - -typedef uint32_t BMDVideoOutputFlags; -enum _BMDVideoOutputFlags { - bmdVideoOutputFlagDefault = 0, - bmdVideoOutputVANC = 1 << 0, - bmdVideoOutputVITC = 1 << 1, - bmdVideoOutputRP188 = 1 << 2, - bmdVideoOutputDualStream3D = 1 << 4 -}; - -/* Enum BMDPacketType - Type of packet */ - -typedef uint32_t BMDPacketType; -enum _BMDPacketType { - bmdPacketTypeStreamInterruptedMarker = 'sint', // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable - bmdPacketTypeStreamData = 'sdat' // Regular stream data -}; - -/* Enum BMDFrameFlags - Frame flags */ - -typedef uint32_t BMDFrameFlags; -enum _BMDFrameFlags { - bmdFrameFlagDefault = 0, - bmdFrameFlagFlipVertical = 1 << 0, - bmdFrameContainsHDRMetadata = 1 << 1, - bmdFrameContainsCintelMetadata = 1 << 2, - - /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */ - - bmdFrameHasNoInputSource = 1 << 31 -}; - -/* Enum BMDVideoInputFlags - Flags applicable to video input */ - -typedef uint32_t BMDVideoInputFlags; -enum _BMDVideoInputFlags { - bmdVideoInputFlagDefault = 0, - bmdVideoInputEnableFormatDetection = 1 << 0, - bmdVideoInputDualStream3D = 1 << 1 -}; - -/* Enum BMDVideoInputFormatChangedEvents - Bitmask passed to the VideoInputFormatChanged notification to identify the properties of the input signal that have changed */ - -typedef uint32_t BMDVideoInputFormatChangedEvents; -enum _BMDVideoInputFormatChangedEvents { - bmdVideoInputDisplayModeChanged = 1 << 0, - bmdVideoInputFieldDominanceChanged = 1 << 1, - bmdVideoInputColorspaceChanged = 1 << 2 -}; - -/* Enum BMDDetectedVideoInputFormatFlags - Flags passed to the VideoInputFormatChanged notification to describe the detected video input signal */ - -typedef uint32_t BMDDetectedVideoInputFormatFlags; -enum _BMDDetectedVideoInputFormatFlags { - bmdDetectedVideoInputYCbCr422 = 1 << 0, - bmdDetectedVideoInputRGB444 = 1 << 1, - bmdDetectedVideoInputDualStream3D = 1 << 2 -}; - -/* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */ - -typedef uint32_t BMDDeckLinkCapturePassthroughMode; -enum _BMDDeckLinkCapturePassthroughMode { - bmdDeckLinkCapturePassthroughModeDisabled = 'pdis', - bmdDeckLinkCapturePassthroughModeDirect = 'pdir', - bmdDeckLinkCapturePassthroughModeCleanSwitch = 'pcln' -}; - -/* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */ - -typedef uint32_t BMDOutputFrameCompletionResult; -enum _BMDOutputFrameCompletionResult { - bmdOutputFrameCompleted, - bmdOutputFrameDisplayedLate, - bmdOutputFrameDropped, - bmdOutputFrameFlushed -}; - -/* Enum BMDReferenceStatus - GenLock input status */ - -typedef uint32_t BMDReferenceStatus; -enum _BMDReferenceStatus { - bmdReferenceNotSupportedByHardware = 1 << 0, - bmdReferenceLocked = 1 << 1 -}; - -/* Enum BMDAudioFormat - Audio Format */ - -typedef uint32_t BMDAudioFormat; -enum _BMDAudioFormat { - bmdAudioFormatPCM = 'lpcm' // Linear signed PCM samples -}; - -/* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */ - -typedef uint32_t BMDAudioSampleRate; -enum _BMDAudioSampleRate { - bmdAudioSampleRate48kHz = 48000 -}; - -/* Enum BMDAudioSampleType - Audio sample sizes supported for output/input */ - -typedef uint32_t BMDAudioSampleType; -enum _BMDAudioSampleType { - bmdAudioSampleType16bitInteger = 16, - bmdAudioSampleType32bitInteger = 32 -}; - -/* Enum BMDAudioOutputStreamType - Audio output stream type */ - -typedef uint32_t BMDAudioOutputStreamType; -enum _BMDAudioOutputStreamType { - bmdAudioOutputStreamContinuous, - bmdAudioOutputStreamContinuousDontResample, - bmdAudioOutputStreamTimestamped -}; - -/* Enum BMDDisplayModeSupport - Output mode supported flags */ - -typedef uint32_t BMDDisplayModeSupport; -enum _BMDDisplayModeSupport { - bmdDisplayModeNotSupported = 0, - bmdDisplayModeSupported, - bmdDisplayModeSupportedWithConversion -}; - -/* Enum BMDTimecodeFormat - Timecode formats for frame metadata */ - -typedef uint32_t BMDTimecodeFormat; -enum _BMDTimecodeFormat { - bmdTimecodeRP188VITC1 = 'rpv1', // RP188 timecode where DBB1 equals VITC1 (line 9) - bmdTimecodeRP188VITC2 = 'rp12', // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF) - bmdTimecodeRP188LTC = 'rplt', // RP188 timecode where DBB1 equals LTC (line 10) - bmdTimecodeRP188Any = 'rp18', // For capture: return the first valid timecode in {VITC1, LTC ,VITC2} - For playback: set the timecode as VITC1 - bmdTimecodeVITC = 'vitc', - bmdTimecodeVITCField2 = 'vit2', - bmdTimecodeSerial = 'seri' -}; - -/* Enum BMDAnalogVideoFlags - Analog video display flags */ - -typedef uint32_t BMDAnalogVideoFlags; -enum _BMDAnalogVideoFlags { - bmdAnalogVideoFlagCompositeSetup75 = 1 << 0, - bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1 -}; - -/* Enum BMDAudioOutputAnalogAESSwitch - Audio output Analog/AESEBU switch */ - -typedef uint32_t BMDAudioOutputAnalogAESSwitch; -enum _BMDAudioOutputAnalogAESSwitch { - bmdAudioOutputSwitchAESEBU = 'aes ', - bmdAudioOutputSwitchAnalog = 'anlg' -}; - -/* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */ - -typedef uint32_t BMDVideoOutputConversionMode; -enum _BMDVideoOutputConversionMode { - bmdNoVideoOutputConversion = 'none', - bmdVideoOutputLetterboxDownconversion = 'ltbx', - bmdVideoOutputAnamorphicDownconversion = 'amph', - bmdVideoOutputHD720toHD1080Conversion = '720c', - bmdVideoOutputHardwareLetterboxDownconversion = 'HWlb', - bmdVideoOutputHardwareAnamorphicDownconversion = 'HWam', - bmdVideoOutputHardwareCenterCutDownconversion = 'HWcc', - bmdVideoOutputHardware720p1080pCrossconversion = 'xcap', - bmdVideoOutputHardwareAnamorphic720pUpconversion = 'ua7p', - bmdVideoOutputHardwareAnamorphic1080iUpconversion = 'ua1i', - bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 'u47p', - bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 'u41i', - bmdVideoOutputHardwarePillarbox720pUpconversion = 'up7p', - bmdVideoOutputHardwarePillarbox1080iUpconversion = 'up1i' -}; - -/* Enum BMDVideoInputConversionMode - Video input conversion mode */ - -typedef uint32_t BMDVideoInputConversionMode; -enum _BMDVideoInputConversionMode { - bmdNoVideoInputConversion = 'none', - bmdVideoInputLetterboxDownconversionFromHD1080 = '10lb', - bmdVideoInputAnamorphicDownconversionFromHD1080 = '10am', - bmdVideoInputLetterboxDownconversionFromHD720 = '72lb', - bmdVideoInputAnamorphicDownconversionFromHD720 = '72am', - bmdVideoInputLetterboxUpconversion = 'lbup', - bmdVideoInputAnamorphicUpconversion = 'amup' -}; - -/* Enum BMDVideo3DPackingFormat - Video 3D packing format */ - -typedef uint32_t BMDVideo3DPackingFormat; -enum _BMDVideo3DPackingFormat { - bmdVideo3DPackingSidebySideHalf = 'sbsh', - bmdVideo3DPackingLinebyLine = 'lbyl', - bmdVideo3DPackingTopAndBottom = 'tabo', - bmdVideo3DPackingFramePacking = 'frpk', - bmdVideo3DPackingLeftOnly = 'left', - bmdVideo3DPackingRightOnly = 'righ' -}; - -/* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */ - -typedef uint32_t BMDIdleVideoOutputOperation; -enum _BMDIdleVideoOutputOperation { - bmdIdleVideoOutputBlack = 'blac', - bmdIdleVideoOutputLastFrame = 'lafa' -}; - -/* Enum BMDVideoEncoderFrameCodingMode - Video frame coding mode */ - -typedef uint32_t BMDVideoEncoderFrameCodingMode; -enum _BMDVideoEncoderFrameCodingMode { - bmdVideoEncoderFrameCodingModeInter = 'inte', - bmdVideoEncoderFrameCodingModeIntra = 'intr' -}; - -/* Enum BMDDNxHRLevel - DNxHR Levels */ - -typedef uint32_t BMDDNxHRLevel; -enum _BMDDNxHRLevel { - bmdDNxHRLevelSQ = 'dnsq', - bmdDNxHRLevelLB = 'dnlb', - bmdDNxHRLevelHQ = 'dnhq', - bmdDNxHRLevelHQX = 'dhqx', - bmdDNxHRLevel444 = 'd444' -}; - -/* Enum BMDLinkConfiguration - Video link configuration */ - -typedef uint32_t BMDLinkConfiguration; -enum _BMDLinkConfiguration { - bmdLinkConfigurationSingleLink = 'lcsl', - bmdLinkConfigurationDualLink = 'lcdl', - bmdLinkConfigurationQuadLink = 'lcql' -}; - -/* Enum BMDDeviceInterface - Device interface type */ - -typedef uint32_t BMDDeviceInterface; -enum _BMDDeviceInterface { - bmdDeviceInterfacePCI = 'pci ', - bmdDeviceInterfaceUSB = 'usb ', - bmdDeviceInterfaceThunderbolt = 'thun' -}; - -/* Enum BMDDeckLinkFrameMetadataID - DeckLink Frame Metadata ID */ - -typedef uint32_t BMDDeckLinkFrameMetadataID; -enum _BMDDeckLinkFrameMetadataID { - bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc = 'eotf', // EOTF in range 0-7 as per CEA 861.3 - bmdDeckLinkFrameMetadataCintelFilmType = 'cfty', // Current film type - bmdDeckLinkFrameMetadataCintelFilmGauge = 'cfga', // Current film gauge - bmdDeckLinkFrameMetadataCintelOffsetDetectedHorizontal = 'odfh', // Horizontal offset (pixels) detected in image - bmdDeckLinkFrameMetadataCintelOffsetDetectedVertical = 'odfv', // Vertical offset (pixels) detected in image - bmdDeckLinkFrameMetadataCintelOffsetAppliedHorizontal = 'odah', // Horizontal offset (pixels) applied to image - bmdDeckLinkFrameMetadataCintelOffsetAppliedVertical = 'odav', // Vertical offset (pixels) applied to image - bmdDeckLinkFrameMetadataCintelKeykodeLow = 'ckkl', // Raw keykode value - low 64 bits - bmdDeckLinkFrameMetadataCintelKeykodeHigh = 'ckkh', // Raw keykode value - high 64 bits - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed = 'mrir', // Red in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed = 'mgir', // Green in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed = 'mbir', // Blue in red linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen = 'mrig', // Red in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen = 'mgig', // Green in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = 'mbig', // Blue in green linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue = 'mrib', // Red in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = 'mgib', // Green in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue = 'mbib', // Blue in blue linear masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed = 'mlrr', // Red in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed = 'mlgr', // Green in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed = 'mlbr', // Blue in red log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen = 'mlrg', // Red in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen = 'mlgg', // Green in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen = 'mlbg', // Blue in green log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue = 'mlrb', // Red in blue log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue = 'mlgb', // Green in blue log masking parameter - bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue = 'mlbb', // Blue in blue log masking parameter - bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX = 'hdrx', // Red display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY = 'hdry', // Red display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX = 'hdgx', // Green display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY = 'hdgy', // Green display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX = 'hdbx', // Blue display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY = 'hdby', // Blue display primaries in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRWhitePointX = 'hdwx', // White point in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRWhitePointY = 'hdwy', // White point in range 0.0 - 1.0 - bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance = 'hdml', // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance = 'hmil', // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2 - bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel = 'mcll', // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = 'fall', // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2 - bmdDeckLinkFrameMetadataCintel16mmCropRequired = 'c16c', // The image should be cropped to 16mm size - bmdDeckLinkFrameMetadataCintelInversionRequired = 'cinv', // The image should be colour inverted - bmdDeckLinkFrameMetadataCintelFlipRequired = 'cflr', // The image should be flipped horizontally - bmdDeckLinkFrameMetadataCintelFocusAssistEnabled = 'cfae', // Focus Assist is currently enabled - bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated = 'kkii' // The keykode for this frame is interpolated from nearby keykodes -}; - -/* Enum BMDDuplexMode - Duplex for configurable ports */ - -typedef uint32_t BMDDuplexMode; -enum _BMDDuplexMode { - bmdDuplexModeFull = 'fdup', - bmdDuplexModeHalf = 'hdup' -}; - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID; -enum _BMDDeckLinkAttributeID { - - /* Flags */ - - BMDDeckLinkSupportsInternalKeying = 'keyi', - BMDDeckLinkSupportsExternalKeying = 'keye', - BMDDeckLinkSupportsHDKeying = 'keyh', - BMDDeckLinkSupportsInputFormatDetection = 'infd', - BMDDeckLinkHasReferenceInput = 'hrin', - BMDDeckLinkHasSerialPort = 'hspt', - BMDDeckLinkHasAnalogVideoOutputGain = 'avog', - BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 'ovog', - BMDDeckLinkHasVideoInputAntiAliasingFilter = 'aafl', - BMDDeckLinkHasBypass = 'byps', - BMDDeckLinkSupportsClockTimingAdjustment = 'ctad', - BMDDeckLinkSupportsFullDuplex = 'fdup', - BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = 'frin', - BMDDeckLinkSupportsSMPTELevelAOutput = 'lvla', - BMDDeckLinkSupportsDualLinkSDI = 'sdls', - BMDDeckLinkSupportsQuadLinkSDI = 'sqls', - BMDDeckLinkSupportsIdleOutput = 'idou', - BMDDeckLinkHasLTCTimecodeInput = 'hltc', - BMDDeckLinkSupportsDuplexModeConfiguration = 'dupx', - BMDDeckLinkSupportsHDRMetadata = 'hdrm', - - /* Integers */ - - BMDDeckLinkMaximumAudioChannels = 'mach', - BMDDeckLinkMaximumAnalogAudioInputChannels = 'iach', - BMDDeckLinkMaximumAnalogAudioOutputChannels = 'aach', - BMDDeckLinkNumberOfSubDevices = 'nsbd', - BMDDeckLinkSubDeviceIndex = 'subi', - BMDDeckLinkPersistentID = 'peid', - BMDDeckLinkDeviceGroupID = 'dgid', - BMDDeckLinkTopologicalID = 'toid', - BMDDeckLinkVideoOutputConnections = 'vocn', // Returns a BMDVideoConnection bit field - BMDDeckLinkVideoInputConnections = 'vicn', // Returns a BMDVideoConnection bit field - BMDDeckLinkAudioOutputConnections = 'aocn', // Returns a BMDAudioConnection bit field - BMDDeckLinkAudioInputConnections = 'aicn', // Returns a BMDAudioConnection bit field - BMDDeckLinkVideoIOSupport = 'vios', // Returns a BMDVideoIOSupport bit field - BMDDeckLinkDeckControlConnections = 'dccn', // Returns a BMDDeckControlConnection bit field - BMDDeckLinkDeviceInterface = 'dbus', // Returns a BMDDeviceInterface - BMDDeckLinkAudioInputRCAChannelCount = 'airc', - BMDDeckLinkAudioInputXLRChannelCount = 'aixc', - BMDDeckLinkAudioOutputRCAChannelCount = 'aorc', - BMDDeckLinkAudioOutputXLRChannelCount = 'aoxc', - BMDDeckLinkPairedDevicePersistentID = 'ppid', - - /* Floats */ - - BMDDeckLinkVideoInputGainMinimum = 'vigm', - BMDDeckLinkVideoInputGainMaximum = 'vigx', - BMDDeckLinkVideoOutputGainMinimum = 'vogm', - BMDDeckLinkVideoOutputGainMaximum = 'vogx', - BMDDeckLinkMicrophoneInputGainMinimum = 'migm', - BMDDeckLinkMicrophoneInputGainMaximum = 'migx', - - /* Strings */ - - BMDDeckLinkSerialPortDeviceName = 'slpn', - BMDDeckLinkVendorName = 'vndr', - BMDDeckLinkDisplayName = 'dspn', - BMDDeckLinkModelName = 'mdln', - BMDDeckLinkDeviceHandle = 'devh' -}; - -/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */ - -typedef uint32_t BMDDeckLinkAPIInformationID; -enum _BMDDeckLinkAPIInformationID { - BMDDeckLinkAPIVersion = 'vers' -}; - -/* Enum BMDDeckLinkStatusID - DeckLink Status ID */ - -typedef uint32_t BMDDeckLinkStatusID; -enum _BMDDeckLinkStatusID { - - /* Integers */ - - bmdDeckLinkStatusDetectedVideoInputMode = 'dvim', - bmdDeckLinkStatusDetectedVideoInputFlags = 'dvif', - bmdDeckLinkStatusCurrentVideoInputMode = 'cvim', - bmdDeckLinkStatusCurrentVideoInputPixelFormat = 'cvip', - bmdDeckLinkStatusCurrentVideoInputFlags = 'cvif', - bmdDeckLinkStatusCurrentVideoOutputMode = 'cvom', - bmdDeckLinkStatusCurrentVideoOutputFlags = 'cvof', - bmdDeckLinkStatusPCIExpressLinkWidth = 'pwid', - bmdDeckLinkStatusPCIExpressLinkSpeed = 'plnk', - bmdDeckLinkStatusLastVideoOutputPixelFormat = 'opix', - bmdDeckLinkStatusReferenceSignalMode = 'refm', - bmdDeckLinkStatusReferenceSignalFlags = 'reff', - bmdDeckLinkStatusDuplexMode = 'dupx', - bmdDeckLinkStatusBusy = 'busy', - bmdDeckLinkStatusInterchangeablePanelType = 'icpt', - - /* Flags */ - - bmdDeckLinkStatusVideoInputSignalLocked = 'visl', - bmdDeckLinkStatusReferenceSignalLocked = 'refl', - bmdDeckLinkStatusReceivedEDID = 'edid' -}; - -/* Enum BMDDeckLinkVideoStatusFlags - */ - -typedef uint32_t BMDDeckLinkVideoStatusFlags; -enum _BMDDeckLinkVideoStatusFlags { - bmdDeckLinkVideoStatusPsF = 1 << 0, - bmdDeckLinkVideoStatusDualStream3D = 1 << 1 -}; - -/* Enum BMDDuplexStatus - Duplex status of the device */ - -typedef uint32_t BMDDuplexStatus; -enum _BMDDuplexStatus { - bmdDuplexStatusFullDuplex = 'fdup', - bmdDuplexStatusHalfDuplex = 'hdup', - bmdDuplexStatusSimplex = 'splx', - bmdDuplexStatusInactive = 'inac' -}; - -/* Enum BMDPanelType - The type of interchangeable panel */ - -typedef uint32_t BMDPanelType; -enum _BMDPanelType { - bmdPanelNotDetected = 'npnl', - bmdPanelTeranexMiniSmartPanel = 'tmsm' -}; - -/* Enum BMDDeviceBusyState - Current device busy state */ - -typedef uint32_t BMDDeviceBusyState; -enum _BMDDeviceBusyState { - bmdDeviceCaptureBusy = 1 << 0, - bmdDevicePlaybackBusy = 1 << 1, - bmdDeviceSerialPortBusy = 1 << 2 -}; - -/* Enum BMDVideoIOSupport - Device video input/output support */ - -typedef uint32_t BMDVideoIOSupport; -enum _BMDVideoIOSupport { - bmdDeviceSupportsCapture = 1 << 0, - bmdDeviceSupportsPlayback = 1 << 1 -}; - -/* Enum BMD3DPreviewFormat - Linked Frame preview format */ - -typedef uint32_t BMD3DPreviewFormat; -enum _BMD3DPreviewFormat { - bmd3DPreviewFormatDefault = 'defa', - bmd3DPreviewFormatLeftOnly = 'left', - bmd3DPreviewFormatRightOnly = 'righ', - bmd3DPreviewFormatSideBySide = 'side', - bmd3DPreviewFormatTopBottom = 'topb' -}; - -/* Enum BMDNotifications - Events that can be subscribed through IDeckLinkNotification */ - -typedef uint32_t BMDNotifications; -enum _BMDNotifications { - bmdPreferencesChanged = 'pref', - bmdStatusChanged = 'stat' -}; - -#if defined(__cplusplus) - -// Forward Declarations - -class IDeckLinkVideoOutputCallback; -class IDeckLinkInputCallback; -class IDeckLinkEncoderInputCallback; -class IDeckLinkMemoryAllocator; -class IDeckLinkAudioOutputCallback; -class IDeckLinkIterator; -class IDeckLinkAPIInformation; -class IDeckLinkOutput; -class IDeckLinkInput; -class IDeckLinkEncoderInput; -class IDeckLinkVideoFrame; -class IDeckLinkMutableVideoFrame; -class IDeckLinkVideoFrame3DExtensions; -class IDeckLinkVideoFrameMetadataExtensions; -class IDeckLinkVideoInputFrame; -class IDeckLinkVideoFrameAncillary; -class IDeckLinkEncoderPacket; -class IDeckLinkEncoderVideoPacket; -class IDeckLinkEncoderAudioPacket; -class IDeckLinkH265NALPacket; -class IDeckLinkAudioInputPacket; -class IDeckLinkScreenPreviewCallback; -class IDeckLinkCocoaScreenPreviewCallback; -class IDeckLinkGLScreenPreviewHelper; -class IDeckLinkNotificationCallback; -class IDeckLinkNotification; -class IDeckLinkAttributes; -class IDeckLinkStatus; -class IDeckLinkKeyer; -class IDeckLinkVideoConversion; -class IDeckLinkDeviceNotificationCallback; -class IDeckLinkDiscovery; - -/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ - -class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown -{ -public: - virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; - virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; - -protected: - virtual ~IDeckLinkVideoOutputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderInputCallback - Frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown -{ -public: - virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0; - virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkEncoderInputCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkMemoryAllocator - Memory allocator for video frames. */ - -class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown -{ -public: - virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0; - virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0; - - virtual HRESULT Commit (void) = 0; - virtual HRESULT Decommit (void) = 0; -}; - -/* Interface IDeckLinkAudioOutputCallback - Optional callback to allow audio samples to be pulled as required. */ - -class BMD_PUBLIC IDeckLinkAudioOutputCallback : public IUnknown -{ -public: - virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0; -}; - -/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */ - -class BMD_PUBLIC IDeckLinkIterator : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0; -}; - -/* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */ - -class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ CFStringRef *value) = 0; - -protected: - virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkOutput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0; - -protected: - virtual ~IDeckLinkOutput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkInput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderInput - Created by QueryInterface from IDeckLink. */ - -class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0; - virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ - -class BMD_PUBLIC IDeckLinkVideoFrame : public IUnknown -{ -public: - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual long GetRowBytes (void) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDFrameFlags GetFlags (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - - virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; - virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; - -protected: - virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ - -class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame -{ -public: - virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0; - - virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0; - virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0; - virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; - virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0; - -protected: - virtual ~IDeckLinkMutableVideoFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrame3DExtensions - Optional interface implemented on IDeckLinkVideoFrame to support 3D frames */ - -class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown -{ -public: - virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0; - virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0; - -protected: - virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */ - -class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown -{ -public: - virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ CFStringRef *value) = 0; - -protected: - virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoFrameAncillary - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */ - -class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown -{ -public: - - virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - -protected: - virtual ~IDeckLinkVideoFrameAncillary () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderPacket - Interface to encapsulate an encoded packet. */ - -class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown -{ -public: - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - virtual long GetSize (void) = 0; - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0; - virtual BMDPacketType GetPacketType (void) = 0; - -protected: - virtual ~IDeckLinkEncoderPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderVideoPacket - Provided by the IDeckLinkEncoderInput video packet arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket -{ -public: - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - - virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0; - -protected: - virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderAudioPacket - Provided by the IDeckLinkEncoderInput audio packet arrival callback. */ - -class BMD_PUBLIC IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket -{ -public: - virtual BMDAudioFormat GetAudioFormat (void) = 0; - -protected: - virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */ - -class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket -{ -public: - virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0; - virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0; - virtual long GetSizeNoPrefix (void) = 0; - -protected: - virtual ~IDeckLinkH265NALPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkAudioInputPacket - Provided by the IDeckLinkInput callback. */ - -class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown -{ -public: - virtual long GetSampleFrameCount (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0; - -protected: - virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ - -class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown -{ -public: - virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - -protected: - virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications */ - -class BMD_PUBLIC IDeckLinkCocoaScreenPreviewCallback : public IDeckLinkScreenPreviewCallback -{ -public: - -protected: - virtual ~IDeckLinkCocoaScreenPreviewCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown -{ -public: - - /* Methods must be called with OpenGL context set */ - - virtual HRESULT InitializeGL (void) = 0; - virtual HRESULT PaintGL (void) = 0; - virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0; - -protected: - virtual ~IDeckLinkGLScreenPreviewHelper () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkNotificationCallback - DeckLink Notification Callback Interface */ - -class BMD_PUBLIC IDeckLinkNotificationCallback : public IUnknown -{ -public: - virtual HRESULT Notify (/* in */ BMDNotifications topic, /* in */ uint64_t param1, /* in */ uint64_t param2) = 0; -}; - -/* Interface IDeckLinkNotification - DeckLink Notification interface */ - -class BMD_PUBLIC IDeckLinkNotification : public IUnknown -{ -public: - virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; - virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0; -}; - -/* Interface IDeckLinkAttributes - DeckLink Attribute interface */ - -class BMD_PUBLIC IDeckLinkAttributes : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ CFStringRef *value) = 0; - -protected: - virtual ~IDeckLinkAttributes () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkStatus - DeckLink Status interface */ - -class BMD_PUBLIC IDeckLinkStatus : public IUnknown -{ -public: - virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ CFStringRef *value) = 0; - virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0; - -protected: - virtual ~IDeckLinkStatus () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkKeyer - DeckLink Keyer interface */ - -class BMD_PUBLIC IDeckLinkKeyer : public IUnknown -{ -public: - virtual HRESULT Enable (/* in */ bool isExternal) = 0; - virtual HRESULT SetLevel (/* in */ uint8_t level) = 0; - virtual HRESULT RampUp (/* in */ uint32_t numberOfFrames) = 0; - virtual HRESULT RampDown (/* in */ uint32_t numberOfFrames) = 0; - virtual HRESULT Disable (void) = 0; - -protected: - virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ - -class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown -{ -public: - virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame* srcFrame, /* in */ IDeckLinkVideoFrame* dstFrame) = 0; - -protected: - virtual ~IDeckLinkVideoConversion () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeviceNotificationCallback - DeckLink device arrival/removal notification callbacks */ - -class BMD_PUBLIC IDeckLinkDeviceNotificationCallback : public IUnknown -{ -public: - virtual HRESULT DeckLinkDeviceArrived (/* in */ IDeckLink* deckLinkDevice) = 0; - virtual HRESULT DeckLinkDeviceRemoved (/* in */ IDeckLink* deckLinkDevice) = 0; - -protected: - virtual ~IDeckLinkDeviceNotificationCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDiscovery - DeckLink device discovery */ - -class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown -{ -public: - virtual HRESULT InstallDeviceNotifications (/* in */ IDeckLinkDeviceNotificationCallback* deviceNotificationCallback) = 0; - virtual HRESULT UninstallDeviceNotifications (void) = 0; - -protected: - virtual ~IDeckLinkDiscovery () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void); - IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void); - IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void); - IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void); - IDeckLinkCocoaScreenPreviewCallback* BMD_PUBLIC CreateCocoaScreenPreview (void* /* (NSView*) */ parentView); - IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void); - -} - - -#endif // defined(__cplusplus) -#endif /* defined(BMD_DECKLINKAPI_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h deleted file mode 100644 index 6622aecea62..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration.h +++ /dev/null @@ -1,261 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_H -#define BMD_DECKLINKAPICONFIGURATION_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration = /* EF90380B-4AE5-4346-9077-E288E149F129 */ {0xEF,0x90,0x38,0x0B,0x4A,0xE5,0x43,0x46,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29}; -BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E}; - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID; -enum _BMDDeckLinkConfigurationID { - - /* Serial port Flags */ - - bmdDeckLinkConfigSwapSerialRxTx = 'ssrt', - - /* Video Input/Output Integers */ - - bmdDeckLinkConfigHDMI3DPackingFormat = '3dpf', - bmdDeckLinkConfigBypass = 'byps', - bmdDeckLinkConfigClockTimingAdjustment = 'ctad', - bmdDeckLinkConfigDuplexMode = 'dupx', - - /* Audio Input/Output Flags */ - - bmdDeckLinkConfigAnalogAudioConsumerLevels = 'aacl', - - /* Video output flags */ - - bmdDeckLinkConfigFieldFlickerRemoval = 'fdfr', - bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 'to59', - bmdDeckLinkConfig444SDIVideoOutput = '444o', - bmdDeckLinkConfigBlackVideoOutputDuringCapture = 'bvoc', - bmdDeckLinkConfigLowLatencyVideoOutput = 'llvo', - bmdDeckLinkConfigDownConversionOnAllAnalogOutput = 'caao', - bmdDeckLinkConfigSMPTELevelAOutput = 'smta', - - /* Video Output Flags */ - - bmdDeckLinkConfigOutput1080pAsPsF = 'pfpr', - - /* Video Output Integers */ - - bmdDeckLinkConfigVideoOutputConnection = 'vocn', - bmdDeckLinkConfigVideoOutputConversionMode = 'vocm', - bmdDeckLinkConfigAnalogVideoOutputFlags = 'avof', - bmdDeckLinkConfigReferenceInputTimingOffset = 'glot', - bmdDeckLinkConfigVideoOutputIdleOperation = 'voio', - bmdDeckLinkConfigDefaultVideoOutputMode = 'dvom', - bmdDeckLinkConfigDefaultVideoOutputModeFlags = 'dvof', - bmdDeckLinkConfigSDIOutputLinkConfiguration = 'solc', - - /* Video Output Floats */ - - bmdDeckLinkConfigVideoOutputComponentLumaGain = 'oclg', - bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 'occb', - bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 'occr', - bmdDeckLinkConfigVideoOutputCompositeLumaGain = 'oilg', - bmdDeckLinkConfigVideoOutputCompositeChromaGain = 'oicg', - bmdDeckLinkConfigVideoOutputSVideoLumaGain = 'oslg', - bmdDeckLinkConfigVideoOutputSVideoChromaGain = 'oscg', - - /* Video Input Flags */ - - bmdDeckLinkConfigVideoInputScanning = 'visc', // Applicable to H264 Pro Recorder only - bmdDeckLinkConfigUseDedicatedLTCInput = 'dltc', // Use timecode from LTC input instead of SDI stream - bmdDeckLinkConfigSDIInput3DPayloadOverride = '3dds', - - /* Video Input Flags */ - - bmdDeckLinkConfigCapture1080pAsPsF = 'cfpr', - - /* Video Input Integers */ - - bmdDeckLinkConfigVideoInputConnection = 'vicn', - bmdDeckLinkConfigAnalogVideoInputFlags = 'avif', - bmdDeckLinkConfigVideoInputConversionMode = 'vicm', - bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 'pdif', - bmdDeckLinkConfigVANCSourceLine1Mapping = 'vsl1', - bmdDeckLinkConfigVANCSourceLine2Mapping = 'vsl2', - bmdDeckLinkConfigVANCSourceLine3Mapping = 'vsl3', - bmdDeckLinkConfigCapturePassThroughMode = 'cptm', - - /* Video Input Floats */ - - bmdDeckLinkConfigVideoInputComponentLumaGain = 'iclg', - bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 'iccb', - bmdDeckLinkConfigVideoInputComponentChromaRedGain = 'iccr', - bmdDeckLinkConfigVideoInputCompositeLumaGain = 'iilg', - bmdDeckLinkConfigVideoInputCompositeChromaGain = 'iicg', - bmdDeckLinkConfigVideoInputSVideoLumaGain = 'islg', - bmdDeckLinkConfigVideoInputSVideoChromaGain = 'iscg', - - /* Audio Input Flags */ - - bmdDeckLinkConfigMicrophonePhantomPower = 'mphp', - - /* Audio Input Integers */ - - bmdDeckLinkConfigAudioInputConnection = 'aicn', - - /* Audio Input Floats */ - - bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 'ais1', - bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 'ais2', - bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 'ais3', - bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 'ais4', - bmdDeckLinkConfigDigitalAudioInputScale = 'dais', - bmdDeckLinkConfigMicrophoneInputGain = 'micg', - - /* Audio Output Integers */ - - bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 'aoaa', - - /* Audio Output Floats */ - - bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 'aos1', - bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 'aos2', - bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 'aos3', - bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 'aos4', - bmdDeckLinkConfigDigitalAudioOutputScale = 'daos', - bmdDeckLinkConfigHeadphoneVolume = 'hvol', - - /* Device Information Strings */ - - bmdDeckLinkConfigDeviceInformationLabel = 'dila', - bmdDeckLinkConfigDeviceInformationSerialNumber = 'disn', - bmdDeckLinkConfigDeviceInformationCompany = 'dico', - bmdDeckLinkConfigDeviceInformationPhone = 'diph', - bmdDeckLinkConfigDeviceInformationEmail = 'diem', - bmdDeckLinkConfigDeviceInformationDate = 'dida', - - /* Deck Control Integers */ - - bmdDeckLinkConfigDeckControlConnection = 'dcco' -}; - -/* Enum BMDDeckLinkEncoderConfigurationID - DeckLink Encoder Configuration ID */ - -typedef uint32_t BMDDeckLinkEncoderConfigurationID; -enum _BMDDeckLinkEncoderConfigurationID { - - /* Video Encoder Integers */ - - bmdDeckLinkEncoderConfigPreferredBitDepth = 'epbr', - bmdDeckLinkEncoderConfigFrameCodingMode = 'efcm', - - /* HEVC/H.265 Encoder Integers */ - - bmdDeckLinkEncoderConfigH265TargetBitrate = 'htbr', - - /* DNxHR/DNxHD Compression ID */ - - bmdDeckLinkEncoderConfigDNxHRCompressionID = 'dcid', - - /* DNxHR/DNxHD Level */ - - bmdDeckLinkEncoderConfigDNxHRLevel = 'dlev', - - /* Encoded Sample Decriptions */ - - bmdDeckLinkEncoderConfigMPEG4SampleDescription = 'stsE', // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more - bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = 'esds' // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more -}; - -// Forward Declarations - -class IDeckLinkConfiguration; -class IDeckLinkEncoderConfiguration; - -/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */ - -class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkEncoderConfiguration - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ - -class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0; - -protected: - virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h deleted file mode 100644 index 2c989a06949..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_2.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2014 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_2_H -#define BMD_DECKLINKAPICONFIGURATION_v10_2_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_2 = /* C679A35B-610C-4D09-B748-1D0478100FC0 */ {0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0}; - -// Forward Declarations - -class IDeckLinkConfiguration_v10_2; - -/* Interface IDeckLinkConfiguration_v10_2 - DeckLink Configuration interface */ - -class IDeckLinkConfiguration_v10_2 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_2 () {} // call Release method to drop reference count -}; - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h deleted file mode 100644 index 21e02ee3539..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_4.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_4_H -#define BMD_DECKLINKAPICONFIGURATION_v10_4_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_4 = /* 1E69FCF6-4203-4936-8076-2A9F4CFD50CB */ {0x1E,0x69,0xFC,0xF6,0x42,0x03,0x49,0x36,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB}; - -// -// Forward Declarations - -class IDeckLinkConfiguration_v10_4; - -/* Interface IDeckLinkConfiguration_v10_4 - DeckLink Configuration interface */ - -class IDeckLinkConfiguration_v10_4 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_4 () {} // call Release method to drop reference count -}; - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h deleted file mode 100644 index 0808367d5b1..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_5.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_5_H -#define BMD_DECKLINKAPICONFIGURATION_v10_5_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration_v10_5 = /* 67455668-0848-45DF-8D8E-350A77C9A028 */ {0x67,0x45,0x56,0x68,0x08,0x48,0x45,0xDF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28}; - -// Forward Declarations - -class IDeckLinkConfiguration_v10_5; - -/* Interface IDeckLinkEncoderConfiguration_v10_5 - DeckLink Encoder Configuration interface. Obtained from IDeckLinkEncoderInput */ - -class IDeckLinkEncoderConfiguration_v10_5 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT GetDecoderConfigurationInfo (/* out */ void *buffer, /* in */ long bufferSize, /* out */ long *returnedSize) = 0; - -protected: - virtual ~IDeckLinkEncoderConfiguration_v10_5 () {} // call Release method to drop reference count -}; - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_5_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h deleted file mode 100644 index e49a3ee3bb6..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIConfiguration_v10_9.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2017 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPICONFIGURATION_v10_9_H -#define BMD_DECKLINKAPICONFIGURATION_v10_9_H - -#include "DeckLinkAPIConfiguration.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkConfiguration_v10_9 = /* CB71734A-FE37-4E8D-8E13-802133A1C3F2 */ {0xCB,0x71,0x73,0x4A,0xFE,0x37,0x4E,0x8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2}; - -// -// Forward Declarations - -class IDeckLinkConfiguration_v10_9; - -/* Interface IDeckLinkConfiguration_v10_9 - DeckLink Configuration interface */ - -class IDeckLinkConfiguration_v10_9 : public IUnknown -{ -public: - virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0; - virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0; - virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0; - virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0; - virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0; - virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0; - virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - -protected: - virtual ~IDeckLinkConfiguration_v10_9 () {} // call Release method to drop reference count -}; - - -#endif /* defined(BMD_DECKLINKAPICONFIGURATION_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h deleted file mode 100644 index 6de333fda9e..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDeckControl.h +++ /dev/null @@ -1,219 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIDECKCONTROL_H -#define BMD_DECKLINKAPIDECKCONTROL_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF}; -BMD_CONST REFIID IID_IDeckLinkDeckControl = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE}; - -/* Enum BMDDeckControlMode - DeckControl mode */ - -typedef uint32_t BMDDeckControlMode; -enum _BMDDeckControlMode { - bmdDeckControlNotOpened = 'ntop', - bmdDeckControlVTRControlMode = 'vtrc', - bmdDeckControlExportMode = 'expm', - bmdDeckControlCaptureMode = 'capm' -}; - -/* Enum BMDDeckControlEvent - DeckControl event */ - -typedef uint32_t BMDDeckControlEvent; -enum _BMDDeckControlEvent { - bmdDeckControlAbortedEvent = 'abte', // This event is triggered when a capture or edit-to-tape operation is aborted. - - /* Export-To-Tape events */ - - bmdDeckControlPrepareForExportEvent = 'pfee', // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point. - bmdDeckControlExportCompleteEvent = 'exce', // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. - - /* Capture events */ - - bmdDeckControlPrepareForCaptureEvent = 'pfce', // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid. - bmdDeckControlCaptureCompleteEvent = 'ccev' // This event is triggered a few frames after reaching the out-point. -}; - -/* Enum BMDDeckControlVTRControlState - VTR Control state */ - -typedef uint32_t BMDDeckControlVTRControlState; -enum _BMDDeckControlVTRControlState { - bmdDeckControlNotInVTRControlMode = 'nvcm', - bmdDeckControlVTRControlPlaying = 'vtrp', - bmdDeckControlVTRControlRecording = 'vtrr', - bmdDeckControlVTRControlStill = 'vtra', - bmdDeckControlVTRControlShuttleForward = 'vtsf', - bmdDeckControlVTRControlShuttleReverse = 'vtsr', - bmdDeckControlVTRControlJogForward = 'vtjf', - bmdDeckControlVTRControlJogReverse = 'vtjr', - bmdDeckControlVTRControlStopped = 'vtro' -}; - -/* Enum BMDDeckControlStatusFlags - Deck Control status flags */ - -typedef uint32_t BMDDeckControlStatusFlags; -enum _BMDDeckControlStatusFlags { - bmdDeckControlStatusDeckConnected = 1 << 0, - bmdDeckControlStatusRemoteMode = 1 << 1, - bmdDeckControlStatusRecordInhibited = 1 << 2, - bmdDeckControlStatusCassetteOut = 1 << 3 -}; - -/* Enum BMDDeckControlExportModeOpsFlags - Export mode flags */ - -typedef uint32_t BMDDeckControlExportModeOpsFlags; -enum _BMDDeckControlExportModeOpsFlags { - bmdDeckControlExportModeInsertVideo = 1 << 0, - bmdDeckControlExportModeInsertAudio1 = 1 << 1, - bmdDeckControlExportModeInsertAudio2 = 1 << 2, - bmdDeckControlExportModeInsertAudio3 = 1 << 3, - bmdDeckControlExportModeInsertAudio4 = 1 << 4, - bmdDeckControlExportModeInsertAudio5 = 1 << 5, - bmdDeckControlExportModeInsertAudio6 = 1 << 6, - bmdDeckControlExportModeInsertAudio7 = 1 << 7, - bmdDeckControlExportModeInsertAudio8 = 1 << 8, - bmdDeckControlExportModeInsertAudio9 = 1 << 9, - bmdDeckControlExportModeInsertAudio10 = 1 << 10, - bmdDeckControlExportModeInsertAudio11 = 1 << 11, - bmdDeckControlExportModeInsertAudio12 = 1 << 12, - bmdDeckControlExportModeInsertTimeCode = 1 << 13, - bmdDeckControlExportModeInsertAssemble = 1 << 14, - bmdDeckControlExportModeInsertPreview = 1 << 15, - bmdDeckControlUseManualExport = 1 << 16 -}; - -/* Enum BMDDeckControlError - Deck Control error */ - -typedef uint32_t BMDDeckControlError; -enum _BMDDeckControlError { - bmdDeckControlNoError = 'noer', - bmdDeckControlModeError = 'moer', - bmdDeckControlMissedInPointError = 'mier', - bmdDeckControlDeckTimeoutError = 'dter', - bmdDeckControlCommandFailedError = 'cfer', - bmdDeckControlDeviceAlreadyOpenedError = 'dalo', - bmdDeckControlFailedToOpenDeviceError = 'fder', - bmdDeckControlInLocalModeError = 'lmer', - bmdDeckControlEndOfTapeError = 'eter', - bmdDeckControlUserAbortError = 'uaer', - bmdDeckControlNoTapeInDeckError = 'nter', - bmdDeckControlNoVideoFromCardError = 'nvfc', - bmdDeckControlNoCommunicationError = 'ncom', - bmdDeckControlBufferTooSmallError = 'btsm', - bmdDeckControlBadChecksumError = 'chks', - bmdDeckControlUnknownError = 'uner' -}; - -// Forward Declarations - -class IDeckLinkDeckControlStatusCallback; -class IDeckLinkDeckControl; - -/* Interface IDeckLinkDeckControlStatusCallback - Deck control state change callback. */ - -class BMD_PUBLIC IDeckLinkDeckControlStatusCallback : public IUnknown -{ -public: - virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; - virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState newState, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; - -protected: - virtual ~IDeckLinkDeckControlStatusCallback () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeckControl - Deck Control main interface */ - -class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ CFStringRef *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h deleted file mode 100644 index d63960d0592..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDiscovery.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIDISCOVERY_H -#define BMD_DECKLINKAPIDISCOVERY_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLink = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91}; - -// Forward Declarations - -class IDeckLink; - -/* Interface IDeckLink - represents a DeckLink device */ - -class BMD_PUBLIC IDeckLink : public IUnknown -{ -public: - virtual HRESULT GetModelName (/* out */ CFStringRef *modelName) = 0; - virtual HRESULT GetDisplayName (/* out */ CFStringRef *displayName) = 0; - -protected: - virtual ~IDeckLink () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp deleted file mode 100644 index 7a6fd4c6eec..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPIDispatch.cpp */ - -#include "DeckLinkAPI.h" -#include - -#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 - #error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h -#endif - -#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" - - -typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); -typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gDeckLinkAPIBundleRef = NULL; -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; -static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc= NULL; - - -void InitDeckLinkAPI (void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gDeckLinkAPIBundleRef != NULL) - { - gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0003")); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); - gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); - gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkDiscoveryInstance_0002")); - } - CFRelease(bundleURL); - } -} - -bool IsDeckLinkAPIPresent (void) -{ - // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller - if (gDeckLinkAPIBundleRef != NULL) - return true; - - return false; -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview (void* parentView) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateCocoaPreviewFunc == NULL) - return NULL; - - return gCreateCocoaPreviewFunc(parentView); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - - return gCreateVideoConversionFunc(); -} - -IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateDeckLinkDiscoveryFunc == NULL) - return NULL; - - return gCreateDeckLinkDiscoveryFunc(); -} - - -#define kBMDStreamingAPI_BundlePath "/Library/Application Support/Blackmagic Design/Streaming/BMDStreamingAPI.bundle" - -typedef IBMDStreamingDiscovery* (*CreateDiscoveryFunc)(void); -typedef IBMDStreamingH264NALParser* (*CreateNALParserFunc)(void); - -static pthread_once_t gBMDStreamingOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gBMDStreamingAPIBundleRef = NULL; -static CreateDiscoveryFunc gCreateDiscoveryFunc = NULL; -static CreateNALParserFunc gCreateNALParserFunc = NULL; - -void InitBMDStreamingAPI(void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDStreamingAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gBMDStreamingAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gBMDStreamingAPIBundleRef != NULL) - { - gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingDiscoveryInstance_0002")); - gCreateNALParserFunc = (CreateNALParserFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingH264NALParser_0001")); - } - - CFRelease(bundleURL); - } -} - -IBMDStreamingDiscovery* CreateBMDStreamingDiscoveryInstance() -{ - pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); - - if (gCreateDiscoveryFunc == NULL) - return NULL; - - return gCreateDiscoveryFunc(); -} - -IBMDStreamingH264NALParser* CreateBMDStreamingH264NALParser() -{ - pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); - - if (gCreateNALParserFunc == NULL) - return NULL; - - return gCreateNALParserFunc(); -} diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp deleted file mode 100644 index 6449a08e0a6..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v10_8.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPIDispatch.cpp */ - -#include "DeckLinkAPI.h" -#include - -#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 -#error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h -#endif - -#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" - - -typedef IDeckLinkIterator* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); -typedef IDeckLinkDiscovery* (*CreateDeckLinkDiscoveryInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gDeckLinkAPIBundleRef = NULL; -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; -static CreateDeckLinkDiscoveryInstanceFunc gCreateDeckLinkDiscoveryFunc = NULL; - - -void InitDeckLinkAPI(void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gDeckLinkAPIBundleRef != NULL) - { - gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0002")); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); - gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); - gCreateDeckLinkDiscoveryFunc = (CreateDeckLinkDiscoveryInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkDiscoveryInstance_0001")); - } - CFRelease(bundleURL); - } -} - -bool IsDeckLinkAPIPresent(void) -{ - // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller - if (gDeckLinkAPIBundleRef != NULL) - return true; - - return false; -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview(void* parentView) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateCocoaPreviewFunc == NULL) - return NULL; - - return gCreateCocoaPreviewFunc(parentView); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - - return gCreateVideoConversionFunc(); -} - -IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateDeckLinkDiscoveryFunc == NULL) - return NULL; - - return gCreateDeckLinkDiscoveryFunc(); -} - - -#define kBMDStreamingAPI_BundlePath "/Library/Application Support/Blackmagic Design/Streaming/BMDStreamingAPI.bundle" - -typedef IBMDStreamingDiscovery* (*CreateDiscoveryFunc)(void); -typedef IBMDStreamingH264NALParser* (*CreateNALParserFunc)(void); - -static pthread_once_t gBMDStreamingOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gBMDStreamingAPIBundleRef = NULL; -static CreateDiscoveryFunc gCreateDiscoveryFunc = NULL; -static CreateNALParserFunc gCreateNALParserFunc = NULL; - -void InitBMDStreamingAPI(void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kBMDStreamingAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gBMDStreamingAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gBMDStreamingAPIBundleRef != NULL) - { - gCreateDiscoveryFunc = (CreateDiscoveryFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingDiscoveryInstance_0001")); - gCreateNALParserFunc = (CreateNALParserFunc)CFBundleGetFunctionPointerForName(gBMDStreamingAPIBundleRef, CFSTR("CreateBMDStreamingH264NALParser_0001")); - } - - CFRelease(bundleURL); - } -} - -IBMDStreamingDiscovery* CreateBMDStreamingDiscoveryInstance() -{ - pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); - - if (gCreateDiscoveryFunc == NULL) - return NULL; - - return gCreateDiscoveryFunc(); -} - -IBMDStreamingH264NALParser* CreateBMDStreamingH264NALParser() -{ - pthread_once(&gBMDStreamingOnceControl, InitBMDStreamingAPI); - - if (gCreateNALParserFunc == NULL) - return NULL; - - return gCreateNALParserFunc(); -} diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp deleted file mode 100644 index 4b11bca412c..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v7_6.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPIDispatch_v7_6.cpp */ - -#include "DeckLinkAPI_v7_6.h" -#include - -#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" - -typedef IDeckLinkIterator* (*CreateIteratorFunc_v7_6)(void); -typedef IDeckLinkGLScreenPreviewHelper_v7_6* (*CreateOpenGLScreenPreviewHelperFunc_v7_6)(void); -typedef IDeckLinkCocoaScreenPreviewCallback_v7_6* (*CreateCocoaScreenPreviewFunc_v7_6)(void*); -typedef IDeckLinkVideoConversion_v7_6* (*CreateVideoConversionInstanceFunc_v7_6)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gBundleRef = NULL; -static CreateIteratorFunc_v7_6 gCreateIteratorFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc_v7_6 gCreateOpenGLPreviewFunc = NULL; -static CreateCocoaScreenPreviewFunc_v7_6 gCreateCocoaPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc_v7_6 gCreateVideoConversionFunc = NULL; - - -void InitDeckLinkAPI_v7_6 (void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gBundleRef != NULL) - { - gCreateIteratorFunc = (CreateIteratorFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateDeckLinkIteratorInstance")); - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper")); - gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateCocoaScreenPreview")); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc_v7_6)CFBundleGetFunctionPointerForName(gBundleRef, CFSTR("CreateVideoConversionInstance")); - } - CFRelease(bundleURL); - } -} - -IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateIteratorFunc == NULL) - return NULL; - - return gCreateIteratorFunc(); -} - -IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkCocoaScreenPreviewCallback_v7_6* CreateCocoaScreenPreview_v7_6 (void* parentView) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateCocoaPreviewFunc == NULL) - return NULL; - - return gCreateCocoaPreviewFunc(parentView); -} - -IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI_v7_6); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - - return gCreateVideoConversionFunc(); -} - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp deleted file mode 100644 index cd6857aa9bc..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIDispatch_v8_0.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2011 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPIDispatch.cpp */ - -#include "DeckLinkAPI_v8_0.h" -#include - -#if BLACKMAGIC_DECKLINK_API_MAGIC != 1 - #error The DeckLink API version of DeckLinkAPIDispatch.cpp is not the same version as DeckLinkAPI.h -#endif - -#define kDeckLinkAPI_BundlePath "/Library/Frameworks/DeckLinkAPI.framework" - -typedef IDeckLinkIterator_v8_0* (*CreateIteratorFunc)(void); -typedef IDeckLinkAPIInformation* (*CreateAPIInformationFunc)(void); -typedef IDeckLinkGLScreenPreviewHelper* (*CreateOpenGLScreenPreviewHelperFunc)(void); -typedef IDeckLinkCocoaScreenPreviewCallback* (*CreateCocoaScreenPreviewFunc)(void*); -typedef IDeckLinkVideoConversion* (*CreateVideoConversionInstanceFunc)(void); - -static pthread_once_t gDeckLinkOnceControl = PTHREAD_ONCE_INIT; -static CFBundleRef gDeckLinkAPIBundleRef = NULL; -static CreateIteratorFunc gCreateIteratorFunc = NULL; -static CreateAPIInformationFunc gCreateAPIInformationFunc = NULL; -static CreateOpenGLScreenPreviewHelperFunc gCreateOpenGLPreviewFunc = NULL; -static CreateCocoaScreenPreviewFunc gCreateCocoaPreviewFunc = NULL; -static CreateVideoConversionInstanceFunc gCreateVideoConversionFunc = NULL; - - -void InitDeckLinkAPI (void) -{ - CFURLRef bundleURL; - - bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR(kDeckLinkAPI_BundlePath), kCFURLPOSIXPathStyle, true); - if (bundleURL != NULL) - { - gDeckLinkAPIBundleRef = CFBundleCreate(kCFAllocatorDefault, bundleURL); - if (gDeckLinkAPIBundleRef != NULL) - { - gCreateIteratorFunc = (CreateIteratorFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkIteratorInstance_0001")); - gCreateAPIInformationFunc = (CreateAPIInformationFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateDeckLinkAPIInformationInstance_0001")); - gCreateOpenGLPreviewFunc = (CreateOpenGLScreenPreviewHelperFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateOpenGLScreenPreviewHelper_0001")); - gCreateCocoaPreviewFunc = (CreateCocoaScreenPreviewFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateCocoaScreenPreview_0001")); - gCreateVideoConversionFunc = (CreateVideoConversionInstanceFunc)CFBundleGetFunctionPointerForName(gDeckLinkAPIBundleRef, CFSTR("CreateVideoConversionInstance_0001")); - } - CFRelease(bundleURL); - } -} - -bool IsDeckLinkAPIPresent (void) -{ - // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller - if (gDeckLinkAPIBundleRef != NULL) - return true; - - return false; -} - -IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateIteratorFunc == NULL) - return NULL; - - return gCreateIteratorFunc(); -} - -IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateAPIInformationFunc == NULL) - return NULL; - - return gCreateAPIInformationFunc(); -} - -IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateOpenGLPreviewFunc == NULL) - return NULL; - - return gCreateOpenGLPreviewFunc(); -} - -IDeckLinkCocoaScreenPreviewCallback* CreateCocoaScreenPreview (void* parentView) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateCocoaPreviewFunc == NULL) - return NULL; - - return gCreateCocoaPreviewFunc(parentView); -} - -IDeckLinkVideoConversion* CreateVideoConversionInstance (void) -{ - pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI); - - if (gCreateVideoConversionFunc == NULL) - return NULL; - - return gCreateVideoConversionFunc(); -} - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h deleted file mode 100644 index d3bba8eb75f..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIModes.h +++ /dev/null @@ -1,200 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPIMODES_H -#define BMD_DECKLINKAPIMODES_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}; -BMD_CONST REFIID IID_IDeckLinkDisplayMode = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}; - -/* Enum BMDDisplayMode - Video display modes */ - -typedef uint32_t BMDDisplayMode; -enum _BMDDisplayMode { - - /* SD Modes */ - - bmdModeNTSC = 'ntsc', - bmdModeNTSC2398 = 'nt23', // 3:2 pulldown - bmdModePAL = 'pal ', - bmdModeNTSCp = 'ntsp', - bmdModePALp = 'palp', - - /* HD 1080 Modes */ - - bmdModeHD1080p2398 = '23ps', - bmdModeHD1080p24 = '24ps', - bmdModeHD1080p25 = 'Hp25', - bmdModeHD1080p2997 = 'Hp29', - bmdModeHD1080p30 = 'Hp30', - bmdModeHD1080i50 = 'Hi50', - bmdModeHD1080i5994 = 'Hi59', - bmdModeHD1080i6000 = 'Hi60', // N.B. This _really_ is 60.00 Hz. - bmdModeHD1080p50 = 'Hp50', - bmdModeHD1080p5994 = 'Hp59', - bmdModeHD1080p6000 = 'Hp60', // N.B. This _really_ is 60.00 Hz. - - /* HD 720 Modes */ - - bmdModeHD720p50 = 'hp50', - bmdModeHD720p5994 = 'hp59', - bmdModeHD720p60 = 'hp60', - - /* 2k Modes */ - - bmdMode2k2398 = '2k23', - bmdMode2k24 = '2k24', - bmdMode2k25 = '2k25', - - /* DCI Modes (output only) */ - - bmdMode2kDCI2398 = '2d23', - bmdMode2kDCI24 = '2d24', - bmdMode2kDCI25 = '2d25', - - /* 4k Modes */ - - bmdMode4K2160p2398 = '4k23', - bmdMode4K2160p24 = '4k24', - bmdMode4K2160p25 = '4k25', - bmdMode4K2160p2997 = '4k29', - bmdMode4K2160p30 = '4k30', - bmdMode4K2160p50 = '4k50', - bmdMode4K2160p5994 = '4k59', - bmdMode4K2160p60 = '4k60', - - /* DCI Modes (output only) */ - - bmdMode4kDCI2398 = '4d23', - bmdMode4kDCI24 = '4d24', - bmdMode4kDCI25 = '4d25', - - /* Special Modes */ - - bmdModeUnknown = 'iunk' -}; - -/* Enum BMDFieldDominance - Video field dominance */ - -typedef uint32_t BMDFieldDominance; -enum _BMDFieldDominance { - bmdUnknownFieldDominance = 0, - bmdLowerFieldFirst = 'lowr', - bmdUpperFieldFirst = 'uppr', - bmdProgressiveFrame = 'prog', - bmdProgressiveSegmentedFrame = 'psf ' -}; - -/* Enum BMDPixelFormat - Video pixel formats supported for output/input */ - -typedef uint32_t BMDPixelFormat; -enum _BMDPixelFormat { - bmdFormat8BitYUV = '2vuy', - bmdFormat10BitYUV = 'v210', - bmdFormat8BitARGB = 32, - bmdFormat8BitBGRA = 'BGRA', - bmdFormat10BitRGB = 'r210', // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 - bmdFormat12BitRGB = 'R12B', // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component - bmdFormat12BitRGBLE = 'R12L', // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component - bmdFormat10BitRGBXLE = 'R10l', // Little-endian 10-bit RGB with SMPTE video levels (64-940) - bmdFormat10BitRGBX = 'R10b', // Big-endian 10-bit RGB with SMPTE video levels (64-940) - bmdFormatH265 = 'hev1', // High Efficiency Video Coding (HEVC/h.265) - - /* AVID DNxHR */ - - bmdFormatDNxHR = 'AVdh' -}; - -/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */ - -typedef uint32_t BMDDisplayModeFlags; -enum _BMDDisplayModeFlags { - bmdDisplayModeSupports3D = 1 << 0, - bmdDisplayModeColorspaceRec601 = 1 << 1, - bmdDisplayModeColorspaceRec709 = 1 << 2 -}; - -// Forward Declarations - -class IDeckLinkDisplayModeIterator; -class IDeckLinkDisplayMode; - -/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ - -class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0; - -protected: - virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count -}; - -/* Interface IDeckLinkDisplayMode - represents a display mode */ - -class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown -{ -public: - virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; - virtual BMDFieldDominance GetFieldDominance (void) = 0; - virtual BMDDisplayModeFlags GetFlags (void) = 0; - -protected: - virtual ~IDeckLinkDisplayMode () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPIMODES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h deleted file mode 100644 index b5f16bb372f..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIStreaming.h +++ /dev/null @@ -1,379 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPISTREAMING_H -#define BMD_DECKLINKAPISTREAMING_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - - -// Interface ID Declarations - -BMD_CONST REFIID IID_IBMDStreamingDeviceNotificationCallback = /* F9531D64-3305-4B29-A387-7F74BB0D0E84 */ {0xF9,0x53,0x1D,0x64,0x33,0x05,0x4B,0x29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84}; -BMD_CONST REFIID IID_IBMDStreamingH264InputCallback = /* 823C475F-55AE-46F9-890C-537CC5CEDCCA */ {0x82,0x3C,0x47,0x5F,0x55,0xAE,0x46,0xF9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA}; -BMD_CONST REFIID IID_IBMDStreamingDiscovery = /* 2C837444-F989-4D87-901A-47C8A36D096D */ {0x2C,0x83,0x74,0x44,0xF9,0x89,0x4D,0x87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D}; -BMD_CONST REFIID IID_IBMDStreamingVideoEncodingMode = /* 1AB8035B-CD13-458D-B6DF-5E8F7C2141D9 */ {0x1A,0xB8,0x03,0x5B,0xCD,0x13,0x45,0x8D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9}; -BMD_CONST REFIID IID_IBMDStreamingMutableVideoEncodingMode = /* 19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D */ {0x19,0xBF,0x7D,0x90,0x1E,0x0A,0x40,0x0D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D}; -BMD_CONST REFIID IID_IBMDStreamingVideoEncodingModePresetIterator = /* 7AC731A3-C950-4AD0-804A-8377AA51C6C4 */ {0x7A,0xC7,0x31,0xA3,0xC9,0x50,0x4A,0xD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4}; -BMD_CONST REFIID IID_IBMDStreamingDeviceInput = /* 24B6B6EC-1727-44BB-9818-34FF086ACF98 */ {0x24,0xB6,0xB6,0xEC,0x17,0x27,0x44,0xBB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98}; -BMD_CONST REFIID IID_IBMDStreamingH264NALPacket = /* E260E955-14BE-4395-9775-9F02CC0A9D89 */ {0xE2,0x60,0xE9,0x55,0x14,0xBE,0x43,0x95,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89}; -BMD_CONST REFIID IID_IBMDStreamingAudioPacket = /* D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19 */ {0xD9,0xEB,0x59,0x02,0x1A,0xD2,0x43,0xF4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19}; -BMD_CONST REFIID IID_IBMDStreamingMPEG2TSPacket = /* 91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C */ {0x91,0x81,0x0D,0x1C,0x4F,0xB3,0x4A,0xAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C}; -BMD_CONST REFIID IID_IBMDStreamingH264NALParser = /* 5867F18C-5BFA-4CCC-B2A7-9DFD140417D2 */ {0x58,0x67,0xF1,0x8C,0x5B,0xFA,0x4C,0xCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2}; - -/* Enum BMDStreamingDeviceMode - Device modes */ - -typedef uint32_t BMDStreamingDeviceMode; -enum _BMDStreamingDeviceMode { - bmdStreamingDeviceIdle = 'idle', - bmdStreamingDeviceEncoding = 'enco', - bmdStreamingDeviceStopping = 'stop', - bmdStreamingDeviceUnknown = 'munk' -}; - -/* Enum BMDStreamingEncodingFrameRate - Encoded frame rates */ - -typedef uint32_t BMDStreamingEncodingFrameRate; -enum _BMDStreamingEncodingFrameRate { - - /* Interlaced rates */ - - bmdStreamingEncodedFrameRate50i = 'e50i', - bmdStreamingEncodedFrameRate5994i = 'e59i', - bmdStreamingEncodedFrameRate60i = 'e60i', - - /* Progressive rates */ - - bmdStreamingEncodedFrameRate2398p = 'e23p', - bmdStreamingEncodedFrameRate24p = 'e24p', - bmdStreamingEncodedFrameRate25p = 'e25p', - bmdStreamingEncodedFrameRate2997p = 'e29p', - bmdStreamingEncodedFrameRate30p = 'e30p', - bmdStreamingEncodedFrameRate50p = 'e50p', - bmdStreamingEncodedFrameRate5994p = 'e59p', - bmdStreamingEncodedFrameRate60p = 'e60p' -}; - -/* Enum BMDStreamingEncodingSupport - Output encoding mode supported flag */ - -typedef uint32_t BMDStreamingEncodingSupport; -enum _BMDStreamingEncodingSupport { - bmdStreamingEncodingModeNotSupported = 0, - bmdStreamingEncodingModeSupported, - bmdStreamingEncodingModeSupportedWithChanges -}; - -/* Enum BMDStreamingVideoCodec - Video codecs */ - -typedef uint32_t BMDStreamingVideoCodec; -enum _BMDStreamingVideoCodec { - bmdStreamingVideoCodecH264 = 'H264' -}; - -/* Enum BMDStreamingH264Profile - H264 encoding profile */ - -typedef uint32_t BMDStreamingH264Profile; -enum _BMDStreamingH264Profile { - bmdStreamingH264ProfileHigh = 'high', - bmdStreamingH264ProfileMain = 'main', - bmdStreamingH264ProfileBaseline = 'base' -}; - -/* Enum BMDStreamingH264Level - H264 encoding level */ - -typedef uint32_t BMDStreamingH264Level; -enum _BMDStreamingH264Level { - bmdStreamingH264Level12 = 'lv12', - bmdStreamingH264Level13 = 'lv13', - bmdStreamingH264Level2 = 'lv2 ', - bmdStreamingH264Level21 = 'lv21', - bmdStreamingH264Level22 = 'lv22', - bmdStreamingH264Level3 = 'lv3 ', - bmdStreamingH264Level31 = 'lv31', - bmdStreamingH264Level32 = 'lv32', - bmdStreamingH264Level4 = 'lv4 ', - bmdStreamingH264Level41 = 'lv41', - bmdStreamingH264Level42 = 'lv42' -}; - -/* Enum BMDStreamingH264EntropyCoding - H264 entropy coding */ - -typedef uint32_t BMDStreamingH264EntropyCoding; -enum _BMDStreamingH264EntropyCoding { - bmdStreamingH264EntropyCodingCAVLC = 'EVLC', - bmdStreamingH264EntropyCodingCABAC = 'EBAC' -}; - -/* Enum BMDStreamingAudioCodec - Audio codecs */ - -typedef uint32_t BMDStreamingAudioCodec; -enum _BMDStreamingAudioCodec { - bmdStreamingAudioCodecAAC = 'AAC ' -}; - -/* Enum BMDStreamingEncodingModePropertyID - Encoding mode properties */ - -typedef uint32_t BMDStreamingEncodingModePropertyID; -enum _BMDStreamingEncodingModePropertyID { - - /* Integers, Video Properties */ - - bmdStreamingEncodingPropertyVideoFrameRate = 'vfrt', // Uses values of type BMDStreamingEncodingFrameRate - bmdStreamingEncodingPropertyVideoBitRateKbps = 'vbrt', - - /* Integers, H264 Properties */ - - bmdStreamingEncodingPropertyH264Profile = 'hprf', - bmdStreamingEncodingPropertyH264Level = 'hlvl', - bmdStreamingEncodingPropertyH264EntropyCoding = 'hent', - - /* Flags, H264 Properties */ - - bmdStreamingEncodingPropertyH264HasBFrames = 'hBfr', - - /* Integers, Audio Properties */ - - bmdStreamingEncodingPropertyAudioCodec = 'acdc', - bmdStreamingEncodingPropertyAudioSampleRate = 'asrt', - bmdStreamingEncodingPropertyAudioChannelCount = 'achc', - bmdStreamingEncodingPropertyAudioBitRateKbps = 'abrt' -}; - -// Forward Declarations - -class IBMDStreamingDeviceNotificationCallback; -class IBMDStreamingH264InputCallback; -class IBMDStreamingDiscovery; -class IBMDStreamingVideoEncodingMode; -class IBMDStreamingMutableVideoEncodingMode; -class IBMDStreamingVideoEncodingModePresetIterator; -class IBMDStreamingDeviceInput; -class IBMDStreamingH264NALPacket; -class IBMDStreamingAudioPacket; -class IBMDStreamingMPEG2TSPacket; -class IBMDStreamingH264NALParser; - -/* Interface IBMDStreamingDeviceNotificationCallback - Device notification callbacks. */ - -class BMD_PUBLIC IBMDStreamingDeviceNotificationCallback : public IUnknown -{ -public: - virtual HRESULT StreamingDeviceArrived (/* in */ IDeckLink* device) = 0; - virtual HRESULT StreamingDeviceRemoved (/* in */ IDeckLink* device) = 0; - virtual HRESULT StreamingDeviceModeChanged (/* in */ IDeckLink* device, /* in */ BMDStreamingDeviceMode mode) = 0; - -protected: - virtual ~IBMDStreamingDeviceNotificationCallback () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingH264InputCallback - H264 input callbacks. */ - -class BMD_PUBLIC IBMDStreamingH264InputCallback : public IUnknown -{ -public: - virtual HRESULT H264NALPacketArrived (/* in */ IBMDStreamingH264NALPacket* nalPacket) = 0; - virtual HRESULT H264AudioPacketArrived (/* in */ IBMDStreamingAudioPacket* audioPacket) = 0; - virtual HRESULT MPEG2TSPacketArrived (/* in */ IBMDStreamingMPEG2TSPacket* tsPacket) = 0; - virtual HRESULT H264VideoInputConnectorScanningChanged (void) = 0; - virtual HRESULT H264VideoInputConnectorChanged (void) = 0; - virtual HRESULT H264VideoInputModeChanged (void) = 0; - -protected: - virtual ~IBMDStreamingH264InputCallback () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingDiscovery - Installs device notifications */ - -class BMD_PUBLIC IBMDStreamingDiscovery : public IUnknown -{ -public: - virtual HRESULT InstallDeviceNotifications (/* in */ IBMDStreamingDeviceNotificationCallback* theCallback) = 0; - virtual HRESULT UninstallDeviceNotifications (void) = 0; - -protected: - virtual ~IBMDStreamingDiscovery () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingVideoEncodingMode - Represents an encoded video mode. */ - -class BMD_PUBLIC IBMDStreamingVideoEncodingMode : public IUnknown -{ -public: - virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; - virtual unsigned int GetPresetID (void) = 0; - virtual unsigned int GetSourcePositionX (void) = 0; - virtual unsigned int GetSourcePositionY (void) = 0; - virtual unsigned int GetSourceWidth (void) = 0; - virtual unsigned int GetSourceHeight (void) = 0; - virtual unsigned int GetDestWidth (void) = 0; - virtual unsigned int GetDestHeight (void) = 0; - virtual HRESULT GetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ bool* value) = 0; - virtual HRESULT GetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ int64_t* value) = 0; - virtual HRESULT GetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ double* value) = 0; - virtual HRESULT GetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ CFStringRef *value) = 0; - virtual HRESULT CreateMutableVideoEncodingMode (/* out */ IBMDStreamingMutableVideoEncodingMode** newEncodingMode) = 0; // Creates a mutable copy of the encoding mode - -protected: - virtual ~IBMDStreamingVideoEncodingMode () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingMutableVideoEncodingMode - Represents a mutable encoded video mode. */ - -class BMD_PUBLIC IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode -{ -public: - virtual HRESULT SetSourceRect (/* in */ uint32_t posX, /* in */ uint32_t posY, /* in */ uint32_t width, /* in */ uint32_t height) = 0; - virtual HRESULT SetDestSize (/* in */ uint32_t width, /* in */ uint32_t height) = 0; - virtual HRESULT SetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ bool value) = 0; - virtual HRESULT SetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ int64_t value) = 0; - virtual HRESULT SetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ double value) = 0; - virtual HRESULT SetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* in */ CFStringRef value) = 0; - -protected: - virtual ~IBMDStreamingMutableVideoEncodingMode () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingVideoEncodingModePresetIterator - Enumerates encoding mode presets */ - -class BMD_PUBLIC IBMDStreamingVideoEncodingModePresetIterator : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IBMDStreamingVideoEncodingMode** videoEncodingMode) = 0; - -protected: - virtual ~IBMDStreamingVideoEncodingModePresetIterator () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingDeviceInput - Created by QueryInterface from IDeckLink */ - -class BMD_PUBLIC IBMDStreamingDeviceInput : public IUnknown -{ -public: - - /* Input modes */ - - virtual HRESULT DoesSupportVideoInputMode (/* in */ BMDDisplayMode inputMode, /* out */ bool* result) = 0; - virtual HRESULT GetVideoInputModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0; - virtual HRESULT SetVideoInputMode (/* in */ BMDDisplayMode inputMode) = 0; - virtual HRESULT GetCurrentDetectedVideoInputMode (/* out */ BMDDisplayMode* detectedMode) = 0; - - /* Capture modes */ - - virtual HRESULT GetVideoEncodingMode (/* out */ IBMDStreamingVideoEncodingMode** encodingMode) = 0; - virtual HRESULT GetVideoEncodingModePresetIterator (/* in */ BMDDisplayMode inputMode, /* out */ IBMDStreamingVideoEncodingModePresetIterator** iterator) = 0; - virtual HRESULT DoesSupportVideoEncodingMode (/* in */ BMDDisplayMode inputMode, /* in */ IBMDStreamingVideoEncodingMode* encodingMode, /* out */ BMDStreamingEncodingSupport* result, /* out */ IBMDStreamingVideoEncodingMode** changedEncodingMode) = 0; - virtual HRESULT SetVideoEncodingMode (/* in */ IBMDStreamingVideoEncodingMode* encodingMode) = 0; - - /* Input control */ - - virtual HRESULT StartCapture (void) = 0; - virtual HRESULT StopCapture (void) = 0; - virtual HRESULT SetCallback (/* in */ IUnknown* theCallback) = 0; - -protected: - virtual ~IBMDStreamingDeviceInput () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingH264NALPacket - Represent an H.264 NAL packet */ - -class BMD_PUBLIC IBMDStreamingH264NALPacket : public IUnknown -{ -public: - virtual long GetPayloadSize (void) = 0; - virtual HRESULT GetBytes (/* out */ void** buffer) = 0; - virtual HRESULT GetBytesWithSizePrefix (/* out */ void** buffer) = 0; // Contains a 32-bit unsigned big endian size prefix - virtual HRESULT GetDisplayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* displayTime) = 0; - virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated - -protected: - virtual ~IBMDStreamingH264NALPacket () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingAudioPacket - Represents a chunk of audio data */ - -class BMD_PUBLIC IBMDStreamingAudioPacket : public IUnknown -{ -public: - virtual BMDStreamingAudioCodec GetCodec (void) = 0; - virtual long GetPayloadSize (void) = 0; - virtual HRESULT GetBytes (/* out */ void** buffer) = 0; - virtual HRESULT GetPlayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* playTime) = 0; - virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated - -protected: - virtual ~IBMDStreamingAudioPacket () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingMPEG2TSPacket - Represent an MPEG2 Transport Stream packet */ - -class BMD_PUBLIC IBMDStreamingMPEG2TSPacket : public IUnknown -{ -public: - virtual long GetPayloadSize (void) = 0; - virtual HRESULT GetBytes (/* out */ void** buffer) = 0; - -protected: - virtual ~IBMDStreamingMPEG2TSPacket () {} // call Release method to drop reference count -}; - -/* Interface IBMDStreamingH264NALParser - For basic NAL parsing */ - -class BMD_PUBLIC IBMDStreamingH264NALParser : public IUnknown -{ -public: - virtual HRESULT IsNALSequenceParameterSet (/* in */ IBMDStreamingH264NALPacket* nal) = 0; - virtual HRESULT IsNALPictureParameterSet (/* in */ IBMDStreamingH264NALPacket* nal) = 0; - virtual HRESULT GetProfileAndLevelFromSPS (/* in */ IBMDStreamingH264NALPacket* nal, /* out */ uint32_t* profileIdc, /* out */ uint32_t* profileCompatability, /* out */ uint32_t* levelIdc) = 0; - -protected: - virtual ~IBMDStreamingH264NALParser () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - IBMDStreamingDiscovery* BMD_PUBLIC CreateBMDStreamingDiscoveryInstance (void); - IBMDStreamingH264NALParser* BMD_PUBLIC CreateBMDStreamingH264NALParser (void); - -} - - -#endif /* defined(BMD_DECKLINKAPISTREAMING_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h deleted file mode 100644 index 9739cf8cbc6..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPITypes.h +++ /dev/null @@ -1,125 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPITYPES_H -#define BMD_DECKLINKAPITYPES_H - - -#ifndef BMD_CONST - #if defined(_MSC_VER) - #define BMD_CONST __declspec(selectany) static const - #else - #define BMD_CONST static const - #endif -#endif - -#ifndef BMD_PUBLIC - #define BMD_PUBLIC -#endif - -// Type Declarations - -typedef int64_t BMDTimeValue; -typedef int64_t BMDTimeScale; -typedef uint32_t BMDTimecodeBCD; -typedef uint32_t BMDTimecodeUserBits; - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkTimecode = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40}; - -/* Enum BMDTimecodeFlags - Timecode flags */ - -typedef uint32_t BMDTimecodeFlags; -enum _BMDTimecodeFlags { - bmdTimecodeFlagDefault = 0, - bmdTimecodeIsDropFrame = 1 << 0, - bmdTimecodeFieldMark = 1 << 1, - bmdTimecodeColorFrame = 1 << 2 -}; - -/* Enum BMDVideoConnection - Video connection types */ - -typedef uint32_t BMDVideoConnection; -enum _BMDVideoConnection { - bmdVideoConnectionSDI = 1 << 0, - bmdVideoConnectionHDMI = 1 << 1, - bmdVideoConnectionOpticalSDI = 1 << 2, - bmdVideoConnectionComponent = 1 << 3, - bmdVideoConnectionComposite = 1 << 4, - bmdVideoConnectionSVideo = 1 << 5 -}; - -/* Enum BMDAudioConnection - Audio connection types */ - -typedef uint32_t BMDAudioConnection; -enum _BMDAudioConnection { - bmdAudioConnectionEmbedded = 1 << 0, - bmdAudioConnectionAESEBU = 1 << 1, - bmdAudioConnectionAnalog = 1 << 2, - bmdAudioConnectionAnalogXLR = 1 << 3, - bmdAudioConnectionAnalogRCA = 1 << 4, - bmdAudioConnectionMicrophone = 1 << 5, - bmdAudioConnectionHeadphones = 1 << 6 -}; - -/* Enum BMDDeckControlConnection - Deck control connections */ - -typedef uint32_t BMDDeckControlConnection; -enum _BMDDeckControlConnection { - bmdDeckControlConnectionRS422Remote1 = 1 << 0, - bmdDeckControlConnectionRS422Remote2 = 1 << 1 -}; - -// Forward Declarations - -class IDeckLinkTimecode; - -/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ - -class BMD_PUBLIC IDeckLinkTimecode : public IUnknown -{ -public: - virtual BMDTimecodeBCD GetBCD (void) = 0; - virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; - virtual HRESULT GetString (/* out */ CFStringRef *timecode) = 0; - virtual BMDTimecodeFlags GetFlags (void) = 0; - virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0; - -protected: - virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count -}; - -/* Functions */ - -extern "C" { - - -} - - -#endif /* defined(BMD_DECKLINKAPITYPES_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h deleted file mode 100644 index a2565e04fc2..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPIVersion.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -LICENSE-START- - * ** Copyright (c) 2014 Blackmagic Design - * ** - * ** Permission is hereby granted, free of charge, to any person or organization - * ** obtaining a copy of the software and accompanying documentation covered by - * ** this license (the "Software") to use, reproduce, display, distribute, - * ** execute, and transmit the Software, and to prepare derivative works of the - * ** Software, and to permit third-parties to whom the Software is furnished to - * ** do so, all subject to the following: - * ** - * ** The copyright notices in the Software and this entire statement, including - * ** the above license grant, this restriction and the following disclaimer, - * ** must be included in all copies of the Software, in whole or in part, and - * ** all derivative works of the Software, unless such copies or derivative - * ** works are solely in the form of machine-executable object code generated by - * ** a source language processor. - * ** - * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * ** DEALINGS IN THE SOFTWARE. - * ** -LICENSE-END- - * */ - -/* DeckLinkAPIVersion.h */ - -#ifndef __DeckLink_API_Version_h__ -#define __DeckLink_API_Version_h__ - -#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 -#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" - -#endif // __DeckLink_API_Version_h__ - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h deleted file mode 100644 index e5c95e476cd..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_2.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2014 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_2_H -#define BMD_DECKLINKAPI_v10_2_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_2; -enum _BMDDeckLinkConfigurationID_v10_2 { - /* Video output flags */ - - bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = '3gbs', -}; - -/* Enum BMDAudioConnection_v10_2 - Audio connection types */ - -typedef uint32_t BMDAudioConnection_v10_2; -enum _BMDAudioConnection_v10_2 { - bmdAudioConnectionEmbedded_v10_2 = 'embd', - bmdAudioConnectionAESEBU_v10_2 = 'aes ', - bmdAudioConnectionAnalog_v10_2 = 'anlg', - bmdAudioConnectionAnalogXLR_v10_2 = 'axlr', - bmdAudioConnectionAnalogRCA_v10_2 = 'arca' -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_2_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h deleted file mode 100644 index 7e5019ca2b0..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_4.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_4_H -#define BMD_DECKLINKAPI_v10_4_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_4; -enum _BMDDeckLinkConfigurationID_v10_4 { - - /* Video output flags */ - - bmdDeckLinkConfigSingleLinkVideoOutput_v10_4 = /* 'sglo' */ 0x73676C6F, -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_4_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h deleted file mode 100644 index 4439daef7b0..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_5.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2015 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_5_H -#define BMD_DECKLINKAPI_v10_5_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID_v10_5; -enum _BMDDeckLinkAttributeID_v10_5 { - - /* Integers */ - - BMDDeckLinkDeviceBusyState_v10_5 = /* 'dbst' */ 0x64627374, -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_5_H) */ - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h deleted file mode 100644 index 7f78e53e6d1..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_6.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2016 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_6_H -#define BMD_DECKLINKAPI_v10_6_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkAttributeID_c10_6; -enum _BMDDeckLinkAttributeID_v10_6 { - - /* Flags */ - - BMDDeckLinkSupportsDesktopDisplay_v10_6 = 'extd', -}; - -typedef uint32_t BMDIdleVideoOutputOperation_v10_6; -enum _BMDIdleVideoOutputOperation_v10_6 { - bmdIdleVideoOutputDesktop_v10_6 = 'desk' -}; - - -#endif /* defined(BMD_DECKLINKAPI_v10_6_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h deleted file mode 100644 index aec8c7c2018..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v10_9.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2017 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v10_9_H -#define BMD_DECKLINKAPI_v10_9_H - -#include "DeckLinkAPI.h" - -// Type Declarations - -/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */ - -typedef uint32_t BMDDeckLinkConfigurationID_v10_9; -enum _BMDDeckLinkConfigurationID_v10_9 { - - /* Flags */ - - bmdDeckLinkConfig1080pNotPsF_v10_9 = 'fpro', -}; - -#endif /* defined(BMD_DECKLINKAPI_v10_9_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h deleted file mode 100644 index 68d0beb31af..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_1.h +++ /dev/null @@ -1,198 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ -/* DeckLinkAPI_v7_1.h */ - -#ifndef __DeckLink_API_v7_1_h__ -#define __DeckLink_API_v7_1_h__ - -#include "DeckLinkAPI.h" - -// "B28131B6-59AC-4857-B5AC-CD75D5883E2F" -#define IID_IDeckLinkDisplayModeIterator_v7_1 (REFIID){0xB2,0x81,0x31,0xB6,0x59,0xAC,0x48,0x57,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F} - -// "AF0CD6D5-8376-435E-8433-54F9DD530AC3" -#define IID_IDeckLinkDisplayMode_v7_1 (REFIID){0xAF,0x0C,0xD6,0xD5,0x83,0x76,0x43,0x5E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3} - -// "EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9" -#define IID_IDeckLinkVideoOutputCallback_v7_1 (REFIID){0xEB,0xD0,0x1A,0xFA,0xE4,0xB0,0x49,0xC6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9} - -// "7F94F328-5ED4-4E9F-9729-76A86BDC99CC" -#define IID_IDeckLinkInputCallback_v7_1 (REFIID){0x7F,0x94,0xF3,0x28,0x5E,0xD4,0x4E,0x9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC} - -// "AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5" -#define IID_IDeckLinkOutput_v7_1 (REFIID){0xAE,0x5B,0x3E,0x9B,0x4E,0x1E,0x45,0x35,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5} - -// "2B54EDEF-5B32-429F-BA11-BB990596EACD" -#define IID_IDeckLinkInput_v7_1 (REFIID){0x2B,0x54,0xED,0xEF,0x5B,0x32,0x42,0x9F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD} - -// "333F3A10-8C2D-43CF-B79D-46560FEEA1CE" -#define IID_IDeckLinkVideoFrame_v7_1 (REFIID){0x33,0x3F,0x3A,0x10,0x8C,0x2D,0x43,0xCF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE} - -// "C8B41D95-8848-40EE-9B37-6E3417FB114B" -#define IID_IDeckLinkVideoInputFrame_v7_1 (REFIID){0xC8,0xB4,0x1D,0x95,0x88,0x48,0x40,0xEE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B} - -// "C86DE4F6-A29F-42E3-AB3A-1363E29F0788" -#define IID_IDeckLinkAudioInputPacket_v7_1 (REFIID){0xC8,0x6D,0xE4,0xF6,0xA2,0x9F,0x42,0xE3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88} - -#if defined(__cplusplus) - -class IDeckLinkVideoFrame_v7_1; -class IDeckLinkDisplayModeIterator_v7_1; -class IDeckLinkDisplayMode_v7_1; -class IDeckLinkVideoInputFrame_v7_1; -class IDeckLinkAudioInputPacket_v7_1; - -class IDeckLinkDisplayModeIterator_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Next (IDeckLinkDisplayMode_v7_1* *deckLinkDisplayMode) = 0; -}; - - -class IDeckLinkDisplayMode_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetName (CFStringRef* name) = 0; - virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode () = 0; - virtual long STDMETHODCALLTYPE GetWidth () = 0; - virtual long STDMETHODCALLTYPE GetHeight () = 0; - virtual HRESULT STDMETHODCALLTYPE GetFrameRate (BMDTimeValue *frameDuration, BMDTimeScale *timeScale) = 0; -}; - -class IDeckLinkVideoOutputCallback_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted (IDeckLinkVideoFrame_v7_1* completedFrame, BMDOutputFrameCompletionResult result) = 0; -}; - -class IDeckLinkInputCallback_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived (IDeckLinkVideoInputFrame_v7_1* videoFrame, IDeckLinkAudioInputPacket_v7_1* audioPacket) = 0; -}; - -// IDeckLinkOutput_v7_1. Created by QueryInterface from IDeckLink. -class IDeckLinkOutput_v7_1 : public IUnknown -{ -public: - // Display mode predicates - virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1* *iterator) = 0; - - - // Video output - virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput (BMDDisplayMode displayMode) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput () = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator (IDeckLinkMemoryAllocator* theAllocator) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer (void* buffer, int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, IDeckLinkVideoFrame_v7_1* *outFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync (IDeckLinkVideoFrame_v7_1* theFrame) = 0; - virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame (IDeckLinkVideoFrame_v7_1* theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback (IDeckLinkVideoOutputCallback_v7_1* theCallback) = 0; - - - // Audio output - virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput () = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll () = 0; - virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll () = 0; - virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples (void* buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; - virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples () = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAudioCallback (IDeckLinkAudioOutputCallback* theCallback) = 0; - - - // Output control - virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; - virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; -}; - -// IDeckLinkInput_v7_1. Created by QueryInterface from IDeckLink. -class IDeckLinkInput_v7_1 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDDisplayModeSupport *result) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator (IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0; - - // Video input - virtual HRESULT STDMETHODCALLTYPE EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableVideoInput () = 0; - - // Audio input - virtual HRESULT STDMETHODCALLTYPE EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT STDMETHODCALLTYPE DisableAudioInput () = 0; - virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples (void* buffer, uint32_t sampleFrameCount, uint32_t *sampleFramesRead, BMDTimeValue *audioPacketTime, BMDTimeScale timeScale) = 0; - virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount (uint32_t *bufferedSampleCount) = 0; - - // Input control - virtual HRESULT STDMETHODCALLTYPE StartStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE StopStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE PauseStreams () = 0; - virtual HRESULT STDMETHODCALLTYPE SetCallback (IDeckLinkInputCallback_v7_1* theCallback) = 0; -}; - -// IDeckLinkVideoFrame_v7_1. Created by IDeckLinkOutput::CreateVideoFrame. -class IDeckLinkVideoFrame_v7_1 : public IUnknown -{ -public: - virtual long STDMETHODCALLTYPE GetWidth () = 0; - virtual long STDMETHODCALLTYPE GetHeight () = 0; - virtual long STDMETHODCALLTYPE GetRowBytes () = 0; - virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat () = 0; - virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags () = 0; - virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; -}; - -// IDeckLinkVideoInputFrame_v7_1. Provided by the IDeckLinkInput_v7_1 frame arrival callback. -class IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1 -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetFrameTime (BMDTimeValue *frameTime, BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; -}; - -// IDeckLinkAudioInputPacket_v7_1. Provided by the IDeckLinkInput_v7_1 callback. -class IDeckLinkAudioInputPacket_v7_1 : public IUnknown -{ -public: - virtual long STDMETHODCALLTYPE GetSampleCount () = 0; - virtual HRESULT STDMETHODCALLTYPE GetBytes (void* *buffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime (BMDTimeValue *packetTime, BMDTimeScale timeScale) = 0; -}; - -#endif // defined(__cplusplus) - -#endif // __DeckLink_API_v7_1_h__ - diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h deleted file mode 100644 index 430a905a976..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_3.h +++ /dev/null @@ -1,173 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_3.h */ - -#ifndef __DeckLink_API_v7_3_h__ -#define __DeckLink_API_v7_3_h__ - -#include "DeckLinkAPI.h" -#include "DeckLinkAPI_v7_6.h" - -/* Interface ID Declarations */ - -#define IID_IDeckLinkInputCallback_v7_3 /* FD6F311D-4D00-444B-9ED4-1F25B5730AD0 */ (REFIID){0xFD,0x6F,0x31,0x1D,0x4D,0x00,0x44,0x4B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0} -#define IID_IDeckLinkOutput_v7_3 /* 271C65E3-C323-4344-A30F-D908BCB20AA3 */ (REFIID){0x27,0x1C,0x65,0xE3,0xC3,0x23,0x43,0x44,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3} -#define IID_IDeckLinkInput_v7_3 /* 4973F012-9925-458C-871C-18774CDBBECB */ (REFIID){0x49,0x73,0xF0,0x12,0x99,0x25,0x45,0x8C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB} -#define IID_IDeckLinkVideoInputFrame_v7_3 /* CF317790-2894-11DE-8C30-0800200C9A66 */ (REFIID){0xCF,0x31,0x77,0x90,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66} - -/* End Interface ID Declarations */ - -#if defined(__cplusplus) - -/* Forward Declarations */ - -class IDeckLinkVideoInputFrame_v7_3; - -/* End Forward Declarations */ - - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkOutput_v7_3 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (BMDDisplayMode displayMode, BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (int32_t width, int32_t height, int32_t rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; - virtual HRESULT CreateAncillaryData (BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount, BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, uint32_t sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetHardwareReferenceClock (BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0; - -protected: - virtual ~IDeckLinkOutput_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkOutput */ - - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class IDeckLinkInputCallback_v7_3 : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_3 *videoFrame, /* in */ IDeckLinkAudioInputPacket *audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkInputCallback */ - - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkInput_v7_3 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_3 *theCallback) = 0; - -protected: - virtual ~IDeckLinkInput_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkInput */ - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame_v7_3 () {}; // call Release method to drop reference count -}; - -/* End Interface IDeckLinkVideoInputFrame */ - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_3_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h deleted file mode 100644 index a90d497a779..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_6.h +++ /dev/null @@ -1,421 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2009 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_6.h */ - -#ifndef __DeckLink_API_v7_6_h__ -#define __DeckLink_API_v7_6_h__ - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -#define IID_IDeckLinkVideoOutputCallback_v7_6 /* E763A626-4A3C-49D1-BF13-E7AD3692AE52 */ (REFIID){0xE7,0x63,0xA6,0x26,0x4A,0x3C,0x49,0xD1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52} -#define IID_IDeckLinkInputCallback_v7_6 /* 31D28EE7-88B6-4CB1-897A-CDBF79A26414 */ (REFIID){0x31,0xD2,0x8E,0xE7,0x88,0xB6,0x4C,0xB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14} -#define IID_IDeckLinkDisplayModeIterator_v7_6 /* 455D741F-1779-4800-86F5-0B5D13D79751 */ (REFIID){0x45,0x5D,0x74,0x1F,0x17,0x79,0x48,0x00,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51} -#define IID_IDeckLinkDisplayMode_v7_6 /* 87451E84-2B7E-439E-A629-4393EA4A8550 */ (REFIID){0x87,0x45,0x1E,0x84,0x2B,0x7E,0x43,0x9E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50} -#define IID_IDeckLinkOutput_v7_6 /* 29228142-EB8C-4141-A621-F74026450955 */ (REFIID){0x29,0x22,0x81,0x42,0xEB,0x8C,0x41,0x41,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55} -#define IID_IDeckLinkInput_v7_6 /* 300C135A-9F43-48E2-9906-6D7911D93CF1 */ (REFIID){0x30,0x0C,0x13,0x5A,0x9F,0x43,0x48,0xE2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1} -#define IID_IDeckLinkTimecode_v7_6 /* EFB9BCA6-A521-44F7-BD69-2332F24D9EE6 */ (REFIID){0xEF,0xB9,0xBC,0xA6,0xA5,0x21,0x44,0xF7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6} -#define IID_IDeckLinkVideoFrame_v7_6 /* A8D8238E-6B18-4196-99E1-5AF717B83D32 */ (REFIID){0xA8,0xD8,0x23,0x8E,0x6B,0x18,0x41,0x96,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32} -#define IID_IDeckLinkMutableVideoFrame_v7_6 /* 46FCEE00-B4E6-43D0-91C0-023A7FCEB34F */ (REFIID){0x46,0xFC,0xEE,0x00,0xB4,0xE6,0x43,0xD0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F} -#define IID_IDeckLinkVideoInputFrame_v7_6 /* 9A74FA41-AE9F-47AC-8CF4-01F42DD59965 */ (REFIID){0x9A,0x74,0xFA,0x41,0xAE,0x9F,0x47,0xAC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65} -#define IID_IDeckLinkScreenPreviewCallback_v7_6 /* 373F499D-4B4D-4518-AD22-6354E5A5825E */ (REFIID){0x37,0x3F,0x49,0x9D,0x4B,0x4D,0x45,0x18,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E} -#define IID_IDeckLinkCocoaScreenPreviewCallback_v7_6 /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ (REFIID){0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA} -#define IID_IDeckLinkGLScreenPreviewHelper_v7_6 /* BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA */ (REFIID){0xBA,0x57,0x5C,0xD9,0xA1,0x5E,0x49,0x7B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA} -#define IID_IDeckLinkVideoConversion_v7_6 /* 3EB504C9-F97D-40FE-A158-D407D48CB53B */ (REFIID){0x3E,0xB5,0x04,0xC9,0xF9,0x7D,0x40,0xFE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B} -#define IID_IDeckLinkConfiguration_v7_6 /* B8EAD569-B764-47F0-A73F-AE40DF6CBF10 */ (REFIID){0xB8,0xEA,0xD5,0x69,0xB7,0x64,0x47,0xF0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10} - - -#if defined(__cplusplus) - -/* Enum BMDVideoConnection - Video connection types */ - -typedef uint32_t BMDVideoConnection_v7_6; -enum _BMDVideoConnection_v7_6 { - bmdVideoConnectionSDI_v7_6 = 'sdi ', - bmdVideoConnectionHDMI_v7_6 = 'hdmi', - bmdVideoConnectionOpticalSDI_v7_6 = 'opti', - bmdVideoConnectionComponent_v7_6 = 'cpnt', - bmdVideoConnectionComposite_v7_6 = 'cmst', - bmdVideoConnectionSVideo_v7_6 = 'svid' -}; - - -// Forward Declarations - -class IDeckLinkVideoOutputCallback_v7_6; -class IDeckLinkInputCallback_v7_6; -class IDeckLinkDisplayModeIterator_v7_6; -class IDeckLinkDisplayMode_v7_6; -class IDeckLinkOutput_v7_6; -class IDeckLinkInput_v7_6; -class IDeckLinkTimecode_v7_6; -class IDeckLinkVideoFrame_v7_6; -class IDeckLinkMutableVideoFrame_v7_6; -class IDeckLinkVideoInputFrame_v7_6; -class IDeckLinkScreenPreviewCallback_v7_6; -class IDeckLinkCocoaScreenPreviewCallback_v7_6; -class IDeckLinkGLScreenPreviewHelper_v7_6; -class IDeckLinkVideoConversion_v7_6; - - -/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */ - -class IDeckLinkVideoOutputCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame_v7_6 *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0; - virtual HRESULT ScheduledPlaybackHasStopped (void) = 0; - -protected: - virtual ~IDeckLinkVideoOutputCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkInputCallback - Frame arrival callback. */ - -class IDeckLinkInputCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode_v7_6 *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0; - virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame_v7_6* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0; - -protected: - virtual ~IDeckLinkInputCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */ - -class IDeckLinkDisplayModeIterator_v7_6 : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0; - -protected: - virtual ~IDeckLinkDisplayModeIterator_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkDisplayMode - represents a display mode */ - -class IDeckLinkDisplayMode_v7_6 : public IUnknown -{ -public: - virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; - virtual BMDDisplayMode GetDisplayMode (void) = 0; - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0; - virtual BMDFieldDominance GetFieldDominance (void) = 0; - -protected: - virtual ~IDeckLinkDisplayMode_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkOutput_v7_6 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkOutput_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkInput_v7_6 - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkInput_v7_6 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* out */ BMDDisplayModeSupport *result) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback_v7_6 *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */ - -class IDeckLinkTimecode_v7_6 : public IUnknown -{ -public: - virtual BMDTimecodeBCD GetBCD (void) = 0; - virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0; - virtual HRESULT GetString (/* out */ CFStringRef *timecode) = 0; - virtual BMDTimecodeFlags GetFlags (void) = 0; - -protected: - virtual ~IDeckLinkTimecode_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */ - -class IDeckLinkVideoFrame_v7_6 : public IUnknown -{ -public: - virtual long GetWidth (void) = 0; - virtual long GetHeight (void) = 0; - virtual long GetRowBytes (void) = 0; - virtual BMDPixelFormat GetPixelFormat (void) = 0; - virtual BMDFrameFlags GetFlags (void) = 0; - virtual HRESULT GetBytes (/* out */ void **buffer) = 0; - - virtual HRESULT GetTimecode (BMDTimecodeFormat format, /* out */ IDeckLinkTimecode_v7_6 **timecode) = 0; - virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; - -protected: - virtual ~IDeckLinkVideoFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */ - -class IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT SetFlags (BMDFrameFlags newFlags) = 0; - - virtual HRESULT SetTimecode (BMDTimecodeFormat format, /* in */ IDeckLinkTimecode_v7_6 *timecode) = 0; - virtual HRESULT SetTimecodeFromComponents (BMDTimecodeFormat format, uint8_t hours, uint8_t minutes, uint8_t seconds, uint8_t frames, BMDTimecodeFlags flags) = 0; - virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0; - -protected: - virtual ~IDeckLinkMutableVideoFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */ - -class IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6 -{ -public: - virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, BMDTimeScale timeScale) = 0; - virtual HRESULT GetHardwareReferenceTimestamp (BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0; - -protected: - virtual ~IDeckLinkVideoInputFrame_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */ - -class IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown -{ -public: - virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - -protected: - virtual ~IDeckLinkScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications */ - -class IDeckLinkCocoaScreenPreviewCallback_v7_6 : public IDeckLinkScreenPreviewCallback_v7_6 -{ -public: - -protected: - virtual ~IDeckLinkCocoaScreenPreviewCallback_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */ - -class IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown -{ -public: - - /* Methods must be called with OpenGL context set */ - - virtual HRESULT InitializeGL (void) = 0; - virtual HRESULT PaintGL (void) = 0; - virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0; - -protected: - virtual ~IDeckLinkGLScreenPreviewHelper_v7_6 () {}; // call Release method to drop reference count -}; - - -/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */ - -class IDeckLinkVideoConversion_v7_6 : public IUnknown -{ -public: - virtual HRESULT ConvertFrame (/* in */ IDeckLinkVideoFrame_v7_6* srcFrame, /* in */ IDeckLinkVideoFrame_v7_6* dstFrame) = 0; - -protected: - virtual ~IDeckLinkVideoConversion_v7_6 () {}; // call Release method to drop reference count -}; - -/* Interface IDeckLinkConfiguration - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkConfiguration_v7_6 : public IUnknown -{ -public: - virtual HRESULT GetConfigurationValidator (/* out */ IDeckLinkConfiguration_v7_6 **configObject) = 0; - virtual HRESULT WriteConfigurationToPreferences (void) = 0; - - /* Video Output Configuration */ - - virtual HRESULT SetVideoOutputFormat (/* in */ BMDVideoConnection_v7_6 videoOutputConnection) = 0; - virtual HRESULT IsVideoOutputActive (/* in */ BMDVideoConnection_v7_6 videoOutputConnection, /* out */ bool *active) = 0; - - virtual HRESULT SetAnalogVideoOutputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; - virtual HRESULT GetAnalogVideoOutputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; - - virtual HRESULT EnableFieldFlickerRemovalWhenPaused (/* in */ bool enable) = 0; - virtual HRESULT IsEnabledFieldFlickerRemovalWhenPaused (/* out */ bool *enabled) = 0; - - virtual HRESULT Set444And3GBpsVideoOutput (/* in */ bool enable444VideoOutput, /* in */ bool enable3GbsOutput) = 0; - virtual HRESULT Get444And3GBpsVideoOutput (/* out */ bool *is444VideoOutputEnabled, /* out */ bool *threeGbsOutputEnabled) = 0; - - virtual HRESULT SetVideoOutputConversionMode (/* in */ BMDVideoOutputConversionMode conversionMode) = 0; - virtual HRESULT GetVideoOutputConversionMode (/* out */ BMDVideoOutputConversionMode *conversionMode) = 0; - - virtual HRESULT Set_HD1080p24_to_HD1080i5994_Conversion (/* in */ bool enable) = 0; - virtual HRESULT Get_HD1080p24_to_HD1080i5994_Conversion (/* out */ bool *enabled) = 0; - - /* Video Input Configuration */ - - virtual HRESULT SetVideoInputFormat (/* in */ BMDVideoConnection_v7_6 videoInputFormat) = 0; - virtual HRESULT GetVideoInputFormat (/* out */ BMDVideoConnection_v7_6 *videoInputFormat) = 0; - - virtual HRESULT SetAnalogVideoInputFlags (/* in */ BMDAnalogVideoFlags analogVideoFlags) = 0; - virtual HRESULT GetAnalogVideoInputFlags (/* out */ BMDAnalogVideoFlags *analogVideoFlags) = 0; - - virtual HRESULT SetVideoInputConversionMode (/* in */ BMDVideoInputConversionMode conversionMode) = 0; - virtual HRESULT GetVideoInputConversionMode (/* out */ BMDVideoInputConversionMode *conversionMode) = 0; - - virtual HRESULT SetBlackVideoOutputDuringCapture (/* in */ bool blackOutInCapture) = 0; - virtual HRESULT GetBlackVideoOutputDuringCapture (/* out */ bool *blackOutInCapture) = 0; - - virtual HRESULT Set32PulldownSequenceInitialTimecodeFrame (/* in */ uint32_t aFrameTimecode) = 0; - virtual HRESULT Get32PulldownSequenceInitialTimecodeFrame (/* out */ uint32_t *aFrameTimecode) = 0; - - virtual HRESULT SetVancSourceLineMapping (/* in */ uint32_t activeLine1VANCsource, /* in */ uint32_t activeLine2VANCsource, /* in */ uint32_t activeLine3VANCsource) = 0; - virtual HRESULT GetVancSourceLineMapping (/* out */ uint32_t *activeLine1VANCsource, /* out */ uint32_t *activeLine2VANCsource, /* out */ uint32_t *activeLine3VANCsource) = 0; - - /* Audio Input Configuration */ - - virtual HRESULT SetAudioInputFormat (/* in */ BMDAudioConnection audioInputFormat) = 0; - virtual HRESULT GetAudioInputFormat (/* out */ BMDAudioConnection *audioInputFormat) = 0; -}; - - - -/* Functions */ - -extern "C" { - - IDeckLinkIterator* CreateDeckLinkIteratorInstance_v7_6 (void); - IDeckLinkGLScreenPreviewHelper_v7_6* CreateOpenGLScreenPreviewHelper_v7_6 (void); - IDeckLinkCocoaScreenPreviewCallback_v7_6* CreateCocoaScreenPreview_v7_6 (void* /* (NSView*) */ parentView); - IDeckLinkVideoConversion_v7_6* CreateVideoConversionInstance_v7_6 (void); - -}; - - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_6_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h deleted file mode 100644 index c882f61863c..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v7_9.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2010 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -/* DeckLinkAPI_v7_9.h */ - -#ifndef __DeckLink_API_v7_9_h__ -#define __DeckLink_API_v7_9_h__ - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -#define IID_IDeckLinkDeckControl_v7_9 /* A4D81043-0619-42B7-8ED6-602D29041DF7 */ (REFIID){0xA4,0xD8,0x10,0x43,0x06,0x19,0x42,0xB7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7} - - -#if defined(__cplusplus) - -// Forward Declarations - -class IDeckLinkDeckControl_v7_9; - - -/* Interface IDeckLinkDeckControl_v7_9 - Deck Control main interface */ - -class IDeckLinkDeckControl_v7_9 : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ BMDstring *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl_v7_9 () {}; // call Release method to drop reference count -}; - - -#endif // defined(__cplusplus) -#endif // __DeckLink_API_v7_9_h__ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h deleted file mode 100644 index ea061834f5a..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_0.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2011 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v8_0_H -#define BMD_DECKLINKAPI_v8_0_H - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -#define IID_IDeckLink_v8_0 /* 62BFF75D-6569-4E55-8D4D-66AA03829ABC */ (REFIID){0x62,0xBF,0xF7,0x5D,0x65,0x69,0x4E,0x55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC} -#define IID_IDeckLinkIterator_v8_0 /* 74E936FC-CC28-4A67-81A0-1E94E52D4E69 */ (REFIID){0x74,0xE9,0x36,0xFC,0xCC,0x28,0x4A,0x67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69} - -#if defined (__cplusplus) - -/* Interface IDeckLink_v8_0 - represents a DeckLink device */ - -class IDeckLink_v8_0 : public IUnknown -{ -public: - virtual HRESULT GetModelName (/* out */ CFStringRef *modelName) = 0; -}; - -/* Interface IDeckLinkIterator_v8_0 - enumerates installed DeckLink hardware */ - -class IDeckLinkIterator_v8_0 : public IUnknown -{ -public: - virtual HRESULT Next (/* out */ IDeckLink_v8_0 **deckLinkInstance) = 0; -}; - -extern "C" { - IDeckLinkIterator_v8_0* CreateDeckLinkIteratorInstance_v8_0 (void); -}; - - -#endif // defined __cplusplus - -#endif /* defined(BMD_DECKLINKAPI_v8_0_H) */ diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h deleted file mode 100644 index 0eea69532dc..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v8_1.h +++ /dev/null @@ -1,111 +0,0 @@ -/* -LICENSE-START- - ** Copyright (c) 2011 Blackmagic Design - ** - ** Permission is hereby granted, free of charge, to any person or organization - ** obtaining a copy of the software and accompanying documentation covered by - ** this license (the "Software") to use, reproduce, display, distribute, - ** execute, and transmit the Software, and to prepare derivative works of the - ** Software, and to permit third-parties to whom the Software is furnished to - ** do so, all subject to the following: - ** - ** The copyright notices in the Software and this entire statement, including - ** the above license grant, this restriction and the following disclaimer, - ** must be included in all copies of the Software, in whole or in part, and - ** all derivative works of the Software, unless such copies or derivative - ** works are solely in the form of machine-executable object code generated by - ** a source language processor. - ** - ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - ** DEALINGS IN THE SOFTWARE. - ** -LICENSE-END- - */ - -#ifndef BMD_DECKLINKAPI_v8_1_H -#define BMD_DECKLINKAPI_v8_1_H - -#include "DeckLinkAPI.h" - - -// Interface ID Declarations - -#define IID_IDeckLinkDeckControlStatusCallback_v8_1 /* E5F693C1-4283-4716-B18F-C1431521955B */ (REFIID){0xE5,0xF6,0x93,0xC1,0x42,0x83,0x47,0x16,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B} -#define IID_IDeckLinkDeckControl_v8_1 /* 522A9E39-0F3C-4742-94EE-D80DE335DA1D */ (REFIID){0x52,0x2A,0x9E,0x39,0x0F,0x3C,0x47,0x42,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D} - - -/* Enum BMDDeckControlVTRControlState_v8_1 - VTR Control state */ - -typedef uint32_t BMDDeckControlVTRControlState_v8_1; -enum _BMDDeckControlVTRControlState_v8_1 { - bmdDeckControlNotInVTRControlMode_v8_1 = 'nvcm', - bmdDeckControlVTRControlPlaying_v8_1 = 'vtrp', - bmdDeckControlVTRControlRecording_v8_1 = 'vtrr', - bmdDeckControlVTRControlStill_v8_1 = 'vtra', - bmdDeckControlVTRControlSeeking_v8_1 = 'vtrs', - bmdDeckControlVTRControlStopped_v8_1 = 'vtro' -}; - - -/* Interface IDeckLinkDeckControlStatusCallback_v8_1 - Deck control state change callback. */ - -class IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown -{ -public: - virtual HRESULT TimecodeUpdate (/* in */ BMDTimecodeBCD currentTimecode) = 0; - virtual HRESULT VTRControlStateChanged (/* in */ BMDDeckControlVTRControlState_v8_1 newState, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlEventReceived (/* in */ BMDDeckControlEvent event, /* in */ BMDDeckControlError error) = 0; - virtual HRESULT DeckControlStatusChanged (/* in */ BMDDeckControlStatusFlags flags, /* in */ uint32_t mask) = 0; - -protected: - virtual ~IDeckLinkDeckControlStatusCallback_v8_1 () {}; // call Release method to drop reference count -}; - -/* Interface IDeckLinkDeckControl_v8_1 - Deck Control main interface */ - -class IDeckLinkDeckControl_v8_1 : public IUnknown -{ -public: - virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Close (/* in */ bool standbyOn) = 0; - virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState_v8_1 *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0; - virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0; - virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeString (/* out */ CFStringRef *currentTimeCode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0; - virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0; - virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0; - virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0; - virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0; - virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0; - virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0; - virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0; - virtual HRESULT Abort (void) = 0; - virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0; - -protected: - virtual ~IDeckLinkDeckControl_v8_1 () {}; // call Release method to drop reference count -}; - - -#endif // BMD_DECKLINKAPI_v8_1_H diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h deleted file mode 100644 index ab2aa032030..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_2.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2012 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v9_2_H -#define BMD_DECKLINKAPI_v9_2_H - -#include "DeckLinkAPI.h" - - -// Interface ID Declarations - -#define IID_IDeckLinkInput_v9_2 /* 6D40EF78-28B9-4E21-990D-95BB7750A04F */ (REFIID){0x6D,0x40,0xEF,0x78,0x28,0xB9,0x4E,0x21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F} - - -#if defined(__cplusplus) - -/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkInput_v9_2 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Input */ - - virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0; - virtual HRESULT DisableVideoInput (void) = 0; - virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0; - - /* Audio Input */ - - virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0; - virtual HRESULT DisableAudioInput (void) = 0; - virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0; - - /* Input Control */ - - virtual HRESULT StartStreams (void) = 0; - virtual HRESULT StopStreams (void) = 0; - virtual HRESULT PauseStreams (void) = 0; - virtual HRESULT FlushStreams (void) = 0; - virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkInput_v9_2 () {}; // call Release method to drop reference count -}; - - -#endif // defined(__cplusplus) -#endif // BMD_DECKLINKAPI_v9_2_H diff --git a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h b/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h deleted file mode 100644 index 966c8ad7e5a..00000000000 --- a/ffmpeg/src/main/resources/decklink/macosx/DeckLinkAPI_v9_9.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -LICENSE-START- -** Copyright (c) 2013 Blackmagic Design -** -** Permission is hereby granted, free of charge, to any person or organization -** obtaining a copy of the software and accompanying documentation covered by -** this license (the "Software") to use, reproduce, display, distribute, -** execute, and transmit the Software, and to prepare derivative works of the -** Software, and to permit third-parties to whom the Software is furnished to -** do so, all subject to the following: -** -** The copyright notices in the Software and this entire statement, including -** the above license grant, this restriction and the following disclaimer, -** must be included in all copies of the Software, in whole or in part, and -** all derivative works of the Software, unless such copies or derivative -** works are solely in the form of machine-executable object code generated by -** a source language processor. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -** DEALINGS IN THE SOFTWARE. -** -LICENSE-END- -*/ - -#ifndef BMD_DECKLINKAPI_v9_9_H -#define BMD_DECKLINKAPI_v9_9_H - -#include "DeckLinkAPI.h" - -// Interface ID Declarations - -BMD_CONST REFIID IID_IDeckLinkOutput_v9_9 = /* A3EF0963-0862-44ED-92A9-EE89ABF431C7 */ {0xA3,0xEF,0x09,0x63,0x08,0x62,0x44,0xED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7}; - - -#if defined(__cplusplus) - -// Forward Declarations -class IDeckLinkOutput_v9_9; - -/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ - -class IDeckLinkOutput_v9_9 : public IUnknown -{ -public: - virtual HRESULT DoesSupportVideoMode (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoOutputFlags flags, /* out */ BMDDisplayModeSupport *result, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0; - virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0; - - virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0; - - /* Video Output */ - - virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0; - virtual HRESULT DisableVideoOutput (void) = 0; - - virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0; - virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0; - virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; - - virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0; - virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0; - virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0; - - /* Audio Output */ - - virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0; - virtual HRESULT DisableAudioOutput (void) = 0; - - virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT BeginAudioPreroll (void) = 0; - virtual HRESULT EndAudioPreroll (void) = 0; - virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0; - - virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0; - virtual HRESULT FlushBufferedAudioSamples (void) = 0; - - virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0; - - /* Output Control */ - - virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0; - virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0; - virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0; - virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0; - virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0; - - /* Hardware Timing */ - - virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0; - -protected: - virtual ~IDeckLinkOutput_v9_9 () {}; // call Release method to drop reference count -}; - -#endif // defined(__cplusplus) -#endif /* defined(BMD_DECKLINKAPI_v9_9_H) */ - diff --git a/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h b/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h deleted file mode 100644 index a2565e04fc2..00000000000 --- a/ffmpeg/src/main/resources/decklink/windows/DeckLinkAPIversion.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -LICENSE-START- - * ** Copyright (c) 2014 Blackmagic Design - * ** - * ** Permission is hereby granted, free of charge, to any person or organization - * ** obtaining a copy of the software and accompanying documentation covered by - * ** this license (the "Software") to use, reproduce, display, distribute, - * ** execute, and transmit the Software, and to prepare derivative works of the - * ** Software, and to permit third-parties to whom the Software is furnished to - * ** do so, all subject to the following: - * ** - * ** The copyright notices in the Software and this entire statement, including - * ** the above license grant, this restriction and the following disclaimer, - * ** must be included in all copies of the Software, in whole or in part, and - * ** all derivative works of the Software, unless such copies or derivative - * ** works are solely in the form of machine-executable object code generated by - * ** a source language processor. - * ** - * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * ** DEALINGS IN THE SOFTWARE. - * ** -LICENSE-END- - * */ - -/* DeckLinkAPIVersion.h */ - -#ifndef __DeckLink_API_Version_h__ -#define __DeckLink_API_Version_h__ - -#define BLACKMAGIC_DECKLINK_API_VERSION 0x0a090b00 -#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "10.9.11" - -#endif // __DeckLink_API_Version_h__ - From 2de7e0dc25a64bd78a99b00c089ab5c5e03e9d5b Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Mon, 7 May 2018 01:23:06 -0400 Subject: [PATCH 12/15] Upgraded patches to support new ffmpeg version. --- ffmpeg/decklink_common.h.patch | 6 +++--- ffmpeg/decklink_dec.cpp.patch | 6 +++--- ffmpeg/ffmpeg-decklink.patch | 16 +++++++++++++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ffmpeg/decklink_common.h.patch b/ffmpeg/decklink_common.h.patch index f7a9f5ed21c..d2e8a18d583 100644 --- a/ffmpeg/decklink_common.h.patch +++ b/ffmpeg/decklink_common.h.patch @@ -1,5 +1,5 @@ ---- ffmpeg-3.4.2/libavdevice/decklink_common.h 2018-05-05 12:28:50.632245500 -0400 -+++ ffmpeg-3.4.2/libavdevice/decklink_common2.h 2018-05-05 12:26:31.082000000 -0400 +--- ffmpeg-4.0/libavdevice/decklink_common.h 2018-04-20 06:02:57.000000000 -0400 ++++ ffmpeg-4.0/libavdevice/decklink_common2.h 2018-05-06 11:19:43.873596700 -0400 @@ -23,8 +23,6 @@ #ifndef AVDEVICE_DECKLINK_COMMON_H #define AVDEVICE_DECKLINK_COMMON_H @@ -9,7 +9,7 @@ #include "libavutil/thread.h" #include "decklink_common_c.h" -@@ -102,11 +100,7 @@ +@@ -110,11 +108,7 @@ typedef enum { DIRECTION_IN, DIRECTION_OUT} decklink_direction_t; #ifdef _WIN32 diff --git a/ffmpeg/decklink_dec.cpp.patch b/ffmpeg/decklink_dec.cpp.patch index d0e9cace0c9..125a23b19d7 100644 --- a/ffmpeg/decklink_dec.cpp.patch +++ b/ffmpeg/decklink_dec.cpp.patch @@ -1,6 +1,6 @@ ---- ffmpeg-3.4.2/libavdevice/decklink_dec.cpp 2018-02-11 19:29:06.000000000 -0500 -+++ ffmpeg-3.4.2/libavdevice/decklink_dec2.cpp 2018-04-25 01:05:05.508627400 -0400 -@@ -675,6 +675,7 @@ +--- ffmpeg-4.0/libavdevice/decklink_dec.cpp 2018-04-20 06:02:57.000000000 -0400 ++++ ffmpeg-4.0/libavdevice/decklink_dec2.cpp 2018-05-06 11:23:41.688285100 -0400 +@@ -707,6 +707,7 @@ "- Frames dropped %u\n", ctx->frameCount, ++ctx->dropped); } no_video = 1; diff --git a/ffmpeg/ffmpeg-decklink.patch b/ffmpeg/ffmpeg-decklink.patch index 654aef17a34..1ff2d0fc74f 100644 --- a/ffmpeg/ffmpeg-decklink.patch +++ b/ffmpeg/ffmpeg-decklink.patch @@ -1,6 +1,6 @@ ---- ffmpeg-3.4.2/configure 2018-02-11 19:29:18.000000000 -0500 -+++ ffmpeg-3.4.2-windows/configure 2018-03-08 23:35:16.586891700 -0500 -@@ -3087,9 +3087,9 @@ +--- ffmpeg-4.0/configure 2018-05-06 22:22:05.446265900 -0400 ++++ ffmpeg-4.0/configure2 2018-05-06 22:22:27.712484600 -0400 +@@ -3185,9 +3185,9 @@ caca_outdev_deps="libcaca" decklink_deps_any="libdl LoadLibrary" decklink_indev_deps="decklink threads" @@ -12,3 +12,13 @@ libndi_newtek_indev_deps="libndi_newtek" libndi_newtek_indev_extralibs="-lndi" libndi_newtek_outdev_deps="libndi_newtek" +@@ -5953,8 +5953,7 @@ + # these are off by default, so fail if requested and not available + enabled cuda_sdk && require cuda_sdk cuda.h cuCtxCreate -lcuda + enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +-enabled decklink && { require_header DeckLinkAPI.h && +- { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a060100" || die "ERROR: Decklink API version must be >= 10.6.1."; } } ++enabled decklink && require_header DeckLinkAPI.h + enabled libndi_newtek && require_header Processing.NDI.Lib.h + enabled frei0r && require_header frei0r.h + enabled gmp && require gmp gmp.h mpz_export -lgmp From d846d23c08581817582040f429c87bd446eeec2c Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 6 Jun 2018 00:42:42 -0400 Subject: [PATCH 13/15] Detached thread was for testing, removing. --- ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java b/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java index de44396b6e6..133b2b898a5 100644 --- a/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java +++ b/ffmpeg/src/main/java/org/bytedeco/javacpp/presets/avutil.java @@ -35,7 +35,7 @@ * @author Samuel Audet */ @Properties(target="org.bytedeco.javacpp.avutil", value={ - @Platform(define={"__STDC_CONSTANT_MACROS", "NO_JNI_DETACH_THREAD"}, cinclude={"", "", "", "", + @Platform(define="__STDC_CONSTANT_MACROS", cinclude={"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", From da5083d54af57df33516f48925284b29172fdd6c Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Thu, 7 Jun 2018 23:35:13 -0400 Subject: [PATCH 14/15] Combining patches using combinediff. --- ffmpeg/cppbuild.sh | 6 ++---- ffmpeg/decklink_common.h.patch | 23 ----------------------- ffmpeg/decklink_dec.cpp.patch | 10 ---------- ffmpeg/ffmpeg-decklink.patch | 24 ------------------------ 4 files changed, 2 insertions(+), 61 deletions(-) delete mode 100644 ffmpeg/decklink_common.h.patch delete mode 100644 ffmpeg/decklink_dec.cpp.patch delete mode 100644 ffmpeg/ffmpeg-decklink.patch diff --git a/ffmpeg/cppbuild.sh b/ffmpeg/cppbuild.sh index ce8123137b9..24f4a9af4dc 100755 --- a/ffmpeg/cppbuild.sh +++ b/ffmpeg/cppbuild.sh @@ -80,8 +80,6 @@ cd .. patch -Np1 -d $LAME < ../../lame.patch patch -Np1 -d ffmpeg-$FFMPEG_VERSION < ../../ffmpeg.patch -patch -p0 < ../../decklink_dec.cpp.patch -patch -p0 < ../../decklink_common.h.patch case $PLATFORM in android-arm) @@ -880,7 +878,7 @@ case $PLATFORM in cd ../ffmpeg-$FFMPEG_VERSION cp -R $INSTALL_PATH/../../src/main/resources/decklink/windows/* $INSTALL_PATH/include ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-decklink.patch + patch -Np1 < ../../../decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m32" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic" make -j $MAKEJ make install @@ -941,7 +939,7 @@ case $PLATFORM in cd ../ffmpeg-$FFMPEG_VERSION cp -R $INSTALL_PATH/../../src/main/resources/decklink/windows/* $INSTALL_PATH/include ENABLE="$ENABLE --enable-decklink" - patch -Np1 < ../../../ffmpeg-decklink.patch + patch -Np1 < ../../../decklink.patch PKG_CONFIG_PATH=../lib/pkgconfig/ ./configure --prefix=.. $DISABLE $ENABLE --enable-cuda --enable-cuvid --enable-nvenc --enable-libmfx --enable-w32threads --enable-indev=dshow --target-os=mingw32 --cc="gcc -m64" --extra-cflags="-I../include/" --extra-ldflags="-L../lib/" --extra-libs="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lgcc -lgcc_eh -lWs2_32 -lcrypt32 -lpthread -lz -lm -Wl,-Bdynamic" make -j $MAKEJ make install diff --git a/ffmpeg/decklink_common.h.patch b/ffmpeg/decklink_common.h.patch deleted file mode 100644 index d2e8a18d583..00000000000 --- a/ffmpeg/decklink_common.h.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- ffmpeg-4.0/libavdevice/decklink_common.h 2018-04-20 06:02:57.000000000 -0400 -+++ ffmpeg-4.0/libavdevice/decklink_common2.h 2018-05-06 11:19:43.873596700 -0400 -@@ -23,8 +23,6 @@ - #ifndef AVDEVICE_DECKLINK_COMMON_H - #define AVDEVICE_DECKLINK_COMMON_H - --#include -- - #include "libavutil/thread.h" - #include "decklink_common_c.h" - -@@ -110,11 +108,7 @@ - typedef enum { DIRECTION_IN, DIRECTION_OUT} decklink_direction_t; - - #ifdef _WIN32 --#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0a040000 --typedef unsigned long buffercount_type; --#else - typedef unsigned int buffercount_type; --#endif - IDeckLinkIterator *CreateDeckLinkIteratorInstance(void); - #else - typedef uint32_t buffercount_type; diff --git a/ffmpeg/decklink_dec.cpp.patch b/ffmpeg/decklink_dec.cpp.patch deleted file mode 100644 index 125a23b19d7..00000000000 --- a/ffmpeg/decklink_dec.cpp.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ffmpeg-4.0/libavdevice/decklink_dec.cpp 2018-04-20 06:02:57.000000000 -0400 -+++ ffmpeg-4.0/libavdevice/decklink_dec2.cpp 2018-05-06 11:23:41.688285100 -0400 -@@ -707,6 +707,7 @@ - "- Frames dropped %u\n", ctx->frameCount, ++ctx->dropped); - } - no_video = 1; -+ pkt.flags |= AV_PKT_FLAG_DISCARD; - } else { - if (no_video) { - av_log(avctx, AV_LOG_WARNING, "Frame received (#%lu) - Input returned " diff --git a/ffmpeg/ffmpeg-decklink.patch b/ffmpeg/ffmpeg-decklink.patch deleted file mode 100644 index 1ff2d0fc74f..00000000000 --- a/ffmpeg/ffmpeg-decklink.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- ffmpeg-4.0/configure 2018-05-06 22:22:05.446265900 -0400 -+++ ffmpeg-4.0/configure2 2018-05-06 22:22:27.712484600 -0400 -@@ -3185,9 +3185,9 @@ - caca_outdev_deps="libcaca" - decklink_deps_any="libdl LoadLibrary" - decklink_indev_deps="decklink threads" --decklink_indev_extralibs="-lstdc++" -+decklink_indev_extralibs="-static-libstdc++" - decklink_outdev_deps="decklink threads" --decklink_outdev_extralibs="-lstdc++" -+decklink_outdev_extralibs="-static-libstdc++" - libndi_newtek_indev_deps="libndi_newtek" - libndi_newtek_indev_extralibs="-lndi" - libndi_newtek_outdev_deps="libndi_newtek" -@@ -5953,8 +5953,7 @@ - # these are off by default, so fail if requested and not available - enabled cuda_sdk && require cuda_sdk cuda.h cuCtxCreate -lcuda - enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint --enabled decklink && { require_header DeckLinkAPI.h && -- { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a060100" || die "ERROR: Decklink API version must be >= 10.6.1."; } } -+enabled decklink && require_header DeckLinkAPI.h - enabled libndi_newtek && require_header Processing.NDI.Lib.h - enabled frei0r && require_header frei0r.h - enabled gmp && require gmp gmp.h mpz_export -lgmp From a65d1cfac2ee9210f072866f0b33a75adb0a4500 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Fri, 8 Jun 2018 21:43:55 -0400 Subject: [PATCH 15/15] Did not commit the patch. --- ffmpeg/decklink.patch | 61 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 ffmpeg/decklink.patch diff --git a/ffmpeg/decklink.patch b/ffmpeg/decklink.patch new file mode 100644 index 00000000000..e2cfa91e09b --- /dev/null +++ b/ffmpeg/decklink.patch @@ -0,0 +1,61 @@ +unchanged: +--- ffmpeg-4.0/configure 2018-05-06 22:22:05.446265900 -0400 ++++ ffmpeg-4.0/configure2 2018-05-06 22:22:27.712484600 -0400 +@@ -3185,9 +3185,9 @@ + caca_outdev_deps="libcaca" + decklink_deps_any="libdl LoadLibrary" + decklink_indev_deps="decklink threads" +-decklink_indev_extralibs="-lstdc++" ++decklink_indev_extralibs="-static-libstdc++" + decklink_outdev_deps="decklink threads" +-decklink_outdev_extralibs="-lstdc++" ++decklink_outdev_extralibs="-static-libstdc++" + libndi_newtek_indev_deps="libndi_newtek" + libndi_newtek_indev_extralibs="-lndi" + libndi_newtek_outdev_deps="libndi_newtek" +@@ -5953,8 +5953,7 @@ + # these are off by default, so fail if requested and not available + enabled cuda_sdk && require cuda_sdk cuda.h cuCtxCreate -lcuda + enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +-enabled decklink && { require_header DeckLinkAPI.h && +- { test_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a060100" || die "ERROR: Decklink API version must be >= 10.6.1."; } } ++enabled decklink && require_header DeckLinkAPI.h + enabled libndi_newtek && require_header Processing.NDI.Lib.h + enabled frei0r && require_header frei0r.h + enabled gmp && require gmp gmp.h mpz_export -lgmp +unchanged: +--- ffmpeg-4.0/libavdevice/decklink_common.h 2018-04-20 06:02:57.000000000 -0400 ++++ ffmpeg-4.0/libavdevice/decklink_common2.h 2018-05-06 11:19:43.873596700 -0400 +@@ -23,8 +23,6 @@ + #ifndef AVDEVICE_DECKLINK_COMMON_H + #define AVDEVICE_DECKLINK_COMMON_H + +-#include +- + #include "libavutil/thread.h" + #include "decklink_common_c.h" + +@@ -110,11 +108,7 @@ + typedef enum { DIRECTION_IN, DIRECTION_OUT} decklink_direction_t; + + #ifdef _WIN32 +-#if BLACKMAGIC_DECKLINK_API_VERSION < 0x0a040000 +-typedef unsigned long buffercount_type; +-#else + typedef unsigned int buffercount_type; +-#endif + IDeckLinkIterator *CreateDeckLinkIteratorInstance(void); + #else + typedef uint32_t buffercount_type; +only in patch2: +unchanged: +--- ffmpeg-4.0/libavdevice/decklink_dec.cpp 2018-04-20 06:02:57.000000000 -0400 ++++ ffmpeg-4.0/libavdevice/decklink_dec2.cpp 2018-05-06 11:23:41.688285100 -0400 +@@ -707,6 +707,7 @@ + "- Frames dropped %u\n", ctx->frameCount, ++ctx->dropped); + } + no_video = 1; ++ pkt.flags |= AV_PKT_FLAG_DISCARD; + } else { + if (no_video) { + av_log(avctx, AV_LOG_WARNING, "Frame received (#%lu) - Input returned "