2026-03-28 16:54:11 +11:00
|
|
|
# ANSCV — Computer Vision / Media DLL (video capture, RTSP, FFmpeg)
|
|
|
|
|
file(GLOB ANSCV_HEADERS "*.h")
|
|
|
|
|
file(GLOB ANSCV_SOURCES "*.cpp")
|
|
|
|
|
# Exclude old VideoPlayer.cpp — superseded by MediaClient/media/video_player.cpp
|
|
|
|
|
list(REMOVE_ITEM ANSCV_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/VideoPlayer.cpp")
|
|
|
|
|
|
|
|
|
|
# MediaClient sources compiled into ANSCV (from original vcxproj)
|
|
|
|
|
set(MEDIACLIENT_SOURCES
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_capture.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_capture_win.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_decoder.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_encoder.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_play.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/audio_play_win.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/avcodec_mutex.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/avi_write.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/file_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/http_flv_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/http_mjpeg_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/media_codec.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/media_parse.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/media_util.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/rtmp_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/rtsp_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/srt_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/video_decoder.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media/video_player.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/h264_rtp_rx.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/h264_util.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/h265_rtp_rx.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/h265_util.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/mjpeg_rtp_rx.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/mjpeg_tables.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp/ts_parser.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtsp/rtsp_backchannel.cpp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtsp/rtsp_cln.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_library(ANSCV SHARED ${ANSCV_HEADERS} ${ANSCV_SOURCES} ${MEDIACLIENT_SOURCES})
|
|
|
|
|
|
|
|
|
|
# MediaClient sources skip precompiled headers (they don't include ANSCV's pch.h)
|
|
|
|
|
set_source_files_properties(${MEDIACLIENT_SOURCES} PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
|
|
|
|
|
|
|
|
|
|
target_include_directories(ANSCV PUBLIC
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# MediaClient includes (referenced from original ANLS)
|
|
|
|
|
target_include_directories(ANSCV PRIVATE
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/media
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtsp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/http
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/directx
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/directx/include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/ffmpeg/include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/openssl/include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/libsrt/include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/bm
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/rtmp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/librtmp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/srt
|
2026-03-29 14:10:05 +11:00
|
|
|
${ANSLIBS_DIR}/nlohmann
|
2026-03-28 16:54:11 +11:00
|
|
|
${SHARED_INCLUDE_DIR}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(ANSCV
|
|
|
|
|
PRIVATE ANSLicensingSystem
|
|
|
|
|
PRIVATE labview
|
|
|
|
|
PRIVATE spdlog_dep
|
|
|
|
|
PRIVATE ANSLibsLoader
|
|
|
|
|
PRIVATE opencv
|
|
|
|
|
PRIVATE ffmpeg
|
|
|
|
|
PRIVATE turbojpeg
|
|
|
|
|
PRIVATE zxing
|
|
|
|
|
PRIVATE zlib_dep
|
|
|
|
|
PRIVATE CUDA::cudart_static
|
|
|
|
|
PRIVATE CUDA::cublasLt
|
|
|
|
|
PRIVATE CUDA::nvjpeg
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Platform-specific libs
|
|
|
|
|
if(WIN32)
|
|
|
|
|
target_link_directories(ANSCV PRIVATE
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/directx/lib/x64
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/openssl/lib/x64
|
|
|
|
|
${CMAKE_SOURCE_DIR}/MediaClient/libsrt/lib/x64
|
|
|
|
|
)
|
|
|
|
|
# Prebuilt MediaClient protocol libraries (built from MediaClient VS project)
|
2026-03-29 14:10:05 +11:00
|
|
|
target_link_directories(ANSCV PRIVATE "${ANSLIBS_DIR}/MediaClient/x64/Release")
|
2026-03-28 16:54:11 +11:00
|
|
|
target_link_libraries(ANSCV PRIVATE
|
|
|
|
|
RtspClientLibrary HttpFlvClientLibrary HttpMjpegClientLibrary
|
|
|
|
|
RtmpClientLibrary SrtClientLibrary
|
|
|
|
|
d3d9 d3dx9 dxva2
|
|
|
|
|
libcrypto libssl srt
|
|
|
|
|
${WIN_COMMON_LIBS}
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
target_link_libraries(ANSCV PRIVATE ${UNIX_COMMON_LIBS})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_compile_definitions(ANSCV PRIVATE
|
|
|
|
|
ANSCV_EXPORTS
|
|
|
|
|
_USRDLL
|
|
|
|
|
HT_STATIC
|
|
|
|
|
HTTPS
|
|
|
|
|
BACKCHANNEL
|
|
|
|
|
METADATA
|
|
|
|
|
REPLAY
|
|
|
|
|
OVER_HTTP
|
|
|
|
|
OVER_WEBSOCKET
|
|
|
|
|
NOMINMAX
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if(WIN32)
|
|
|
|
|
target_compile_definitions(ANSCV PRIVATE UNICODE _UNICODE __WINDOWS_OS__)
|
|
|
|
|
else()
|
|
|
|
|
target_compile_definitions(ANSCV PRIVATE __LINUX_OS__)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_precompile_headers(ANSCV PRIVATE pch.h)
|