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.

Compiler/TDA2PXEVM: Creation of HLOS usecase with conditional output to the output link

Part Number: TDA2PXEVM

Tool/software: TI C/C++ Compiler

Hi all,

I want to create an HLOS usecase in which I want to output my data with SgxFrmcpy link but it is conditional. Consider following 

NullSource (A15) -> Decode -> VPE -> Sync -> Dup -> Gate_AlgOne -> Alg_One(DSP1) ->  SgxFrmcpy (A15) -> Display_LCD

Dup -> Gate_AlgTwo -> Alg_Two (DSP1) -> SgxFrmcpy (A15) -> Display_LCD

 So both AlgOne and AlgTwo should use SgxFrmCpy to output the data but at a time only Single link is running either AlgOne or AlgTwo in such case what needs to be done

Regards,

Gyatri

  • Hi Gayatri,

    There is no existing feature which can supported it. But you could add some flags in the system_frame to enable/skip the processing in one of the algorithms..

    It should be straight forward to include the flags and decide processing in the algorithm links. 

    Regards,

    Brijesh

  • Hi Brijesh,

    I didn't got what do you mean by system_frame, can you please elaborate on this?

    Few Questions:

    1) The output frame buffer size is different for AlgOne and AlgTwo will it make any diffrence?

    2) If I put up 2 instances of Sgx one to render AlgOne output and other to render AlgTwo output. There is always one link active all time based on user input will the other pipeline throw the error

    Regards,

    Gayatri

  • Gayatri,

    May be you could put select link between Alg and SgXFrmCpy link. and then you could redirect one of the alg output to SGX link via select link. 

    Yes, resolution is important. I really doubt that SGX link supports runtime change in resolution.  Please check the source code of this link and see if it can support runtime change in resolution.

    Regards,

    Brijesh

  • Hi Brijesh,

    As per your suggestion  I have created the usecase with select link as below

    NullSource (A15) -> Decode -> VPE -> Sync -> Dup -> Gate_AlgOne -> Alg_One(DSP1) ->  Select

    Dup -> Gate_AlgTwo -> Alg_Two (DSP1) -> Select

    Select -> SgxFrmcpy (A15) -> Display_LCD

    With this I have set 2 render Type Inside SgxFrmCpy as SGXFRMCPY_RENDER_TYPE_ALG_ONE and SGXFRMCPY_RENDER_TYPE_ALG_TWO and user is dynamically selecting either of the two render type from UART.

    The select link parameters I set as below:

    pPrm->numOutQue = 1;

    pPrm->outQueChInfo[0].outQueId = 0;
    pPrm->outQueChInfo[0].numOutCh = 1;
    pPrm->outQueChInfo[0].inChNum[0] = 0;

    Is this correct what I am doing? 

    At output I am getting output from only AlgTwo that to it is not showing video instead only single frame is rendered when I choose AlgOne to Render it doesn't show any output.

    Regards,

    Gayatri

  • Gayatri,

    I did not get it.

    Do you mean,

    1, you could get only single frame from algTwo output?

    2, you are not getting any frames from algOne output?

    How do you switching between AlgOne and AlgTwo intputs to the select link? I think there is an control command, SELECT_LINK_CMD_SET_OUT_QUE_CH_INFO, to map input channel number to output QueueId. Could you try using this ioctl?

    Regards,

    Brijesh

  • Hi Brijesh,

    I am working with Gayatri.

    I had one query regarding select link.

    Usually, select link supports only one input, and used to select one among multiple output Qs.
    But in our case  it has 2 input Qs and select one among them.
    Is it possible to do so?

    Regards,

    Chinmayee

  • Chinmayee,

    It is the other way, select link is used to select inputs from input queues and then output to output Q.

    Regards,

    Brijesh