Hi Anton,
I've just tried this and seems to work ok for me. I made exactly the modifications you detailed below to viddec_copy.c, adding 2 additional memTab entries to algAlloc. I then built this into the all_codecs server and video_copy server and tested both with video_copy/dualcpu example. Below is a snippet from the log (slightly reformatted with some comments) captured by turning on DSKT2.debug as Chris mentioned below and using 'CE_TRACE="*=01234567"'. DSP side logs are tagged with [DSP] prefix. ~roger [DSP] // ALGO 1 :: VIDENC Encoder // // - No 'numAlloc' fxn supplied, hence allocate default size memTab // - Each memTab entry is size = 20 bytes // - IALG_DEFMEMRECS = 4 // - Size = 20 * 4 = 80 == 0x50 DSCO: alloc'ed memTab = 8fa21520, size = 50 // - Num memTabs actually returned from algAlloc = 1 DSCO: algAlloc returned 1 // - VIDENC memTab[0] DSAM: allocing space 11 DSAM: allocing size 8 DSAM: allocing align 0 DSAM: alloc'd addr = 88000000 // - VIDENC Algo initialized ok DSCO: algInit OK // ALGO 2 :: VIDDEC Decoder // // - No 'numAlloc' fxn supplied, hence allocate default size memTab // - Each memTab entry is size = 20 bytes // - IALG_DEFMEMRECS = 4 // - Size = 20 * 4 = 80 == 0x50 DSCO: alloc'ed memTab = 8fa216d0, size = 50 // - Num memTabs actually returned from algAlloc = 3 DSCO: algAlloc returned 3 // - VIDDEC memTab[0] DSAM: allocing space 11 DSAM: allocing size 4 DSAM: allocing align 0 DSAM: alloc'd addr = 88000008 // - VIDDEC memTab[1] DSAM: allocing space 11 DSAM: allocing size 14 DSAM: allocing align 0 DSAM: alloc'd addr = 88000010 // - VIDDEC memTab[2] DSAM: allocing space 11 DSAM: allocing size a DSAM: allocing align 0 DSAM: alloc'd addr = 88000028 // - VIDDEC Algo initialized ok DSCO: algInit OK // Freeing up memory // Freeing VIDENC memTab and algo memory DSAM: freeing 88000000 DSFO: freed memTab = 8fa21520, size = 50 // Freeing VIDDEC memTab and algo memory DSAM: freeing 88000008 DSAM: freeing 88000010 DSAM: freeing 88000028 DSFO: freed memTab = 8fa216d0, size = 50 ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ring, Chris Sent: 05 April 2007 17:35 To: Sergeev Anton; [email protected] Subject: RE: problem with memory table Can you turn on full tracing and post the trace log? Can you acquire the DSP log as well? If so, can you rebuild your server with "DSKT2.debug = true" and send the DSP log as well? [ And if your codec uses DMA, configure "DMAN3.debug = true" in the server also. ] Are you changing the ARM-side app at all (e.g. sending extended create params to the codec?)? Chris ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sergeev Anton Sent: Thursday, April 05, 2007 8:40 AM To: [email protected] Subject: problem with memory table Hi. I`m working on DaVinci video decoder. I`m trying to alloc memory for my decoder through IALG interface. I am get video_copy example, and add into algAlloc (for viddec_copy codec) two more memory implimintation: memTab[1].size = 20; memTab[1].alignment = 0; memTab[1].space = IALG_EXTERNAL; memTab[1].attrs = IALG_PERSIST; memTab[2].size = 10; memTab[2].alignment = 0; memTab[2].space = IALG_EXTERNAL; memTab[2].attrs = IALG_PERSIST; return (3); After that example crush, with @0x00010460:[T:0x4003a6e8] CE - Engine_createNode> Remote node creation FAILED (0x80008008). And this happens when i declare more then 2 memory element in algAlloc What`s a problem??? Regards. Anton Sergeev
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
