Isaac_ros_h264_decoder: increase maximum supported resolution?

Hi,

in Isaac ROS (x86, RTX 4090 GPU, Docker container) I’m successfully decoding h.264 CompressedImage using nvidia::isaac_ros::h264_decoder::DecoderNode from isaac_ros_h264_decoder package, as long as they don’t exceed the image input resolution 1920x1200 (or equivalent max. pixel count)

Is there any way to decode larger image resolutions?

At the moment, the decoder will terminate with the following error message (based on an example resolution 1920x1400):

[...]
[component_container_mt-1] [INFO] [1755086928.879266236] [decoder]: [NitrosNode] Node was started
[component_container_mt-1] 2025-08-13 12:08:49.108 ERROR gxf/std/block_memory_pool.cpp@125: Requested 8064000 bytes of memory in a pool with block size 6912000
[component_container_mt-1] 2025-08-13 12:08:49.108 ERROR ./gxf/std/memory_buffer.hpp@79: pool Failed to allocate 8064000 size of memory of type 1. Error code: GXF_ARGUMENT_INVALID
[component_container_mt-1] 2025-08-13 12:08:49.108 ERROR ./gxf/extensions/tensorops/components/detail/ImageAdapterVideoBufferImpl.hpp@197: custom resize VideoBuffer failed.
[component_container_mt-1] 2025-08-13 12:08:49.108 ERROR ./gxf/extensions/tensorops/components/TensorOperator.cpp@233: operation failed.
[component_container_mt-1] 2025-08-13 12:08:49.108 ERROR gxf/std/entity_executor.cpp@596: Failed to tick codelet color_converter_operator in entity: ILCOGIALXE_color_converter code: GXF_FAILURE
[component_container_mt-1] 2025-08-13 12:08:49.108 WARN  gxf/std/multi_thread_scheduler.cpp@343: Error while executing entity E121 named 'ILCOGIALXE_color_converter': GXF_FAILURE
[component_container_mt-1] 2025-08-13 12:08:49.879 ERROR gxf/std/entity_executor.cpp@212: Entity with eid 110 not found!
[...]

So, I assume I would like to increase the pool size or block size that’s allocated by the decoder but I don’t see how this can be achieved using ros2 node parameters.

Note that the logs indicate the creation of a NitrosNode YAML graph, that seems to contain relevant settings for the executed GFX graph. However, there’s no way of manipulating these, and it’s not clear if this is actually going to have an impact.

[...]
[component_container_mt-1] [INFO] [1755086928.775465946] [decoder]: [NitrosNode] Wrote the final top level YAML graph to "/tmp/isaac_ros_nitros/graphs/ILCOGIALXE/ILCOGIALXE.yaml"
[...]

$ grep block /tmp/isaac_ros_nitros/graphs/ILCOGIALXE/ILCOGIALXE.yaml
      block_size: 6912000
      num_blocks: 40
      min_blocks: 1
      block_size: 6912000
      num_blocks: 40
      min_blocks: 1

I’d also be interested in unsupported work-arounds or experiment suggestions (such as modifying the NitrosNode..)

Thanks for your help.

Hi @s.giessl

Please try changing all block size in this yaml file and see if it can work for you.

$(ros2 pkg prefix isaac_ros_h264_decoder --share)/config/nitros_decoder_node.yaml

Best,
Ahung

1 Like

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