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.

Linux/TMS320DM368: Resource Manager

Part Number: TMS320DM368


Tool/software: Linux

Hello All,

I took Codecs from IPNC RDK version 5.1.0 and integrated these codecs in IPNC DVSDK version  4_02_00_06 as DEI was not provided for IPNC DVSDK.

Framework components version 2_26_00_01,  Codec Engine version 2_26_02_11 and DMAI version 2_20_00_15 was used.

There is an issue in allocation of resources when DEI_create is called before Venc1_create for h264 encoder.

When creating resources for h264 encoder using VENC1_create failes with error code 1

debug print: ti.sdo.ce.alg.algorithm algorithm assignment of alg resources through rman field 

To resolve this issue we are creating DEI first which is our requirement and then Deleting DEI and freeing resources. Then calling Venc1_create for h264 and again creating Dei resources.

But sometimes when creating and deleting resources there is an segmentation fault in DEI_process.

Synchronization is maintained between Dei_Processing and Dei_deletion.

Is there a way by which creating a DEI resouce prior to will not clash with creating resources for h264 afterwards

Thanks and Regards

  • Hi,

    I suggest you generate some debug logs. There may be a memory conflict.

    Thank you

    Cesar

  • Hello Sir,
    Process call to DEI algorithm is asynchronous. As seen in document DM36x_DEI_ReleaseNotes.pdf (DEI Algorithm on DM36x Version 2.00.00 Release Notes October 2012)
    Hence I am assuming that when we are trying to allocate resource for H264, DEI process() call has started the sequencer and is asynchronously waiting for algorithm to give an interrupt, hence allocation of same buffer for h264 algorithm fails.
    Is there a way to know shared resources between the algorithms and if we can not allow resources to be shared between the algorithm.

    Thanks and Regards

  • My application flow is

    Capture buffer from Video Input -> Deinterlace -> Resize -> h.264 Encode -> and write the encoded buffer.

    by reading DM36x_DEI_ReleaseNotes.pdf (DEI Algorithm on DM36x Version 2.00.00 Release Notes October 2012) i understand that process call to Deinterlacing algorithm is asynchronous and may update the output buffer when the sequencer receives interrupt from algorithm.

    Input buffer passed to the Deinterlacing algorithm is shared between some other process also and the output buffer from DEI is used by resizer.

    Since DEI process is asynchronous passing Output buffer to resizer will cause a problem?

    Or Input buffer shared between threads can cause a problem?

    Problem faced:
    Application comes in deadlock condition some times or gives a segmentation fault. I am assuming this is caused due to asynchronous processing of DEI.

    Considering Resources are being shared between h264 encoder and DEI algorithms can this cause some problem in algorithm synchronization?

    can i know what resources are being shared between the algorithms so debugging becomes easier?

    Kindly help me with the issue.