OpenVisualCloud / Media-Transport-Library

A real-time media transport(DPDK, AF_XDP, RDMA) stack for both raw and compressed video based on COTS hardware.
BSD 3-Clause "New" or "Revised" License
168 stars 54 forks source link

Allow disabling box processing in st22_rx_session #204

Closed corco closed 1 year ago

corco commented 1 year ago

I would like to disable box processing in ST22 in order to allow downward application to receive and process them. Something similar already exist for st22_tx.

This would be easy to implement by adding a check here and setting slot->st22_box_hdr_length = 0;. However, I didn't find any st22 related struct passed to that function where I could propagate a flag from st22_rx_ops.

I will be happy to implement the change if you can provide pointers on where to stuff the necessary flag so that it can be retrieved in rv_handle_st22_pkt.

frankdjx commented 1 year ago

Maybe you can add some code in the rv_attach routine. https://github.com/OpenVisualCloud/Media-Transport-Library/blob/fe196cb1e4ff2d7f1002573f0390a07e0e494dc9/lib/src/st2110/st_rx_video_session.c#L2796 Ex, save the st22 flag to the struct that we can use the st22 flag in rv_handle_st22_pkt

s->st22_ops_flags = st22_ops->flags;
frankdjx commented 1 year ago

Another good approach is providing the boxes data to user by adding the received boxes info into struct st22_rx_frame_meta https://github.com/OpenVisualCloud/Media-Transport-Library/blob/fe196cb1e4ff2d7f1002573f0390a07e0e494dc9/include/st20_api.h#L422