I am evaluating the DM8168 SoC using the Spectrum Digital EVM. I would like to determine the maximum number of video channels the DM8168 can decode.
My usecase will be multiple channels of encoded video (MPEG2/MPEG4) coming in via the PCIe interface. The video will then be decoded to raw YUV video and go out the PCIe interface. I am interested in the maximum number of D1 resolution channels the DM8168 can support.
It is not clear which software API should be used for the best performance of multiple channel decodes (gstream, OMX, CODEC Engine, etc).
I am using the EZSDK 5_04_00_11. For a starting point I am able decode one mpeg stream from the SDHC root file system and have it displayed on the attached HDMI monitor using gstreamer.
I tried to modify the gstream pipeline to send the video to a remote server using TCP. When I do this, the performance drops to 20 FPS, and the arm-load reaches 100% with the remote server is connected.
This is the pipeline that I am using:
gst-launch -v filesrc location=001-rs.ts typefind=true ! mpegtsdemux ! mpegvideoparse ! omx_mpeg2dec ! omx_scaler ! gstperf ! tcpserversink
Is there something that can be done to improve the performance of this gstreamer pipeline?
What is the best API to be using to get multiple channels of video decode working on the DM8168?