hi,
these days I was implementing a new codec on dm6446, and then I used xdm to encapsulate this codec, later I added it into the decodeCombo.x64P, meanwhile I use decode demo to test the new decodeCombo.x64P.
when I was using the xdm to encapsulate the codec, I realized these functions:
#pragma CODE_SECTION(TREMORDEC_TI_control, ".text:algControl")
#pragma CODE_SECTION(TREMORDEC_TI_process, ".text:algProcess")
#pragma CODE_SECTION(TREMORDEC_TI_initObj, ".text:algInit")
#pragma CODE_SECTION(TREMORDEC_TI_free, ".text:algFree")
#pragma CODE_SECTION(TREMORDEC_TI_alloc, ".text:algAlloc")
when the codec was created, it would invoke algAlloc and algInit, and I allocated some memory for the codec in algAlloc.
when the codec was running, it would invoke algControl and algProcess.
as I think, we I use AUDDEC1_delete to delete the codec, it should invoke algFree. but actully it doesn't.
so when we created and deleted the codec some times, it will be failed. And I think the memory allocated in algAlloc doesn't be released.
and the log info as follows:
@11,483,482us: [+0 T:0x413f5490] ti.sdo.ce.audio1.AUDDEC1 - AUDDEC1_delete> Enter (handle=0x414005b0)
@11,483,637us: [+0 T:0x413f5490] CV - VISA_delete(0x414005b0)
@11,483,733us: [+5 T:0x413f5490] CV - VISA_delete> deleting codec (localQueue=0x10002, remoteQueue=0x2)
@11,484,125us: [+0 T:0x413f5490] CE - Engine_deleteNode(0x41400490)
@11,485,268us: [+5 T:0x413f5490] CE - Engine_deleteNode(0x41400490): algName = aachedec, algHandle = 0x8fa05748, stack size = 13312, stack used = 5467(42%)
@11,485,942us: [+0 T:0x413f5490] ti.sdo.ce.audio1.AUDDEC1 - AUDDEC1_delete> return
so in codec engine, it doesn't invoke Algorithm_delete at all, then algFree wouldn't be invoked.
so can you help to solve this problem?
thanks very much!