diff --git a/subprojects/gst-plugins-bad/meson_options.txt b/subprojects/gst-plugins-bad/meson_options.txt index 683d56a2ca..91ff88a240 100644 --- a/subprojects/gst-plugins-bad/meson_options.txt +++ b/subprojects/gst-plugins-bad/meson_options.txt @@ -208,8 +208,10 @@ option('uvcgadget', type : 'feature', value : 'auto', description : 'uvc video g option('isac', type : 'feature', value : 'auto', description : 'iSAC plugin') # AJA plugin options -option('aja-sdk-dir', type : 'string', value : '', - description : 'Directory with AJA SDK, e.g. ntv2sdklinux_16.0.0.4') +option('aja-include-dir', type : 'string', value : '', + description : 'Directory where AJA NTV2 headers are located') +option('aja-lib-dir', type : 'string', value : '', + description : 'Directory where AJA NTV2 library is located') # D3D11/D3D12 HLSL library options option('d3d-hlsl-precompile', type : 'feature', value : 'auto', description : 'Enable buildtime HLSL compile for d3d11/d3d12 library/plugin') diff --git a/subprojects/gst-plugins-bad/sys/aja/gstajasrc.cpp b/subprojects/gst-plugins-bad/sys/aja/gstajasrc.cpp index 908230d23c..06f7907a13 100644 --- a/subprojects/gst-plugins-bad/sys/aja/gstajasrc.cpp +++ b/subprojects/gst-plugins-bad/sys/aja/gstajasrc.cpp @@ -1079,9 +1079,9 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { // their framebuffers/muxers, and muxers from their framebuffers for (auto iter = connections.begin(); iter != connections.end(); iter++) { if (iter->first == NTV2_XptFrameBuffer1Input || - iter->first == NTV2_XptFrameBuffer1BInput || + iter->first == NTV2_XptFrameBuffer1DS2Input || iter->first == NTV2_XptFrameBuffer2Input || - iter->first == NTV2_XptFrameBuffer2BInput || + iter->first == NTV2_XptFrameBuffer2DS2Input || iter->second == NTV2_Xpt425Mux1AYUV || iter->second == NTV2_Xpt425Mux1BYUV || iter->second == NTV2_Xpt425Mux2AYUV || @@ -1099,10 +1099,10 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { } else if (self->channel == NTV2_CHANNEL1) { for (auto iter = connections.begin(); iter != connections.end(); iter++) { if (iter->first == NTV2_XptFrameBuffer1Input || - iter->first == NTV2_XptFrameBuffer1BInput || + iter->first == NTV2_XptFrameBuffer1DS2Input || iter->first == NTV2_XptFrameBuffer1DS2Input || iter->first == NTV2_XptFrameBuffer2Input || - iter->first == NTV2_XptFrameBuffer2BInput || + iter->first == NTV2_XptFrameBuffer2DS2Input || iter->first == NTV2_XptFrameBuffer2DS2Input || iter->second == NTV2_Xpt425Mux1AYUV || iter->second == NTV2_Xpt425Mux1BYUV || @@ -1125,10 +1125,10 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { } else if (self->channel == NTV2_CHANNEL5) { for (auto iter = connections.begin(); iter != connections.end(); iter++) { if (iter->first == NTV2_XptFrameBuffer5Input || - iter->first == NTV2_XptFrameBuffer5BInput || + iter->first == NTV2_XptFrameBuffer5DS2Input || iter->first == NTV2_XptFrameBuffer5DS2Input || iter->first == NTV2_XptFrameBuffer6Input || - iter->first == NTV2_XptFrameBuffer6BInput || + iter->first == NTV2_XptFrameBuffer6DS2Input || iter->first == NTV2_XptFrameBuffer6DS2Input || iter->second == NTV2_Xpt425Mux3AYUV || iter->second == NTV2_Xpt425Mux3BYUV || @@ -1229,9 +1229,9 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { if (self->quad_mode) { if (self->input_source >= GST_AJA_INPUT_SOURCE_HDMI1 && self->input_source <= GST_AJA_INPUT_SOURCE_HDMI4) { - router.AddConnection(NTV2_XptFrameBuffer1BInput, NTV2_Xpt425Mux1BYUV); + router.AddConnection(NTV2_XptFrameBuffer1DS2Input, NTV2_Xpt425Mux1BYUV); router.AddConnection(NTV2_XptFrameBuffer2Input, NTV2_Xpt425Mux2AYUV); - router.AddConnection(NTV2_XptFrameBuffer2BInput, NTV2_Xpt425Mux2BYUV); + router.AddConnection(NTV2_XptFrameBuffer2DS2Input, NTV2_Xpt425Mux2BYUV); router.AddConnection(NTV2_Xpt425Mux1AInput, NTV2_XptHDMIIn1); router.AddConnection(NTV2_Xpt425Mux1BInput, NTV2_XptHDMIIn1Q2); @@ -1271,11 +1271,11 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { // TSI? } else { if (self->channel == NTV2_CHANNEL1) { - router.AddConnection(NTV2_XptFrameBuffer1BInput, + router.AddConnection(NTV2_XptFrameBuffer1DS2Input, NTV2_Xpt425Mux1BYUV); router.AddConnection(NTV2_XptFrameBuffer2Input, NTV2_Xpt425Mux2AYUV); - router.AddConnection(NTV2_XptFrameBuffer2BInput, + router.AddConnection(NTV2_XptFrameBuffer2DS2Input, NTV2_Xpt425Mux2BYUV); router.AddConnection(NTV2_Xpt425Mux1AInput, NTV2_XptSDIIn1); @@ -1283,11 +1283,11 @@ static gboolean gst_aja_src_configure(GstAjaSrc *self) { router.AddConnection(NTV2_Xpt425Mux2AInput, NTV2_XptSDIIn3); router.AddConnection(NTV2_Xpt425Mux2BInput, NTV2_XptSDIIn4); } else if (self->channel == NTV2_CHANNEL5) { - router.AddConnection(NTV2_XptFrameBuffer5BInput, + router.AddConnection(NTV2_XptFrameBuffer5DS2Input, NTV2_Xpt425Mux3BYUV); router.AddConnection(NTV2_XptFrameBuffer6Input, NTV2_Xpt425Mux4AYUV); - router.AddConnection(NTV2_XptFrameBuffer6BInput, + router.AddConnection(NTV2_XptFrameBuffer6DS2Input, NTV2_Xpt425Mux4BYUV); router.AddConnection(NTV2_Xpt425Mux3AInput, NTV2_XptSDIIn5); diff --git a/subprojects/gst-plugins-bad/sys/aja/meson.build b/subprojects/gst-plugins-bad/sys/aja/meson.build index e2f4dce81b..affd600244 100644 --- a/subprojects/gst-plugins-bad/sys/aja/meson.build +++ b/subprojects/gst-plugins-bad/sys/aja/meson.build @@ -5,48 +5,100 @@ if aja_option.disabled() subdir_done() endif -common_flags = [ - '-DAJALinux=1', - '-DAJA_LINUX=1', -] +common_flags = [] thread_dep = dependency('threads') rt_dep = cxx.find_library('rt', required : false) +dl_dep = cxx.find_library('dl', required : false) -aja_sdk_dir = get_option('aja-sdk-dir') -if aja_sdk_dir == '' - ajantv2_dep = dependency('libajantv2', - include_type: 'system', - required: aja_option, - allow_fallback: true, - default_options: ['warning_level=0']) - if not ajantv2_dep.found() - subdir_done() - endif - aja_includedirs = [] +ajantv2_args = [ + '-DAJALinux', + '-DAJASTATIC', + '-DAJA_LINUX', + '-DAJA_USE_CPLUSPLUS11', + '-DNDEBUG', + '-DNTV2_USE_CPLUSPLUS11', +] + +aja_include_dir = get_option('aja-include-dir') +aja_lib_dir = get_option('aja-lib-dir') + +# Try to automatically find the AJA NTV2 SDK and otherwise fall back to the subproject +found_ajantv2 = false +found_ajantv2_includes = false + +if aja_include_dir != '' + aja_include_dirs = [aja_include_dir] +elif not meson.is_cross_build() + aja_include_dirs = ['/usr/include', '/usr/local/include'] else - aja_includedirs = include_directories( - f'@aja_sdk_dir@/ajalibraries', - f'@aja_sdk_dir@/ajalibraries/ajantv2/includes', - f'@aja_sdk_dir@/ajalibraries/ajantv2/src/lin', - is_system: true, - ) + message('Cross-compiling: cannot autodetect AJA, please set the options "aja-include-dir" and "aja-lib-dir"') + aja_include_dirs = [] +endif - message(f'Looking for AJA SDK in @aja_sdk_dir@') - if not cxx.has_header('ajabase/common/videotypes.h', - include_directories: aja_includedirs, - required: aja_option) - subdir_done() +foreach dir : aja_include_dirs + message(f'Checking for AJA NTV2 headers in @dir@') + + fs = import('fs') + dir = f'@dir@/libajantv2' + if not fs.is_dir(dir) + continue endif - ajantv2_lib = cxx.find_library('ajantv2', - # If the header is found, this should also be - required : true, - dirs : [f'@aja_sdk_dir@/lib'], - ) - ajantv2_dep = declare_dependency( - dependencies: ajantv2_lib, - include_directories: aja_includedirs) + include_dir = include_directories([ + f'@dir@', + f'@dir@/ajaanc/includes', + f'@dir@/ajantv2/includes', + f'@dir@/ajantv2/src/lin', + ], + is_system : true) + + if cxx.check_header('ajantv2/includes/ntv2card.h', + args : ajantv2_args, + include_directories : include_dir) + ajantv2_include_dir = include_dir + found_ajantv2_includes = true + break + endif +endforeach + +# If provided explicitly then consider it an error to not find the headers +if aja_include_dir != '' and not found_ajantv2_includes + error(f'Did not found AJA NTV2 headers in @aja_include_dir@') +endif + +# If we found the includes, now check for the library +if found_ajantv2_includes + if aja_lib_dir == '' + ajantv2_lib = cxx.find_library('ajantv2', + # If the header is found, this should also be + required : false) + else + ajantv2_lib = cxx.find_library('ajantv2', + dirs : [aja_lib_dir], + required : true) + endif + + if ajantv2_lib.found() + found_ajantv2 = true + + libajantv2_dep = declare_dependency( + compile_args : ajantv2_args, + dependencies: ajantv2_lib, + include_directories: ajantv2_include_dir) + endif +endif + +# If the includes or the library or not found, fall back to the subproject +if not found_ajantv2 + libajantv2_dep = dependency('libajantv2', + include_type: 'system', + required: aja_option, + allow_fallback: true, + default_options: ['warning_level=0']) + if not libajantv2_dep.found() + subdir_done() + endif endif gstaja = library('gstaja', @@ -62,7 +114,7 @@ gstaja = library('gstaja', cpp_args : gst_plugins_bad_args + common_flags, include_directories : [configinc], link_args : noseh_link_args, - dependencies : [gstvideo_dep, gstaudio_dep, gstbase_dep, gst_dep, ajantv2_dep, thread_dep, rt_dep], + dependencies : [gstvideo_dep, gstaudio_dep, gstbase_dep, gst_dep, libajantv2_dep, thread_dep, rt_dep, dl_dep], install : true, install_dir : plugins_install_dir, ) diff --git a/subprojects/ntv2.wrap b/subprojects/ntv2.wrap index 57dc59acda..74d927f4c0 100644 --- a/subprojects/ntv2.wrap +++ b/subprojects/ntv2.wrap @@ -1,8 +1,8 @@ [wrap-file] -directory = ntv2-16.2-bugfix5 -source_url = https://github.com/aja-video/ntv2/archive/refs/tags/v16.2-bugfix5.tar.gz -source_filename = ntv2-16.2-bugfix5.tar.gz -source_hash = 560c798c3a43aa0cef1cba6be5adb669ec72e648c28814158eb649275efc9f88 +directory = libajantv2-ntv2_17_0_1 +source_url = https://github.com/aja-video/libajantv2/archive/refs/tags/ntv2_17_0_1.tar.gz +source_filename = libajantv2-ntv2_17_0_1.tar.gz +source_hash = a4be947e4e34dd8065b25082a681994067877966c2aaef8fbc9a25681f03ebe7 patch_directory = ntv2 [provide] diff --git a/subprojects/packagefiles/ntv2/meson.build b/subprojects/packagefiles/ntv2/meson.build index 76804c7682..92f05abf37 100644 --- a/subprojects/packagefiles/ntv2/meson.build +++ b/subprojects/packagefiles/ntv2/meson.build @@ -1,21 +1,20 @@ -project('ntv2', 'cpp', - version : '16.2-bugfix5', +project('ajantv2', ['c', 'cpp'], + version : '17.0.1', meson_version : '>= 0.54.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized', + 'c_std=c11', 'cpp_std=c++11', 'cpp_eh=none', 'cpp_rtti=false', ] ) +c = meson.get_compiler('c') cxx = meson.get_compiler('cpp') -test_cppflags = ['-Wno-non-virtual-dtor'] +test_cppflags = ['-Wno-non-virtual-dtor', '-Wno-overloaded-virtual'] -common_flags = [ - '-DAJALinux=1', - '-DAJA_LINUX=1', -] +common_flags = [] foreach cxxflag: test_cppflags if cxx.has_argument(cxxflag) common_flags += [ cxxflag ] @@ -29,136 +28,156 @@ if get_option('warning_level') == '0' ) endif +conf_data = configuration_data() +conf_data.set('AJA_NTV2_SDK_VERSION_MAJOR', '17') +conf_data.set('AJA_NTV2_SDK_VERSION_MINOR', '0') +conf_data.set('AJA_NTV2_SDK_VERSION_POINT', '1') +conf_data.set('AJA_NTV2_SDK_BUILD_NUMBER', '0') +conf_data.set('AJA_NTV2_SDK_BUILD_DATETIME', '2024-02-15T17:41:48-08:00') +conf_data.set('AJA_NTV2_SDK_BUILD_TYPE', '') +configure_file(input : 'ajantv2/includes/ntv2version.h.in', + output : 'ntv2version.h', + configuration : conf_data) + thread_dep = dependency('threads') rt_dep = cxx.find_library('rt', required : false) +dl_dep = cxx.find_library('dl', required : false) ajantv2_sources = [ - 'ajalibraries/ajaanc/src/ancillarydata.cpp', - 'ajalibraries/ajaanc/src/ancillarydatafactory.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_cea608.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_cea608_line21.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_cea608_vanc.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_cea708.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_framestatusinfo524D.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_framestatusinfo5251.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_hdr_hdr10.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_hdr_hlg.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_hdr_sdr.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_timecode.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_timecode_atc.cpp', - 'ajalibraries/ajaanc/src/ancillarydata_timecode_vitc.cpp', - 'ajalibraries/ajaanc/src/ancillarylist.cpp', - 'ajalibraries/ajabase/system/atomic.cpp', - 'ajalibraries/ajabase/common/audioutilities.cpp', - 'ajalibraries/ajabase/common/buffer.cpp', - 'ajalibraries/ajabase/common/common.cpp', - 'ajalibraries/ajabase/system/debug.cpp', - 'ajalibraries/ajabase/common/dpx_hdr.cpp', - 'ajalibraries/ajabase/common/dpxfileio.cpp', - 'ajalibraries/ajabase/system/event.cpp', - 'ajalibraries/ajabase/system/linux/eventimpl.cpp', - 'ajalibraries/ajabase/system/file_io.cpp', - 'ajalibraries/ajabase/common/guid.cpp', - 'ajalibraries/ajabase/system/info.cpp', - 'ajalibraries/ajabase/system/linux/infoimpl.cpp', - 'ajalibraries/ajabase/network/ip_socket.cpp', - 'ajalibraries/ajabase/system/lock.cpp', - 'ajalibraries/ajabase/system/linux/lockimpl.cpp', - 'ajalibraries/ajabase/system/memory.cpp', - 'ajalibraries/ajabase/common/options_popt.cpp', - 'ajalibraries/ajabase/common/performance.cpp', - 'ajalibraries/ajabase/common/pixelformat.cpp', - 'ajalibraries/ajabase/pnp/pnp.cpp', - 'ajalibraries/ajabase/pnp/linux/pnpimpl.cpp', - 'ajalibraries/ajabase/system/process.cpp', - 'ajalibraries/ajabase/system/linux/processimpl.cpp', - 'ajalibraries/ajabase/system/system.cpp', - 'ajalibraries/ajabase/system/systemtime.cpp', - 'ajalibraries/ajabase/common/testpatterngen.cpp', - 'ajalibraries/ajabase/system/thread.cpp', - 'ajalibraries/ajabase/system/linux/threadimpl.cpp', - 'ajalibraries/ajabase/common/timebase.cpp', - 'ajalibraries/ajabase/common/timecode.cpp', - 'ajalibraries/ajabase/common/timecodeburn.cpp', - 'ajalibraries/ajabase/common/timer.cpp', - 'ajalibraries/ajabase/network/udp_socket.cpp', - 'ajalibraries/ajabase/common/videoutilities.cpp', - 'ajalibraries/ajabase/common/wavewriter.cpp', - 'ajalibraries/ajabase/persistence/persistence.cpp', - 'ajalibraries/ajantv2/src/ntv2audio.cpp', - 'ajalibraries/ajantv2/src/ntv2anc.cpp', - 'ajalibraries/ajantv2/src/ntv2autocirculate.cpp', - 'ajalibraries/ajantv2/src/ntv2bitfile.cpp', - 'ajalibraries/ajantv2/src/ntv2bitfilemanager.cpp', - 'ajalibraries/ajantv2/src/ntv2card.cpp', - 'ajalibraries/ajantv2/src/ntv2config2022.cpp', - 'ajalibraries/ajantv2/src/ntv2config2110.cpp', - 'ajalibraries/ajantv2/src/ntv2configts2022.cpp', - 'ajalibraries/ajantv2/src/ntv2csclut.cpp', - 'ajalibraries/ajantv2/src/ntv2cscmatrix.cpp', - 'ajalibraries/ajantv2/src/ntv2debug.cpp', - 'ajalibraries/ajantv2/src/ntv2devicefeatures.cpp', - 'ajalibraries/ajantv2/src/ntv2devicescanner.cpp', - 'ajalibraries/ajantv2/src/ntv2discover.cpp', - 'ajalibraries/ajantv2/src/ntv2dma.cpp', - 'ajalibraries/ajantv2/src/ntv2dynamicdevice.cpp', - 'ajalibraries/ajantv2/src/ntv2hdmi.cpp', - 'ajalibraries/ajantv2/src/ntv2hevc.cpp', - 'ajalibraries/ajantv2/src/ntv2driverinterface.cpp', - 'ajalibraries/ajantv2/src/ntv2enhancedcsc.cpp', - 'ajalibraries/ajantv2/src/ntv2formatdescriptor.cpp', - 'ajalibraries/ajantv2/src/ntv2interrupts.cpp', - 'ajalibraries/ajantv2/src/ntv2konaflashprogram.cpp', - 'ajalibraries/ajantv2/src/lin/ntv2linuxdriverinterface.cpp', - 'ajalibraries/ajantv2/src/ntv2mailbox.cpp', - 'ajalibraries/ajantv2/src/ntv2mbcontroller.cpp', - 'ajalibraries/ajantv2/src/ntv2mcsfile.cpp', - 'ajalibraries/ajantv2/src/ntv2nubaccess.cpp', - 'ajalibraries/ajantv2/src/ntv2nubpktcom.cpp', - 'ajalibraries/ajantv2/src/ntv2publicinterface.cpp', - 'ajalibraries/ajantv2/src/ntv2register.cpp', - 'ajalibraries/ajantv2/src/ntv2registerexpert.cpp', - 'ajalibraries/ajantv2/src/ntv2resample.cpp', - 'ajalibraries/ajantv2/src/ntv2routingexpert.cpp', - 'ajalibraries/ajantv2/src/ntv2rp188.cpp', - 'ajalibraries/ajantv2/src/ntv2serialcontrol.cpp', - 'ajalibraries/ajantv2/src/ntv2signalrouter.cpp', - 'ajalibraries/ajantv2/src/ntv2spiinterface.cpp', - 'ajalibraries/ajantv2/src/ntv2subscriptions.cpp', - 'ajalibraries/ajantv2/src/ntv2supportlogger.cpp', - 'ajalibraries/ajantv2/src/ntv2transcode.cpp', - 'ajalibraries/ajantv2/src/ntv2utf8.cpp', - 'ajalibraries/ajantv2/src/ntv2utils.cpp', - 'ajalibraries/ajantv2/src/ntv2verticalfilter.cpp', - 'ajalibraries/ajantv2/src/ntv2vpid.cpp', - 'ajalibraries/ajantv2/src/ntv2vpidfromspec.cpp', - 'ajalibraries/ajantv2/src/ntv2task.cpp', - 'ajalibraries/ajantv2/src/ntv2testpatterngen.cpp', + 'ajaanc/src/ancillarydata.cpp', + 'ajaanc/src/ancillarydatafactory.cpp', + 'ajaanc/src/ancillarydata_cea608.cpp', + 'ajaanc/src/ancillarydata_cea608_line21.cpp', + 'ajaanc/src/ancillarydata_cea608_vanc.cpp', + 'ajaanc/src/ancillarydata_cea708.cpp', + 'ajaanc/src/ancillarydata_framestatusinfo524D.cpp', + 'ajaanc/src/ancillarydata_framestatusinfo5251.cpp', + 'ajaanc/src/ancillarydata_hdr_hdr10.cpp', + 'ajaanc/src/ancillarydata_hdr_hlg.cpp', + 'ajaanc/src/ancillarydata_hdr_sdr.cpp', + 'ajaanc/src/ancillarydata_timecode.cpp', + 'ajaanc/src/ancillarydata_timecode_atc.cpp', + 'ajaanc/src/ancillarydata_timecode_vitc.cpp', + 'ajaanc/src/ancillarylist.cpp', + 'ajabase/common/audioutilities.cpp', + 'ajabase/common/buffer.cpp', + 'ajabase/common/commandline.cpp', + 'ajabase/common/common.cpp', + 'ajabase/common/dpxfileio.cpp', + 'ajabase/common/dpx_hdr.cpp', + 'ajabase/common/guid.cpp', + 'ajabase/common/options_popt.cpp', + 'ajabase/common/performance.cpp', + 'ajabase/common/pixelformat.cpp', + 'ajabase/common/timebase.cpp', + 'ajabase/common/timecode.cpp', + 'ajabase/common/timecodeburn.cpp', + 'ajabase/common/timer.cpp', + 'ajabase/common/variant.cpp', + 'ajabase/common/videoutilities.cpp', + 'ajabase/common/wavewriter.cpp', + 'ajabase/network/ip_socket.cpp', + 'ajabase/network/network.cpp', + 'ajabase/network/tcp_socket.cpp', + 'ajabase/network/udp_socket.cpp', + 'ajabase/persistence/persistence.cpp', + 'ajabase/persistence/sqlite3.c', + 'ajabase/pnp/pnp.cpp', + 'ajabase/system/atomic.cpp', + 'ajabase/system/debug.cpp', + 'ajabase/system/diskstatus.cpp', + 'ajabase/system/event.cpp', + 'ajabase/system/file_io.cpp', + 'ajabase/system/info.cpp', + 'ajabase/system/lock.cpp', + 'ajabase/system/log.cpp', + 'ajabase/system/memory.cpp', + 'ajabase/system/process.cpp', + 'ajabase/system/system.cpp', + 'ajabase/system/systemtime.cpp', + 'ajabase/system/thread.cpp', + 'ajabase/pnp/linux/pnpimpl.cpp', + 'ajabase/system/linux/eventimpl.cpp', + 'ajabase/system/linux/infoimpl.cpp', + 'ajabase/system/linux/lockimpl.cpp', + 'ajabase/system/linux/processimpl.cpp', + 'ajabase/system/linux/threadimpl.cpp', + 'ajantv2/src/ntv2anc.cpp', + 'ajantv2/src/ntv2audio.cpp', + 'ajantv2/src/ntv2autocirculate.cpp', + 'ajantv2/src/ntv2bitfile.cpp', + 'ajantv2/src/ntv2bitfilemanager.cpp', + 'ajantv2/src/ntv2card.cpp', + 'ajantv2/src/ntv2config2022.cpp', + 'ajantv2/src/ntv2config2110.cpp', + 'ajantv2/src/ntv2configts2022.cpp', + 'ajantv2/src/ntv2csclut.cpp', + 'ajantv2/src/ntv2cscmatrix.cpp', + 'ajantv2/src/ntv2debug.cpp', + 'ajantv2/src/ntv2devicefeatures.cpp', + 'ajantv2/src/ntv2devicefeatures.hpp', + 'ajantv2/src/ntv2devicescanner.cpp', + 'ajantv2/src/ntv2dma.cpp', + 'ajantv2/src/ntv2driverinterface.cpp', + 'ajantv2/src/ntv2dynamicdevice.cpp', + 'ajantv2/src/ntv2enhancedcsc.cpp', + 'ajantv2/src/ntv2formatdescriptor.cpp', + 'ajantv2/src/ntv2hdmi.cpp', + 'ajantv2/src/ntv2hevc.cpp', + 'ajantv2/src/ntv2interrupts.cpp', + 'ajantv2/src/ntv2konaflashprogram.cpp', + 'ajantv2/src/ntv2mailbox.cpp', + 'ajantv2/src/ntv2mbcontroller.cpp', + 'ajantv2/src/ntv2mcsfile.cpp', + 'ajantv2/src/ntv2nubaccess.cpp', + 'ajantv2/src/ntv2publicinterface.cpp', + 'ajantv2/src/ntv2regconv.cpp', + 'ajantv2/src/ntv2register.cpp', + 'ajantv2/src/ntv2registerexpert.cpp', + 'ajantv2/src/ntv2regroute.cpp', + 'ajantv2/src/ntv2regvpid.cpp', + 'ajantv2/src/ntv2resample.cpp', + 'ajantv2/src/ntv2routingexpert.cpp', + 'ajantv2/src/ntv2rp188.cpp', + 'ajantv2/src/ntv2serialcontrol.cpp', + 'ajantv2/src/ntv2signalrouter.cpp', + 'ajantv2/src/ntv2spiinterface.cpp', + 'ajantv2/src/ntv2stream.cpp', + 'ajantv2/src/ntv2subscriptions.cpp', + 'ajantv2/src/ntv2supportlogger.cpp', + 'ajantv2/src/ntv2task.cpp', + 'ajantv2/src/ntv2testpatterngen.cpp', + 'ajantv2/src/ntv2transcode.cpp', + 'ajantv2/src/ntv2utf8.cpp', + 'ajantv2/src/ntv2utils.cpp', + 'ajantv2/src/ntv2version.cpp', + 'ajantv2/src/ntv2verticalfilter.cpp', + 'ajantv2/src/ntv2vpid.cpp', + 'ajantv2/src/ntv2vpidfromspec.cpp', + 'ajantv2/src/lin/ntv2linuxdriverinterface.cpp', ] ajantv2_args = [ - '-D_REENTRANT', - '-DAJASTATIC', '-DAJALinux', + '-DAJASTATIC', '-DAJA_LINUX', - '-D_LARGEFILE_SOURCE', - '-D_LARGEFILE64_SOURCE', - '-D_FILE_OFFSET_BITS=64', + '-DAJA_USE_CPLUSPLUS11', + '-DNDEBUG', + '-DNTV2_USE_CPLUSPLUS11', ] ajantv2_inc = include_directories( - 'ajalibraries/ajaanc/includes', - 'ajalibraries/ajantv2/includes', - 'ajalibraries/ajantv2/src', - 'ajalibraries/ajantv2/src/lin', - 'ajalibraries', - 'ajalibraries/ajabase', + '.', + 'ajaanc/includes', + 'ajantv2/includes', + 'ajantv2/src/lin', ) libajantv2 = static_library( 'libajantv2', sources: ajantv2_sources, - cpp_args: ajantv2_args, + dependencies : [thread_dep, rt_dep, dl_dep], + cpp_args: [ajantv2_args, common_flags], include_directories: ajantv2_inc, pic: true, override_options: ['cpp_eh=default', 'werror=false'], @@ -166,6 +185,7 @@ libajantv2 = static_library( ) libajantv2_dep = declare_dependency( + compile_args : ajantv2_args, link_with: libajantv2, include_directories: ajantv2_inc, )