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: decode

Part Number: TDA4VM

Hello,

We use the sdk version of tda4vm 7.3. For some reasons, we want to remove the pipeline in decoding and use the following mode to decode, so that the output can be immediately after decoding. Is it supported

vxScheduleGraph(decode_graph);

Regards,

Gary

  • Hello Gary,

    Can you please elaborate on what you mean by "use the following mode to decode"?  If you are implying that you are planning on creating a separate graph which performs decoding using the decode node, then yes, that is possible.  However, it is unclear to me if that is your intention or not.

    Regards,

    Lucas

  • Hello,

    I am very happy to receive the reply. What you said is right. What I mean is to create a graph to run the decode node separately without using the decode pipeline mode. However, the code I wrote myself will report an error when executed. The code is as follows. Can you give a reference example? ?

    //create
    graph = vxCreateGraph(context);
    node_decode_0 = tivxVideoDecoderNode(graph,
    configuration_obj_0,
    bitstream_obj_0[0],
    output_image_0[0]);
    
    
    vxSetNodeTarget(node_decode_0, VX_TARGET_STRING, TIVX_TARGET_VDEC1);
    
    
    // run node
    
    (vxMapUserDataObject(bitstream_obj_0[0], 0, size0, &map_id_0, (void*) &bitstream_0, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST, 0));
    memcpy(bitstream_0, data0, size0);
    (vxUnmapUserDataObject(bitstream_obj_0[0], map_id_0));
    (vxCopyUserDataObject(bitstream_obj_0[0], 0, sizeof(uint8_t) * size0, bitstream_0, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST));
    (tivxSetUserDataObjectAttribute(bitstream_obj_0[0],TIVX_USER_DATA_OBJECT_VALID_SIZE, (void*)&(size0), sizeof(vx_size)));
    
    vxScheduleGraph(graph);
    vxWaitGraph(graph);

    Regards,

    Gary

  • Hi Gary,

    Can you send the errors you are receiving when running this?

    There is not an example in vision_apps, but there are some test cases which use this node which you can reference at the below location:

    tiovx/kernels_j7/hwa/test/test_video_decoder.c

    Regards,

    Lucas

  • Hello,

    The error is as follows. At the same time, I have read the code in test_video_decoder.c, and it is not what I need. The code inside is implemented using Pipeline.

    [MCU2_1] 29.322145 s: MM_DEC_Process:core_stream_submit_unit failed 7
    [MCU2_1] 29.322224 s: [USERSID=0x00000001] Unable to get the current picture from Decoder context
    [MCU2_1] 29.322275 s: Assertion @ Line: 2817 in /home/mini/builds/tda4vm/t1q3-release/psdk_rtos/video_codec/ti-img-encode-decode/tirtos/decoder/../../driver/decoder /decoder.c: !(ret == (0)) : failed !!!
    [MCU2_1] 29.322347 s: Assertion @ Line: 2817 in /home/mini/builds/tda4vm/t1q3-release/psdk_rtos/video_codec/ti-img-encode-decode/tirtos/decoder/../../driver/decoder /decoder.c: !(ret == (0)) : failed !!!
    [MCU2_1] 29.322416 s: MM_DEC_Process:core_stream_submit_unit failed 7
    [MCU2_1] 29.322506 s: VX_ZONE_ERROR:[tivxVideoDecoderProcess:391] MM_DEC Process failed
    [MCU2_1] 30.333863 s: vxd_pvdec_check_irq: MMU Page fault from dmac while reading @ 0x00082000
    [MCU2_1] 30.334107 s: [TID=0x00120002] [DECODE_FAILED]

    Regards,

    Gary

  • Hello Gary,

    This is our only example, but there should be only minor differences between the pipelining aspect of this demo vs the what you are trying without pipelining.

    Additionally, we have since updated the SDK to use codec from either Linux or QNX, not on RTOS.  Is it possible to alternatively migrate to the latest SDK and use this version of our codec solution instead?

    Regards,

    Lucas