Hi,everyone
C66x_h264hpvenc_01_00_01_04_ELF can run on a single core core0 successfully;
C66x_h264hpvenc_01_00_01_04_ELF can run on multicore successfully,core0 as IVIDMC_TASK_MASTER ;
Now I have a problem: when I run C66x_h264hpvenc_01_00_01_04_ELF on the TMS320C6678 EVM,
1 for example ,if run on core 1, in a file encoder.cfg,modified
ncores = 1
CoreTeamMap = 1;
on a single core run,current core id as IVIDMC_TASK_MASTER , I found that h264hpven can run on core0,but except core 0, on other core C66x_h264hpvenc_01_00_01_04_ELF can't run,failed reason is sharing region fialed ,
I found that function ipcCreateShare(sizeof(H264HPVENC_Shared_MemTab), (void**)&codecShm); failed;
because of variable codecShm is null;
so I modified h264hpvenc.cfg file,for example h264hpvenc run on core,,in this file,I modified
SharedRegion.setEntryMeta(0, { base: Program.global.shmSL2Base, len: Program.global.shmSL2Size, ownerProcId: 0, isValid: true, cacheEnable: true, cacheLineSize: 64, name: "ipc_internal_shared_mem", });
to
SharedRegion.setEntryMeta(0, { base: Program.global.shmSL2Base, len: Program.global.shmSL2Size, ownerProcId: 1, isValid: true, cacheEnable: true, cacheLineSize: 64, name: "ipc_internal_shared_mem", });
I found variable codecShm is non zero, function ipcCreateShare() can run successfully.C66x_h264hpvenc_01_00_01_04_ELF can run,but I found bits number of output stream is 0,loutArgs->bytesconsumed = 0,function H264HPVENC_encodeFrame() return 0;
via analyzing,I found H264HPVENC_encodeFrame() only encoded frame header,when encoding the first macroblock ,not successfully,exit for unkwown reason;
I want to know,above modification is whether right or not ; if C66x_h264hpvenc_01_00_01_04_ELFwant to run on a single core run successfully except core 0,what I should do?,How do?Thanks!
The encoder errors are as follows:
[C66xx_1]
[C66xx_1] ---------------------------------------------------------
[C66xx_1] Test Case Number : 1
[C66xx_1] ---------------------------------------------------------
[C66xx_1] Config File : ..\..\..\Test\TestVecs\Config\encoder.cfg
[C66xx_1] Input YUV : ..\..\..\Test\TestVecs\Input\airshow_p352x288.yuv
[C66xx_1] Output Stream : ..\..\..\Test\TestVecs\Output\airshow_p352x288.264
[C66xx_1]
[C66xx_1] ShmemTab initialized on Core 1
[C66xx_1]
[C66xx_1] Algorithm Instance Creation for the Module DEV.100.V.H264HP.E.C66X.01.00.01.04 Done...
[C66xx_1]
[C66xx_1] Started Reading Frame : 0.......
[C66xx_1]
[C66xx_1] #NA : IVIDEO_IDR_FRAME : Bits : 0
[C66xx_1]
[C66xx_1] Started Reading Frame : 1.......
[C66xx_1]
[C66xx_1] #NA : IVIDEO_P_FRAME : Bits : 0
2
for example ,if run on core 1 and core2, in a file encoder.cfg,modified
ncores = 2
CoreTeamMap = 1,2;
on multicore(except core 0) run,for example ,run on core 1and core2,core 1 as IVIDMC_TASK_MASTER, the same question exists;
thanks,I am looking forward to your answer;