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.
125 lines
5.3 KiB
CMake
125 lines
5.3 KiB
CMake
cmake_minimum_required(VERSION "2.8.0")
|
|
|
|
project(gst-plugins-vision)
|
|
|
|
# add local cmake modules
|
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
|
|
|
|
# get git version info
|
|
include(GetGitRevisionDescription)
|
|
git_describe(GIT_DESCRIBE --dirty)
|
|
|
|
# values used when registering plugins
|
|
add_definitions(-DGST_PACKAGE_VERSION="${GIT_DESCRIBE}")
|
|
add_definitions(-DGST_PACKAGE_LICENSE="LGPL")
|
|
add_definitions(-DGST_PACKAGE_ORIGIN="Unknown package origin")
|
|
add_definitions(-DGST_PACKAGE_NAME="${CMAKE_PROJECT_NAME}")
|
|
add_definitions(-DPACKAGE="${CMAKE_PROJECT_NAME} package")
|
|
|
|
# configure CPack
|
|
set(CPACK_GENERATOR "ZIP")
|
|
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
|
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
|
set(CPACK_COMPONENTS_ALL pdb Unspecified)
|
|
set(CPACK_PACKAGE_VERSION ${GIT_DESCRIBE})
|
|
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-x86_64")
|
|
else ()
|
|
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-x86")
|
|
endif ()
|
|
set(CPACK_ARCHIVE_PDB_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-pdbs")
|
|
set(CPACK_ARCHIVE_UNSPECIFIED_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}")
|
|
include(CPack)
|
|
|
|
include(MacroLogFeature)
|
|
|
|
find_package(GStreamer REQUIRED COMPONENTS base)
|
|
macro_log_feature(GSTREAMER_FOUND "GStreamer" "Required to build gst-plugins-vision" "http://gstreamer.freedesktop.org/" TRUE "1.2.0")
|
|
macro_log_feature(GSTREAMER_BASE_LIBRARY_FOUND "GStreamer base library" "Required to build most plugins" "http://gstreamer.freedesktop.org/" FALSE "1.2.0")
|
|
|
|
find_package(GStreamerPluginsBase COMPONENTS video)
|
|
macro_log_feature(GSTREAMER_VIDEO_LIBRARY_FOUND "GStreamer video library" "Required to build several video plugins" "http://gstreamer.freedesktop.org/" FALSE "1.2.0")
|
|
|
|
find_package(GLIB2 REQUIRED)
|
|
macro_log_feature(GLIB2_FOUND "GLib" "Required to build gst-plugins-vision" "http://www.gtk.org/" TRUE)
|
|
|
|
find_package(GObject REQUIRED)
|
|
macro_log_feature(GOBJECT_FOUND "GObject" "Required to build gst-plugins-vision" "http://www.gtk.org/" TRUE)
|
|
|
|
find_package(Orc REQUIRED)
|
|
macro_log_feature(ORC_FOUND "Orc" "Required library to improve performance" "http://code.entropywave.com/orc/" TRUE)
|
|
|
|
find_package(Bitflow)
|
|
macro_log_feature(BITFLOW_FOUND "BitFlow" "Required to build BitFlow source element" "http://www.bitflow.com/" FALSE)
|
|
|
|
find_package(NIIMAQ)
|
|
macro_log_feature(NIIMAQ_FOUND "NI-IMAQ" "Required to build National Instruments IMAQ source element" "http://www.ni.com/" FALSE)
|
|
|
|
find_package(NIIMAQDX)
|
|
macro_log_feature(NIIMAQDX_FOUND "NI-IMAQdx" "Required to build National Instruments IMAQdx source element" "http://www.ni.com/" FALSE)
|
|
|
|
find_package(FreeImage)
|
|
macro_log_feature(FREEIMAGE_FOUND "FreeImage" "Required to build FreeImage plugin" "http://freeimage.sourceforge.net/" FALSE)
|
|
|
|
find_package(OpenCV)
|
|
macro_log_feature(OPENCV_FOUND "OpenCV" "Required to build sensorfx plugin" "http://opencv.willowgarage.com/" FALSE)
|
|
|
|
find_package(Aptina)
|
|
macro_log_feature(APTINA_FOUND "Aptina" "Required to build aptinasrc source element" "http://www.onsemi.com/" FALSE)
|
|
|
|
find_package(EDT)
|
|
macro_log_feature(EDT_FOUND "EDT" "Required to build EDT PDV source element" "http://www.edt.com/" FALSE)
|
|
|
|
find_package(Euresys)
|
|
macro_log_feature(EURESYS_FOUND "Euresys" "Required to build Euresys source element" "http://www.euresys.com/" FALSE)
|
|
|
|
find_package(IDSuEye)
|
|
macro_log_feature(IDSUEYE_FOUND "IDS uEye" "Required to build IDS uEye source element" "http://en.ids-imaging.com/" FALSE)
|
|
|
|
find_package(Imperx)
|
|
macro_log_feature(IMPERX_FLEX_FOUND "Imperx FrameLink Express" "Required to build Imperx FrameLink Express source element" "http://www.imperx.com/" FALSE)
|
|
|
|
find_package(ImperxSDI)
|
|
macro_log_feature(IMPERX_SDI_FOUND "Imperx HD-SDI Express" "Required to build Imperx HD-SDI Express source element" "http://www.imperx.com/" FALSE)
|
|
|
|
find_package(IOtechDaqX)
|
|
macro_log_feature(IOTECHDAQX_FOUND "IOtech DaqX" "Required to build IOtech DaqX source element" "http://www.mccdaq.com/" FALSE)
|
|
|
|
find_package(KAYA)
|
|
macro_log_feature(KAYA_FOUND "KAYA Vision Point" "Required to build KAYA source element" "http://www.kayainstruments.com/" FALSE)
|
|
|
|
find_package(Matrox)
|
|
macro_log_feature(MATROX_FOUND "Matrox MIL" "Required to build Matrox MIL source element" "http://www.matrox.com/imaging/" FALSE)
|
|
|
|
find_package(Phoenix)
|
|
macro_log_feature(PHOENIX_FOUND "Active Silicon Phoenix" "Required to build Active Silicon Phoenix source element" "http://www.activesilicon.com/" FALSE)
|
|
|
|
find_package(Pleora)
|
|
macro_log_feature(PLEORA_FOUND "Pleora eBUS" "Required to build Pleora eBUS source element" "http://www.pleora.com/" FALSE)
|
|
|
|
find_package(Sapera)
|
|
macro_log_feature(SAPERA_FOUND "Teledyne DALSA Sapera" "Required to build Teledyne DALSA Sapera source element" "http://www.teledynedalsa.com/" FALSE)
|
|
|
|
find_package(XCLIB)
|
|
macro_log_feature(XCLIB_FOUND "EPIX PIXCI" "Required to build EPIX PIXCI source element" "http://www.epixinc.com/" FALSE)
|
|
|
|
|
|
# Setup common environment
|
|
include_directories(
|
|
.
|
|
${GSTREAMER_INCLUDE_DIR}
|
|
${GLIB2_INCLUDE_DIR})
|
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
file(TO_CMAKE_PATH "${GSTREAMER_INCLUDE_DIR}/../.." PREFIX)
|
|
set(CMAKE_INSTALL_PREFIX
|
|
${PREFIX} CACHE PATH "Directory to install plugins, under lib/gstreamer-1.0" FORCE)
|
|
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
|
|
# Build the plugins
|
|
add_subdirectory(ext)
|
|
add_subdirectory(gst)
|
|
add_subdirectory(sys)
|
|
|
|
macro_display_feature_log()
|