Some questions about use rivermax SDK to send video data

I am learning the code about “tests/media_sender”, and have some question about the data sending process.

Within the "thread_data::init " function, a huge memory is allocated and filled with ycbcr video data, then assign the memory blocks to the output media stream by “rmx_output_media_assign_mem_blocks”. But in the “thread_data::run_intrenal” function, the thread proc only “build_rtp_header” between “rmx_output_media_get_next_chunk” and “rmx_output_media_commit_chunk”, it dosen’t fill the packet payload.

  1. does it mean that Rivermax will use the previously assigned memory block, is it loop?

  2. Is it possible to set the reading order?

  3. If I want to modify the sent data in real time, can I use the previous memory block pointer or should I use the pointer obtained from "rmx_output_media_get_chunk_strides "?

  4. Is there an internal synchronization mechanism for modifying and sending memory blocks?

Hi Wuwei,

Thank you for posting your query on NVIDIA Community.

Since the addressed questions require formal escalation to Engineering Team, a valid support entitlement is needed for the same. In addition, for Rivermax related questions as well, an active support entitlement is needed. If there is an active entitlement in place, please feel free to open a support ticket by emailing

For details on contracts, please feel free to contact our contracts team at