gst-plugin-linescan/cmake/modules/FindImperxSDI.cmake
Joshua M. Doe 2ee4399f3f imperxsdisrc: new source element for IMPERX HD-SDI Express framegrabbers
The IMPERX SDI cards support BGR, YUY2, and a unique 10-bit YUV 4:2:2
format which is not currently supported in GStreamer. For now, we'll
unpack it to AYUV64.

This has only been tested on a ExpressCard device, but is expected to
work with all IMPERX grabbers that use this SDK.

Special attention has not been given yet to timestamping or accounting
for dropped frames.

Currently if the source is interlaced this element will deinterlace.
Another mode could be supported to push out the frames as is, with
appropriate caps to indicate interlacing mode.
2019-08-01 12:25:23 -04:00

48 lines
1.7 KiB
CMake

# - Try to find Imperx FrameLink Express
# Once done this will define
#
# IMPERX_SDI_FOUND - system has Imperx SDI
# IMPERX_SDI_INCLUDE_DIR - the Imperx SDI include directory
# IMPERX_SDI_LIBRARIES - the libraries needed to use Imperx SDI
# Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com>
# Copyright (c) 2019, United States Government, Joshua M. Doe <oss@nvl.army.mil>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if (NOT IMPERX_SDI_DIR)
# 32-bit dir on win32
file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES)
# 32-bit dir on win64
file(TO_CMAKE_PATH "$ENV{ProgramFiles(x86)}" _PROG_FILES_X86)
# 64-bit dir on win64
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" _PROG_FILES_W6432)
if (_PROG_FILES_X86)
set(_PROGFILESDIR "${_PROG_FILES_W6432}")
else ()
set(_PROGFILESDIR "${_PROG_FILES}")
endif ()
set (IMPERX_SDI_DIR "${_PROGFILESDIR}/Imperx/HD-SDI Express" CACHE PATH "Directory containing Imperx HD-SDI Express includes and libraries")
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set(_LIB_PATH "${IMPERX_SDI_DIR}/SDK/lib/x64")
else ()
set(_LIB_PATH "${IMPERX_SDI_DIR}/SDK/lib/win32")
endif ()
endif ()
find_path (IMPERX_SDI_INCLUDE_DIR VCESDI.h
PATHS
"${IMPERX_SDI_DIR}/SDK/inc"
DOC "Directory containing VCESDI.h include file")
find_library (IMPERX_SDI_LIBRARIES NAMES VCESDI
PATHS
"${_LIB_PATH}"
DOC "Imperx HD-SDI Express library to link with")
include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (IMPERX_SDI DEFAULT_MSG IMPERX_SDI_INCLUDE_DIR IMPERX_SDI_LIBRARIES)