Unable to install PyNvVideoCodec

Hi,

I’m trying to install PyNvVideoCodec on a AGX Orin, but the wheel is failing to build due to an issue with cmake. I can cmake --version and python -c “from cmake import cmake” without any problems.

Has anyone seen this before? Does anyone know a fix? TIA

user@ubuntu:~$ pip install PyNvVideoCodec
Defaulting to user installation because normal site-packages is not writeable
Collecting PyNvVideoCodec
  Using cached PyNvVideoCodec-1.0.2.tar.gz (79.0 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: PyNvVideoCodec
  Building wheel for PyNvVideoCodec (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for PyNvVideoCodec (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [337 lines of output]
      
      
      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      CMake Error at CMakeLists.txt:2 (PROJECT):
        Running
      
         'ninja' '--version'
      
        failed with:
      
         No such file or directory
      
      
      -- Configuring incomplete, errors occurred!
      See also "/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - failure
      --------------------------------------------------------------------------------
      
      
      
      --------------------------------------------------------------------------------
      -- Trying 'Unix Makefiles' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      -- The C compiler identification is GNU 11.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is GNU 11.4.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Unix Makefiles' generator - success
      --------------------------------------------------------------------------------
      
      Configuring Project
        Working directory:
          /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build
        Command:
          /usr/bin/cmake /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb -G 'Unix Makefiles' --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-install/src -DPYTHON_VERSION_STRING:STRING=3.10.12 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-j1xn2r8y/overlay/local/lib/python3.10/dist-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPYTHON_LIBRARY:PATH=/usr/lib/aarch64-linux-gnu/libpython3.10.so -DPython_EXECUTABLE:PATH=/usr/bin/python3 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython_NumPy_INCLUDE_DIRS:PATH=/usr/lib/python3/dist-packages/numpy/core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython3_NumPy_INCLUDE_DIRS:PATH=/usr/lib/python3/dist-packages/numpy/core/include -DCMAKE_BUILD_TYPE:STRING=Release
      
      Not searching for unused variables given on the command line.
      -- The C compiler identification is GNU 11.4.0
      -- The CXX compiler identification is GNU 11.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found CUDAToolkit: /usr/local/cuda-12.6/include (found suitable version "12.6.68", minimum required is "11.2")
      -- Looking for pthread.h
      -- Looking for pthread.h - found
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      -- The CUDA compiler identification is NVIDIA 12.6.68
      -- Detecting CUDA compiler ABI info
      -- Detecting CUDA compiler ABI info - done
      -- Check for working CUDA compiler: /usr/local/cuda-12.6/bin/nvcc - skipped
      -- Detecting CUDA compile features
      -- Detecting CUDA compile features - done
      -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
      -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
      -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
      -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
      -- Performing Test COMPILER_HAS_DEPRECATED_ATTR
      -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
      -- Using FFMPEG_DIR=/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/external/ffmpeg
      -- Using CMAKE_SYSTEM_PROCESSOR=aarch64
      -- Link /usr/lib/aarch64-linux-gnu/libavformat.so
      -- Link /usr/lib/aarch64-linux-gnu/libavcodec.so
      -- Link /usr/lib/aarch64-linux-gnu/libswresample.so
      -- Link /usr/lib/aarch64-linux-gnu/libavutil.so
      -- HAS_BSF=
      -- Found Python3: /usr/bin/python3 (found suitable version "3.10.12", minimum required is "3.6") found components: Interpreter Development Development.Module Development.Embed
      -- Populating pybind11
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-subbuild
      [ 11%] Creating directories for 'pybind11-populate'
      [ 22%] Performing download step (download, verify and extract) for 'pybind11-populate'
      -- Downloading...
         dst='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-subbuild/pybind11-populate-prefix/src/v2.10.0.tar.gz'
         timeout='none'
         inactivity timeout='none'
      -- Using src='https://github.com/pybind/pybind11/archive/v2.10.0.tar.gz'
      -- verifying file...
             file='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-subbuild/pybind11-populate-prefix/src/v2.10.0.tar.gz'
      -- Downloading... done
      -- extracting...
           src='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-subbuild/pybind11-populate-prefix/src/v2.10.0.tar.gz'
           dst='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src'
      -- extracting... [tar xfz]
      -- extracting... [analysis]
      -- extracting... [rename]
      -- extracting... [clean up]
      -- extracting... done
      [ 33%] No update step for 'pybind11-populate'
      [ 44%] No patch step for 'pybind11-populate'
      [ 55%] No configure step for 'pybind11-populate'
      [ 66%] No build step for 'pybind11-populate'
      [ 77%] No install step for 'pybind11-populate'
      [ 88%] No test step for 'pybind11-populate'
      [100%] Completed 'pybind11-populate'
      [100%] Built target pybind11-populate
      -- pybind11 v2.10.0
      -- Performing Test HAS_FLTO
      -- Performing Test HAS_FLTO - Success
      -- *****="/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/external/ffmpeg/
      -- Populating dlpack
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/src/PyNvVideoCodec/dlpack-subbuild
      [ 11%] Creating directories for 'dlpack-populate'
      [ 22%] Performing download step (download, verify and extract) for 'dlpack-populate'
      -- Downloading...
         dst='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/src/PyNvVideoCodec/dlpack-subbuild/dlpack-populate-prefix/src/v0.8.zip'
         timeout='none'
         inactivity timeout='none'
      -- Using src='https://github.com/dmlc/dlpack/archive/refs/tags/v0.8.zip'
      -- Downloading... done
      -- extracting...
           src='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/src/PyNvVideoCodec/dlpack-subbuild/dlpack-populate-prefix/src/v0.8.zip'
           dst='/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/src/PyNvVideoCodec/dlpack'
      -- extracting... [tar xfz]
      -- extracting... [analysis]
      -- extracting... [rename]
      -- extracting... [clean up]
      -- extracting... done
      [ 33%] No update step for 'dlpack-populate'
      [ 44%] No patch step for 'dlpack-populate'
      [ 55%] No configure step for 'dlpack-populate'
      [ 66%] No build step for 'dlpack-populate'
      [ 77%] No install step for 'dlpack-populate'
      [ 88%] No test step for 'dlpack-populate'
      [100%] Completed 'dlpack-populate'
      [100%] Built target dlpack-populate
      --  downloading dlpack library /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/src/PyNvVideoCodec/dlpack
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build
      [  5%] Building CXX object src/VideoCodecSDKUtils/CMakeFiles/VideoCodecSDKUtils.dir/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp.o
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp: In destructor ‘NvDecoder::~NvDecoder()’:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:918:17: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        918 |                 CUDA_DRVAPI_CALL(cuMemFreeAsync((*(CUdeviceptr*)&pFrame), NULL));//sync on NULL stream to ensure that all work is completed before dtor
            |                 ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: note: in C++11 destructors default to ‘noexcept’
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:918:17: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        918 |                 CUDA_DRVAPI_CALL(cuMemFreeAsync((*(CUdeviceptr*)&pFrame), NULL));//sync on NULL stream to ensure that all work is completed before dtor
            |                 ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:922:17: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        922 |                 CUDA_DRVAPI_CALL(cuMemFree((CUdeviceptr)pFrame));
            |                 ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: note: in C++11 destructors default to ‘noexcept’
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:922:17: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        922 |                 CUDA_DRVAPI_CALL(cuMemFree((CUdeviceptr)pFrame));
            |                 ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:934:9: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        934 |         CUDA_DRVAPI_CALL(cuEventDestroy(m_bCUEvent));
            |         ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:54:13: note: in C++11 destructors default to ‘noexcept’
         54 |             throw NVDECException::makeNVDECException(errorLog.str(), err__, __FUNCTION__, __FILE__, __LINE__);                   \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/VideoCodecSDKUtils/helper_classes/NvCodec/NvDecoder/NvDecoder.cpp:934:9: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        934 |         CUDA_DRVAPI_CALL(cuEventDestroy(m_bCUEvent));
            |         ^~~~~~~~~~~~~~~~
      [ 11%] Building CXX object src/VideoCodecSDKUtils/CMakeFiles/VideoCodecSDKUtils.dir/helper_classes/NvCodec/NvEncoder/NvEncoder.cpp.o
      [ 17%] Building CXX object src/VideoCodecSDKUtils/CMakeFiles/VideoCodecSDKUtils.dir/helper_classes/Utils/cuvid_dlopen_unix.cpp.o
      [ 23%] Building CXX object src/VideoCodecSDKUtils/CMakeFiles/VideoCodecSDKUtils.dir/helper_classes/Utils/cuvid_dlopen_windows.cpp.o
      [ 29%] Building CUDA object src/VideoCodecSDKUtils/CMakeFiles/VideoCodecSDKUtils.dir/helper_classes/Utils/ColorSpace.cu.o
      [ 35%] Linking CXX static library libVideoCodecSDKUtils.a
      [ 35%] Built target VideoCodecSDKUtils
      [ 41%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/DLPackUtils.cpp.o
      [ 47%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/ExternalBuffer.cpp.o
      [ 52%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/PyNvVideoCodec.cpp.o
      [ 58%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/PyNvDemuxer.cpp.o
      [ 64%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/PyNvEncoder.cpp.o
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp: In member function ‘const NvEncInputFrame* PyNvEncoder::GetEncoderInput(pybind11::object)’:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:310:37: warning: ‘pybind11::detail::accessor<Policy>::operator std::enable_if_t<(std::is_same<T, pybind11::detail::accessor_policies::str_attr>::value || std::is_same<T, pybind11::detail::accessor_policies::obj_attr>::value), bool>() const [with T = pybind11::detail::accessor_policies::str_attr; Policy = pybind11::detail::accessor_policies::str_attr; std::enable_if_t<(std::is_same<T, pybind11::detail::accessor_policies::str_attr>::value || std::is_same<T, pybind11::detail::accessor_policies::obj_attr>::value), bool> = bool]’ is deprecated: Use of obj.attr(...) as bool is deprecated in favor of pybind11::hasattr(obj, ...) [-Wdeprecated-declarations]
        310 |         if (frame.attr("__dlpack__"))
            |                                     ^
      In file included from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/detail/type_caster_base.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/cast.h:15,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/attr.h:14,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/detail/class.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/pybind11.h:13,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/stl.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyCAIMemoryView.hpp:27,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyNvEncoder.hpp:27,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:26:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/pytypes.h:885:5: note: declared here
        885 |     operator enable_if_t<std::is_same<T, accessor_policies::str_attr>::value
            |     ^~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:312:48: warning: ‘pybind11::detail::accessor<Policy>::operator std::enable_if_t<(std::is_same<T, pybind11::detail::accessor_policies::str_attr>::value || std::is_same<T, pybind11::detail::accessor_policies::obj_attr>::value), bool>() const [with T = pybind11::detail::accessor_policies::str_attr; Policy = pybind11::detail::accessor_policies::str_attr; std::enable_if_t<(std::is_same<T, pybind11::detail::accessor_policies::str_attr>::value || std::is_same<T, pybind11::detail::accessor_policies::obj_attr>::value), bool> = bool]’ is deprecated: Use of obj.attr(...) as bool is deprecated in favor of pybind11::hasattr(obj, ...) [-Wdeprecated-declarations]
        312 |             if (frame.attr("__dlpack_device__"))
            |                                                ^
      In file included from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/detail/type_caster_base.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/cast.h:15,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/attr.h:14,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/detail/class.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/pybind11.h:13,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/stl.h:12,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyCAIMemoryView.hpp:27,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyNvEncoder.hpp:27,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:26:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build/_deps/pybind11-src/include/pybind11/pytypes.h:885:5: note: declared here
        885 |     operator enable_if_t<std::is_same<T, accessor_policies::str_attr>::value
            |     ^~~~~~~~
      In file included from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyNvEncoder.hpp:26,
                       from /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:26:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp: In destructor ‘PyNvEncoder::~PyNvEncoder()’:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/../VideoCodecSDKUtils/helper_classes/NvCodec/NvEncoder/NvEncoderCuda.h:44:13: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
         44 |             throw NVENCException::makeNVENCException(errorLog.str(), NV_ENC_ERR_GENERIC, __FUNCTION__, __FILE__, __LINE__);      \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:484:9: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        484 |         CUDA_DRVAPI_CALL(cuCtxDestroy(m_CUcontext));
            |         ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/../VideoCodecSDKUtils/helper_classes/NvCodec/NvEncoder/NvEncoderCuda.h:44:13: note: in C++11 destructors default to ‘noexcept’
         44 |             throw NVENCException::makeNVENCException(errorLog.str(), NV_ENC_ERR_GENERIC, __FUNCTION__, __FILE__, __LINE__);      \
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:484:9: note: in expansion of macro ‘CUDA_DRVAPI_CALL’
        484 |         CUDA_DRVAPI_CALL(cuCtxDestroy(m_CUcontext));
            |         ^~~~~~~~~~~~~~~~
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp: In lambda function:
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyNvEncoder.cpp:597:45: warning: converting to non-pointer type ‘CUdeviceptr’ {aka ‘long long unsigned int’} from NULL [-Wconversion-null]
        597 |                         CUdeviceptr dpBuf = NULL;
            |                                             ^~~~
      [ 70%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/NvDemuxer.cpp.o
      [ 76%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/PyCAIMemoryView.cpp.o
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/PyCAIMemoryView.cpp:25:9: warning: #pragma once in main file
         25 | #pragma once
            |         ^~~~
      [ 82%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/PyNvDecoder.cpp.o
      [ 88%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/src/NvEncoderClInterface.cpp.o
      [ 94%] Building CXX object src/PyNvVideoCodec/CMakeFiles/_PyNvVideoCodec.dir/__/VideoCodecSDKUtils/helper_classes/NvCodec/NvEncoder/NvEncoderCuda.cpp.o
      [100%] Linking CXX shared module _PyNvVideoCodec.cpython-310-aarch64-linux-gnu.so
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyCAIMemoryView.hpp:106:6: warning: type ‘Pixel_Format’ violates the C++ One Definition Rule [-Wodr]
        106 | enum Pixel_Format {
            |      ^
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/NvEncoderClInterface.cpp:51:6: note: an enum with different value name is defined in another translation unit
         51 | enum Pixel_Format {
            |      ^
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/inc/PyCAIMemoryView.hpp:107:5: note: name ‘Pixel_Format_UNDEFINED’ differs from name ‘UNDEFINED’ defined in another translation unit
        107 |     Pixel_Format_UNDEFINED = 0,
            |     ^
      /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/src/PyNvVideoCodec/src/NvEncoderClInterface.cpp:52:5: note: mismatching definition
         52 |     UNDEFINED = 0,
            |     ^
      lto-wrapper: warning: using serial compilation of 9 LTRANS jobs
      [100%] Built target _PyNvVideoCodec
      Install the project...
      -- Install configuration: "Release"
      -- Installing: /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-install/src/PyNvVideoCodec/_PyNvVideoCodec.cpython-310-aarch64-linux-gnu.so
      -- Set runtime path of "/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-install/src/PyNvVideoCodec/_PyNvVideoCodec.cpython-310-aarch64-linux-gnu.so" to "$ORIGIN"
      CMake Error at src/PyNvVideoCodec/cmake_install.cmake:71 (file):
        file INSTALL cannot find
        "/tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/external/ffmpeg/lib/aarch64":
        No such file or directory.
      Call Stack (most recent call first):
        src/cmake_install.cmake:52 (include)
        cmake_install.cmake:47 (include)
      
      
      gmake: *** [Makefile:100: install] Error 1
      Traceback (most recent call last):
        File "/tmp/pip-build-env-j1xn2r8y/overlay/local/lib/python3.10/dist-packages/skbuild/setuptools_wrap.py", line 668, in setup
          cmkr.make(make_args, install_target=cmake_install_target, env=env)
        File "/tmp/pip-build-env-j1xn2r8y/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 696, in make
          self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
        File "/tmp/pip-build-env-j1xn2r8y/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 741, in make_impl
          raise SKBuildError(msg)
      
      An error occurred while building with CMake.
        Command:
          /usr/bin/cmake --build . --target install --config Release --
        Install target:
          install
        Source directory:
          /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb
        Working directory:
          /tmp/pip-install-7ux78pdc/pynvvideocodec_6a30d408a5a448ebbac9f660fb0a50bb/_skbuild/linux-aarch64-3.10/cmake-build
      Please check the install target is valid and see CMake's output for more information.
      
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyNvVideoCodec
Failed to build PyNvVideoCodec
ERROR: Could not build wheels for PyNvVideoCodec, which is required to install pyproject.toml-based projects
user@ubuntu:~$ 

Hi,
PyNvVideoCodec looks to depend on Video Codec SDK. Currently the SDK is supported on dGPU platforms. Not supported on Jetson platforms. So this looks expected.

On Jetson platforms, we have gstreamer and jetson_multimedia_api for using hardware codec.

As I feared. Thanks Dane

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.