Files
punktfunk/crates/libvpl-sys/vendor/libvpl/libvpl/cmake/VPLConfig.cmake.in
T
enricobuehler 55e7f3fca9 feat(encode): native QSV backend — libvpl-sys + qsv.rs (Phases 0-3 of design/native-qsv-encoder.md)
Vendored MIT VPL dispatcher (static, trimmed tree, pin 674d015b/v2.17.0) built
via cmake+bindgen behind new feature 'qsv' (pf-encode + punktfunk-host forward).
qsv.rs: dispatcher session on the capture adapter (LUID-matched), SetHandle
D3D11, AsyncDepth=1/GopRefDist=1/VDEnc/CBR + HRD-off low-latency config,
GetSurfaceForEncode + GPU CopySubresourceRegion input (zero-copy, no readback
path), bounded sync-point poll, in-place reset with teardown escalation, no-IDR
bitrate retarget (Reset + StartNewSequence=OFF), 10-bit P010 HEVC-Main10/AV1,
HDR mastering/CLL SEI-OBU at IDR + BT.2020/PQ VSI, LTR-RFI via mfxExtRefListCtrl
(AMF slot policy port, Query-gated per codec, wire-index FrameOrder pinning).
Dispatch: native-first with ffmpeg fallback + PUNKTFUNK_QSV_FFMPEG hatch;
probes (can_encode_10bit / windows_codec_support / windows_backend_is_probed)
now answer natively for QSV.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 19:34:18 +02:00

147 lines
5.7 KiB
CMake

# ##############################################################################
# Copyright (C) Intel Corporation
#
# SPDX-License-Identifier: MIT
# ##############################################################################
# * Config file for the VPL package It defines the following variables
# VPL_<component>_FOUND VPL_IMPORTED_TARGETS
#
# VPLConfigVersion.cmake defines VPL_VERSION
option(VPL_SHARED "Use shared instead of static version of dispatcher."
@BUILD_SHARED_LIBS@)
# Initialize to default values
set(VPL_INTERFACE_VERSION @API_VERSION_MAJOR@)
get_filename_component(_vpl_config_file
"${CMAKE_CURRENT_LIST_DIR}/VPLConfig.cmake" REALPATH)
get_filename_component(_vpl_config_dir "${_vpl_config_file}" DIRECTORY)
get_filename_component(_vpl_install_prefix
"${_vpl_config_dir}/@cmake_rel_prefix@" REALPATH)
get_filename_component(VPL_LIB_DIR "${_vpl_config_dir}/@cmake_rel_libdir@"
ABSOLUTE)
get_filename_component(VPL_INCLUDE_DIR "${_vpl_config_dir}/@cmake_rel_incdir@"
ABSOLUTE)
get_filename_component(VPL_BIN_DIR "${_vpl_config_dir}/@cmake_rel_bindir@"
ABSOLUTE)
if(CMAKE_SYSTEM_NAME MATCHES Windows)
set(VPL_SHLIB_DIR ${VPL_BIN_DIR})
else()
set(VPL_SHLIB_DIR ${VPL_LIB_DIR})
endif()
if(NOT VPL_IMPORTED_TARGETS)
set(VPL_IMPORTED_TARGETS "")
endif()
if(NOT VPL_FIND_COMPONENTS)
set(VPL_FIND_COMPONENTS "dispatcher;api")
foreach(_vpl_component ${VPL_FIND_COMPONENTS})
set(VPL_FIND_REQUIRED_${_vpl_component} 1)
endforeach()
endif()
# VPL::dispatcher
set(VPL_dispatcher_FOUND 0)
get_filename_component(_dispatcher_shlib "${VPL_SHLIB_DIR}/@SHLIB_FILE_NAME@"
ABSOLUTE)
get_filename_component(_dispatcher_debug_shlib
"${VPL_SHLIB_DIR}/@SHLIB_FILE_NAME_DEBUG@" ABSOLUTE)
get_filename_component(_dispatcher_lib "${VPL_LIB_DIR}/@LIB_FILE_NAME@"
ABSOLUTE)
get_filename_component(_dispatcher_debug_lib
"${VPL_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE)
get_filename_component(_dispatcher_implib "${VPL_LIB_DIR}/@LIB_FILE_NAME@"
ABSOLUTE)
get_filename_component(_dispatcher_debug_implib
"${VPL_LIB_DIR}/@LIB_FILE_NAME_DEBUG@" ABSOLUTE)
if(TARGET VPL::dispatcher)
list(APPEND VPL_IMPORTED_TARGETS VPL::dispatcher)
set(VPL_dispatcher_FOUND 1)
else()
if(VPL_SHARED)
if(EXISTS "${_dispatcher_shlib}" OR EXISTS "${_dispatcher_debug_shlib}")
list(APPEND VPL_IMPORTED_TARGETS VPL::dispatcher)
set(VPL_dispatcher_FOUND 1)
add_library(VPL::dispatcher SHARED IMPORTED)
set_target_properties(
VPL::dispatcher
PROPERTIES IMPORTED_LOCATION_RELEASE ${_dispatcher_shlib}
IMPORTED_LOCATION_RELWITHDEBINFO ${_dispatcher_shlib}
IMPORTED_LOCATION_MINSIZEREL ${_dispatcher_shlib}
IMPORTED_LOCATION_DEBUG ${_dispatcher_debug_shlib}
IMPORTED_LOCATION_RELWITHDEBRT ${_dispatcher_debug_shlib})
if(CMAKE_SYSTEM_NAME MATCHES Windows)
set_target_properties(
VPL::dispatcher
PROPERTIES IMPORTED_IMPLIB_RELEASE ${_dispatcher_implib}
IMPORTED_IMPLIB_RELWITHDEBINFO ${_dispatcher_implib}
IMPORTED_IMPLIB_MINSIZEREL ${_dispatcher_implib}
IMPORTED_IMPLIB_DEBUG ${_dispatcher_debug_implib}
IMPORTED_IMPLIB_RELWITHDEBRT ${_dispatcher_debug_implib})
endif()
elseif(VPL_FIND_REQUIRED AND VPL_FIND_REQUIRED_dispatcher)
message(STATUS "Unable to find required VPL component: dispatcher")
set(VPL_FOUND FALSE)
endif()
else()
if(EXISTS "${_dispatcher_lib}" OR EXISTS "${_dispatcher_debug_lib}")
list(APPEND VPL_IMPORTED_TARGETS VPL::dispatcher)
set(VPL_dispatcher_FOUND 1)
add_library(VPL::dispatcher STATIC IMPORTED)
set_target_properties(
VPL::dispatcher
PROPERTIES IMPORTED_LOCATION_RELEASE ${_dispatcher_lib}
IMPORTED_LOCATION_RELWITHDEBINFO ${_dispatcher_lib}
IMPORTED_LOCATION_MINSIZEREL ${_dispatcher_lib}
IMPORTED_LOCATION_DEBUG ${_dispatcher_debug_lib}
IMPORTED_LOCATION_RELWITHDEBRT ${_dispatcher_debug_lib})
if(UNIX)
# require pthreads for loading legacy MSDK runtimes
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
target_link_libraries(VPL::dispatcher INTERFACE Threads::Threads)
endif()
target_link_libraries(VPL::dispatcher INTERFACE ${CMAKE_DL_LIBS})
elseif(VPL_FIND_REQUIRED AND VPL_FIND_REQUIRED_dispatcher)
message(STATUS "Unable to find required VPL component: dispatcher")
set(VPL_FOUND FALSE)
endif()
endif()
set_target_properties(VPL::dispatcher PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${VPL_INCLUDE_DIR}")
endif()
unset(_dispatcher_shlib)
# VPL::api
set(VPL_api_FOUND 0)
if(EXISTS ${VPL_INCLUDE_DIR})
if(NOT TARGET VPL::api)
add_library(VPL::api INTERFACE IMPORTED)
set_target_properties(VPL::api PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${VPL_INCLUDE_DIR}")
endif()
list(APPEND VPL_IMPORTED_TARGETS VPL::api)
set(VPL_api_FOUND 1)
endif()
# VPL::cppapi
set(VPL_cppapi_FOUND 0)
if(EXISTS ${VPL_INCLUDE_DIR})
if(NOT TARGET VPL::cppapi)
add_library(VPL::cppapi INTERFACE IMPORTED)
set_target_properties(VPL::cppapi PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${VPL_INCLUDE_DIR}")
endif()
list(APPEND VPL_IMPORTED_TARGETS VPL::cppapi)
set(VPL_cppapi_FOUND 1)
endif()