From 4c4d05f50ca8deb525ba42e878151c28dab90f7d Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Tue, 29 Mar 2016 12:33:37 +0200 Subject: [PATCH] AJA: initial support for SDK 12.4 --- configure.ac | 16 ++++++++++++---- src/video_capture/aja.cpp | 18 ++++++++++++++++-- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 1c760beb6..1b9a39ddc 100644 --- a/configure.ac +++ b/configure.ac @@ -449,6 +449,7 @@ AC_ARG_VAR([DVS_DIRECTORY], [Path to DVS installation.]) AC_ARG_VAR([DELTACAST_DIRECTORY], [Placement of VideoMasterHD directory (Deltacast).]) AC_ARG_VAR([BLUE_LATEST_SDK], [Placement of Bluefish444 SDK.]) AC_ARG_VAR([NTV2_ROOT], [Directory to AJA NTV2 SDK (ends with ntv2projects).]) +AC_ARG_VAR([AJA_DIRECTORY], [Directory to AJA NTV2 SDK.]) # ------------------------------------------------------------------------------------------------- # X Window System @@ -885,7 +886,14 @@ AC_ARG_ENABLE(aja, [aja_req=$enableval], [aja_req=auto] ) -AJA_PATH=$NTV2_ROOT + +if test -n "$NTV2_ROOT"; then + AJA_PATH=$NTV2_ROOT/.. +fi + +if test -n "$AJA_DIRECTORY"; then + AJA_PATH=$AJA_DIRECTORY +fi AC_ARG_WITH(aja, [ --with-aja=DIR specify location of NTV2], @@ -894,15 +902,15 @@ AC_ARG_WITH(aja, if test -n "$AJA_PATH" then - AC_CHECK_FILES(${AJA_PATH}/../lib/libaja.a ${AJA_PATH}/../lib/libajastuff.a, FOUND_LIBAJA=yes, FOUND_LIBAJA=no) + AC_CHECK_FILES(${AJA_PATH}/lib/libaja.a ${AJA_PATH}/lib/libajastuff.a, FOUND_LIBAJA=yes, FOUND_LIBAJA=no) fi if test "$aja_req" != no -a "$FOUND_LIBAJA" = yes then aja=yes AJA_CXXFLAGS="-DAJALinux -DAJA_LINUX" - AJA_INC="$AJA_INC -I${AJA_PATH}/classes -I${AJA_PATH}/../ajaapi -I${AJA_PATH}/includes -I${AJA_PATH}/democlasses" - AJA_LIB="${AJA_PATH}/../lib/libaja.a ${AJA_PATH}/../lib/libajastuff.a" + AJA_INC="$AJA_INC -I${AJA_PATH}/ntv2projects/classes -I${AJA_PATH}/ajaapi -I${AJA_PATH}/ntv2projects/includes -I${AJA_PATH}/ntv2projects/democlasses" + AJA_LIB="${AJA_PATH}/lib/libaja.a ${AJA_PATH}/lib/libajastuff.a" AJA_CAP_OBJ="src/video_capture/aja.o" AC_DEFINE([HAVE_AJA], [1], [Build with AJA support]) diff --git a/src/video_capture/aja.cpp b/src/video_capture/aja.cpp index 5d21e686a..ab598b89f 100644 --- a/src/video_capture/aja.cpp +++ b/src/video_capture/aja.cpp @@ -52,7 +52,7 @@ #include "video_capture.h" #include "ajatypes.h" -#include "ntv2boardscan.h" +#include "ntv2devicescanner.h" #include "ntv2democommon.h" #include "ntv2capture.h" #include "ajastuff/common/videotypes.h" @@ -62,7 +62,7 @@ #include "ajastuff/system/thread.h" #include "ntv2utils.h" -#include "ntv2boardfeatures.h" +#include "ntv2devicefeatures.h" #define NTV2_AUDIOSIZE_MAX (401 * 1024) @@ -369,7 +369,11 @@ AJAStatus vidcap_state_aja::SetupVideo() mInputChannel = ::NTV2InputSourceToChannel (mInputSource); if (NTV2_INPUT_SOURCE_IS_SDI (mInputSource)) +#if AJA_NTV2_SDK_VERSION_BEFORE(12,4) mTimeCodeSource = ::NTV2ChannelToTimecodeSource (mInputChannel); +#else + mTimeCodeSource = ::NTV2InputSourceToTimecodeIndex(mInputSource); +#endif else if (NTV2_INPUT_SOURCE_IS_ANALOG (mInputSource)) mTimeCodeSource = NTV2_TCSOURCE_LTC1; else @@ -469,7 +473,17 @@ AJAStatus vidcap_state_aja::SetupVideo() AJAStatus vidcap_state_aja::SetupAudio (void) { // Have the audio system capture audio from the designated device input... +#if AJA_NTV2_SDK_VERSION_BEFORE(12,4) mDevice.SetAudioSystemInputSource (mAudioSystem, mInputSource); +#else + NTV2AudioSource audioSource (NTV2_AUDIO_EMBEDDED); + if (NTV2_INPUT_SOURCE_IS_HDMI (mInputSource)) + audioSource = NTV2_AUDIO_HDMI; + else if (NTV2_INPUT_SOURCE_IS_ANALOG (mInputSource)) + audioSource = NTV2_AUDIO_ANALOG; + + mDevice.SetAudioSystemInputSource (mAudioSystem, audioSource, ::NTV2ChannelToEmbeddedAudioInput(mInputChannel)); +#endif mMaxAudioChannels = ::NTV2BoardGetMaxAudioChannels (mDeviceID); mDevice.SetNumberAudioChannels (mMaxAudioChannels, NTV2InputSourceToAudioSystem(mInputSource));