Other Parts Discussed in Thread: TMS320C6678
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]
---------------------------------------------------------
Test Case Number : 1
---------------------------------------------------------
Config File : ..\..\..\Test\TestVecs\Config\encoder.cfg
Input YUV : ..\..\..\Test\TestVecs\Input\airshow_p352x288.yuv
Output Stream : ..\..\..\Test\TestVecs\Output\airshow_p352x288.264
ShmemTab initialized on Core 1
Algorithm Instance Creation for the Module DEV.H264HP.E.C6678.01.00.01.04 Done...
Started Reading Frame : 0.......
Frame_Cycles : 0.102369
#0 : IVIDEO_IDR_FRAME : Bits : 0
Started Reading Frame : 1.......
Frame_Cycles : 0.119687
#1 : IVIDEO_P_FRAME : Bits : 0
Started Reading Frame : 2.......
Frame_Cycles : 0.118790
#2 : IVIDEO_P_FRAME : Bits : 0
Started Reading Frame : 3.......
Frame_Cycles : 0.118818
#3 : 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;