NVIDIA-ISAAC-ROS / NVIDIA-ISAAC-ROS/isaac_ros_compression

Build fails on nvcr.io/nvidia/l4t-base:r36.2.0 docker container for release-2.1

Open
#13 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
73
Forks
16
PR merge metrics
No merged PRs in 30d

Description

I see an AMENT_IGNORE file in gxf, which presumably is to ignore building the gxf libraries, but I don't see libgxf_video_encoder_extension.so & libgxf_video_decoder_extension.so in isaac_ros_gxf, which makes me believe that they do need to be built for isaac_ros_compression to work, however building fails with following:

Starting >>> isaac_ros_common
Starting >>> negotiated_interfaces
Starting >>> isaac_ros_test
Starting >>> magic_enum
Finished <<< isaac_ros_common [0.88s]                                                                                                                               
Starting >>> isaac_ros_gxf
Finished <<< magic_enum [1.17s]                                                                                                                                   
Starting >>> isaac_ros_nitros_interfaces
Finished <<< isaac_ros_gxf [0.42s]
Finished <<< isaac_ros_test [1.60s]                                                                                                             
Finished <<< negotiated_interfaces [1.94s]                                                                               
Starting >>> negotiated
Finished <<< isaac_ros_nitros_interfaces [1.11s]                                                              
Finished <<< negotiated [0.47s]                   
Starting >>> isaac_ros_nitros
Finished <<< isaac_ros_nitros [0.48s]                      
Starting >>> isaac_ros_nitros_compressed_image_type
Starting >>> isaac_ros_nitros_image_type
Finished <<< isaac_ros_nitros_compressed_image_type [0.43s]                                                                                  
Finished <<< isaac_ros_nitros_image_type [0.45s]
Starting >>> isaac_ros_h264_encoder
[Processing: isaac_ros_h264_encoder]                               
--- stderr: isaac_ros_h264_encoder                                 
In file included from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_utils.hpp:45,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_request.cpp:24:
/mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/libv4l2/include/linux/v4l2_nv_extensions.h:183:8: error: redefinition of ‘struct v4l2_ctrl_h264_sps’
  183 | struct v4l2_ctrl_h264_sps {
      |        ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/linux/videodev2.h:65,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_utils.hpp:23,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_request.cpp:24:
/usr/include/linux/v4l2-controls.h:1306:8: note: previous definition of ‘struct v4l2_ctrl_h264_sps’
 1306 | struct v4l2_ctrl_h264_sps {
      |        ^~~~~~~~~~~~~~~~~~
In file included from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_utils.hpp:45,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_request.cpp:24:
/mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/libv4l2/include/linux/v4l2_nv_extensions.h:212:8: error: redefinition of ‘struct v4l2_ctrl_h264_pps’
  212 | struct v4l2_ctrl_h264_pps {
      |        ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/linux/videodev2.h:65,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_utils.hpp:23,
                 from /mithril_workspace/src/isaac_ros_compression/isaac_ros_h264_encoder/gxf/codec/video_encoder/videoencoder_request.cpp:24:
/usr/include/linux/v4l2-controls.h:1362:8: note: previous definition of ‘struct v4l2_ctrl_h264_pps’
 1362 | struct v4l2_ctrl_h264_pps {
      |        ^~~~~~~~~~~~~~~~~~

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the release-2.1 build in the nvcr.io/nvidia/l4t-base:r36.2.0 container, starting with isaac_ros_h264_encoder and its videoencoder_utils.hpp include chain. Compare the bundled libv4l2/include/linux/v4l2_nv_extensions.h definitions with /usr/include/linux/v4l2-controls.h, then verify that the package builds without the reported redefinition errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, docker, linux
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.