Building the same code that had been compiling for Jetpack 5.1 now fails with the errors similar to
In file included from /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp:31:
In file included from /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/NvVideoEncoder.h:50:
In file included from /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/NvV4l2Element.h:50:
In file included from /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/NvV4l2ElementPlane.h:53:
In file included from /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/NvBuffer.h:43:
/home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h:200:37: error: field has incomplete type 'struct v4l2_h264_weight_factors'
struct v4l2_h264_weight_factors weight_factors[2];
^
/home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h:200:12: note: forward declaration of 'v4l2_h264_weight_factors'
struct v4l2_h264_weight_factors weight_factors[2];
^
/home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h:258:32: error: field has incomplete type 'struct v4l2_h264_dpb_entry'
struct v4l2_h264_dpb_entry dpb[16];
^
/home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h:258:12: note: forward declaration of 'v4l2_h264_dpb_entry'
struct v4l2_h264_dpb_entry dpb[16];
^
Inspecting /home/insectoidsombrero/nvidia/jetson6.1/usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h shows those structs indeed haven’t been defined.
This is the header file in question. As you may see, it indeed uses the structs in question without ever declaring them. Older versions of this file did contain the declarations.
So, as an additional data point – using packages from both 36.4.0-20240912212859 and 36.3.0-20240506102626 versions of multimedia API fail for the same reason. Building against 35.6.0-20240828020325 (version from JP5.1.4) works, but I’m not sure if that’d be considered compatible when ran on JP6.1.
Hello,
I have the same problem. In file v4l2_nv_extensions.txt in line 200 there is using of v4l2_h264_weight_factors, but there is no declaration before
Again, not building on Jetson device. Please see for yourself. Don’t even try to build:
wget https://repo.download.nvidia.com/jetson/common/pool/main/n/nvidia-l4t-jetson-multimedia-api/nvidia-l4t-jetson-multimedia-api_36.4.3-20250107174145_arm64.deb
dpkg-deb -x nvidia-l4t-jetson-multimedia-api_36.4.3-20250107174145_arm64.deb nvidia-l4t-jetson-multimedia-api_36.4.3-20250107174145_arm64_installed
cd nvidia-l4t-jetson-multimedia-api_36.4.3-20250107174145_arm64_installed
vi ./usr/src/jetson_multimedia_api/include/v4l2_nv_extensions.h
The header in question:
Uses v4l2_h264_weight_factors structure
Does not define v4l2_h264_weight_factors structure
Does not include any other headers
Now repeat this exercise with an earlier multimedia API package (say, for version 35.6.0-20240828020325 used in Jetpack 5.1), and you will see this is NOT the case, and v4l2_h264_weight_factors is defined before use.
In the new version, it isn’t defined anywhere (including the toolchain you link to). Please advise.