Skip to content

Commit 7edf916

Browse files
committed
Simplify Cmake, vendor nvcuvid headers
1 parent c240c70 commit 7edf916

File tree

5 files changed

+1751
-85
lines changed

5 files changed

+1751
-85
lines changed

src/torchcodec/_core/CMakeLists.txt

Lines changed: 6 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -123,78 +123,14 @@ function(make_torchcodec_libraries
123123
${CUDA_nppicc_LIBRARY}
124124
)
125125

126-
# Find NVIDIA Video Codec SDK library
127-
find_library(CUDA_NVCUVID_LIBRARY
128-
NAMES nvcuvid
129-
PATHS
130-
/home/nicolashug/Downloads/Video_Codec_SDK_12.2.72/Lib/linux/stubs/x86_64
131-
/usr/local/cuda/lib64
132-
/usr/local/cuda/lib
133-
${CUDA_TOOLKIT_ROOT_DIR}/lib64
134-
${CUDA_TOOLKIT_ROOT_DIR}/lib
135-
/opt/cuda/lib64
136-
/opt/cuda/lib
137-
$ENV{CUDA_PATH}/lib64
138-
$ENV{CUDA_PATH}/lib
139-
$ENV{CUDA_HOME}/lib64
140-
$ENV{CUDA_HOME}/lib
141-
/usr/lib64
142-
/usr/lib
143-
)
144-
set(CUDA_NVCUVID_LIBRARY "/home/nicolashug/Downloads/Video_Codec_SDK_12.2.72/Lib/linux/stubs/x86_64/libnvcuvid.so")
145-
146-
# Find NVIDIA Video Codec SDK headers
147-
find_path(NVCODEC_INCLUDE_DIR
148-
NAMES cuviddec.h nvcuvid.h
149-
PATHS
150-
$ENV{HOME}/Downloads/Video_Codec_SDK_12.2.72/Interface
151-
/usr/local/cuda/include
152-
${CUDA_TOOLKIT_ROOT_DIR}/include
153-
$ENV{CUDA_PATH}/include
154-
$ENV{CUDA_HOME}/include
155-
/opt/cuda/include
156-
PATH_SUFFIXES
157-
Video_Codec_SDK_12.2.72/Interface
158-
Video_Codec_SDK/Interface
159-
)
160-
161-
if(NOT CUDA_NVCUVID_LIBRARY)
162-
message(FATAL_ERROR "Cannot find libnvcuvid, you may need to manually register and download at https://developer.nvidia.com/nvidia-video-codec-sdk. Then copy libnvcuvid to cuda_toolkit_root/lib64/")
163-
endif()
164-
165-
if(NOT NVCODEC_INCLUDE_DIR)
166-
message(FATAL_ERROR "Cannot find NVIDIA Video Codec SDK headers (cuviddec.h, nvcuvid.h). Please download the NVIDIA Video Codec SDK from https://developer.nvidia.com/nvidia-video-codec-sdk and copy the headers to your CUDA include directory.")
167-
endif()
168-
169-
message(STATUS "Found NVIDIA Video Codec SDK library: ${CUDA_NVCUVID_LIBRARY}")
170-
message(STATUS "Found NVIDIA Video Codec SDK headers: ${NVCODEC_INCLUDE_DIR}")
171-
172-
# Add CUDA Driver API library (needed for cuCtxGetCurrent, etc.)
173-
find_library(CUDA_DRIVER_LIBRARY
174-
NAMES cuda
175-
PATHS
176-
/usr/local/cuda/lib64
177-
/usr/local/cuda/lib
178-
${CUDA_TOOLKIT_ROOT_DIR}/lib64
179-
${CUDA_TOOLKIT_ROOT_DIR}/lib
180-
/opt/cuda/lib64
181-
/opt/cuda/lib
182-
$ENV{CUDA_PATH}/lib64
183-
$ENV{CUDA_PATH}/lib
184-
$ENV{CUDA_HOME}/lib64
185-
$ENV{CUDA_HOME}/lib
186-
/usr/lib64
187-
/usr/lib
188-
)
189-
190-
if(NOT CUDA_DRIVER_LIBRARY)
191-
message(FATAL_ERROR "Cannot find CUDA Driver API library (libcuda.so)")
192-
endif()
126+
find_library(NVCUVID_LIBRARY NAMES nvcuvid REQUIRED)
127+
message(STATUS "Found NVCUVID library: ${NVCUVID_LIBRARY}")
193128

194-
message(STATUS "Found CUDA Driver API library: ${CUDA_DRIVER_LIBRARY}")
129+
# Add CUDA Driver library (needed for cuCtxGetCurrent, etc.)
130+
find_library(CUDA_DRIVER_LIBRARY NAMES cuda REQUIRED)
131+
message(STATUS "Found CUDA Driver library: ${CUDA_DRIVER_LIBRARY}")
195132

196-
# Add nvcuvid and cuda driver libraries to dependencies
197-
list(APPEND core_library_dependencies ${CUDA_NVCUVID_LIBRARY} ${CUDA_DRIVER_LIBRARY})
133+
list(APPEND core_library_dependencies ${NVCUVID_LIBRARY} ${CUDA_DRIVER_LIBRARY})
198134
endif()
199135

200136
make_torchcodec_sublibrary(
@@ -204,15 +140,6 @@ function(make_torchcodec_libraries
204140
"${core_library_dependencies}"
205141
)
206142

207-
# Add NVDEC include directories after target creation
208-
if(ENABLE_CUDA AND NVCODEC_INCLUDE_DIR)
209-
target_include_directories(${core_library_name}
210-
PRIVATE
211-
${NVCODEC_INCLUDE_DIR}
212-
)
213-
endif()
214-
215-
216143
# 2. Create libtorchcodec_custom_opsN.{ext}.
217144
set(custom_ops_library_name "libtorchcodec_custom_ops${ffmpeg_major_version}")
218145
set(custom_ops_sources

src/torchcodec/_core/CustomNvdecDeviceInterface.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
#include "src/torchcodec/_core/DeviceInterface.h"
1313
#include "src/torchcodec/_core/FFMPEGCommon.h"
1414

15-
// Include NVIDIA Video Codec SDK headers
16-
#include <cuviddec.h>
17-
#include <nvcuvid.h>
15+
#include "src/torchcodec/_core/nvcuvid_include/cuviddec.h"
16+
#include "src/torchcodec/_core/nvcuvid_include/nvcuvid.h"
1817

1918
extern "C" {
2019
#include <libavutil/hwcontext_cuda.h>

src/torchcodec/_core/CustomNvdecDeviceInterface.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
#include <queue>
1414
#include <unordered_map>
1515

16-
// Include NVIDIA Video Codec SDK headers
17-
#include <cuviddec.h>
18-
#include <nvcuvid.h>
16+
#include "src/torchcodec/_core/nvcuvid_include/cuviddec.h"
17+
#include "src/torchcodec/_core/nvcuvid_include/nvcuvid.h"
1918

2019
namespace facebook::torchcodec {
2120

0 commit comments

Comments
 (0)