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.

TDA4VM: PROCESSOR-SDK-J721E

Part Number: TDA4VM

Hi!

I have established a gstreamer pipeline on TDA4VM for decoding H264 bitstreams, which includes the following elements: appsrc queue avdec_h264 appsink. It works normally, but the decoding speed is not ideal.

The H264 test file I used is encoded from a 1280 long/720 wide image in NV12 format. It only has I and P frames, with a GOP of 15 and a total of 240 frames. The complete decoding time is 3469ms, approximately 14ms to decode one image. This is sufficient for a single camera frame rate, but we need four cameras to decode simultaneously, which clearly does not meet the expected speed.

Here are my configurations for each element:

    GstElement *pipeline, *appsrc , *appsink;
    GstElement *h264_decoder;
...
    
    g_object_set(G_OBJECT(appsrc), "caps", 
                gst_caps_new_simple("video/x-h264", "stream-format", G_TYPE_STRING, "byte-stream", \
                                    "alignment", G_TYPE_STRING, "au", NULL),
                NULL);
    
    g_object_set(G_OBJECT(appsink), "sync", FALSE, NULL);
    g_object_set(G_OBJECT(appsink), "emit-signals", TRUE, NULL);
    g_object_set(G_OBJECT(appsink), "max-buffers", 200, NULL);
    
    g_object_set(G_OBJECT(h264_decoder), "max-threads", 10, NULL);

Is there any way to improve the encoder speed? May I have any good suggestions? Thank you!