This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Parallel Capture and Encode

Hi all,

I have constructed an application with a V4L2 capture front-end (capturing from VIP0 and VIP1 in parallel).  Using the capture_encode OMX example I have extended my application to pass captured buffers into two separate input ports of the DEI components.

Ideally, I want DEI Inport[0] to feed through to DEI Outport[0] and Inport[1] to feed through to Output[1].  In the example, the OMX captured buffers are fed to a single DEI input port and appear on two separate output ports.  Is what I require possible and do I need to do anything special to set the DEI component up that way?  Alternatively, do I need to create two separate DEI components?

Finally, I need to encode both pipelines.  However, the VENC component only has a single input and output port.  Presumably, if I feed the output of my DEI components output ports to the input port on the VENC then I simply need to dereference the buffers on the VENC output port somehow to determine which stream and DMA/filewrite as appropriate?  Can anyone give any advice on the practicality of this?  The DM814x is quoted as supporting 2 x 1080p30 H264 encodes.

Help/pointers appreciated.

Regards,

Danny

  • So I have simplified my usage slightly by removing the DEI component.

    My question to any TI representative is now this:

    The VENC component has a single input and output port on which to encode data.  If the DM814x is capable of encoding two 1080p30 streams how is this achieved?  There seems to be no context on the input port or the incoming buffers?

    If I feed the input port with data from two different 1080p30 inputs how does the encoder maintain reference frames for encoding?

    There is also the question of how to demultiplex the output to obtain the parallel raw H264 streams?  Again, with only a single input port and output port there is nothing to tie up filled buffers on the output port with the originating streams on the input port??

    If I have missed something about the usage please let me know.  You do not seem to be able to obtain multiple OMX handles (from OMX_GetHandle(...)) or setup multiple components tied to the same handle.

  • Can anybody from TI recommend how to demux multiple encoded streams from the OMX Encoder component?

  • Hi Danny,

    I have checked with our codec team. According to them two different 1080p30 streams can be encoded simultaneously. The codec supports maintaining the context for multiple streams.