Hi all,
DM8148, IPNC RDK 3.8 as basecode, finished product, 1280x720 30fps global shutter CCD sensor, 512 MB RAM
Custom usecase: 1x H.264 1280x720 30 fps + 1 x H.264 640x360 30 fps + 1 x JPEG 1280x720 30 fps
Due to a customer request I do have to release more RAM to Linux system. So Ive proceed to force the stream to use the 256_TRISTREAM layout so CMEM would be smaller.
At first I've reduced CMEM size from 64 MB to 32 MB:
- At ti_mcfw_ipcbits.c I've FORCED streamSet.Mem_layout = MEM_LAYOUT_256MB_TRISTREAM; altough I have 512 MB RAM
- At mcfw_api_demos/stream/stream.h I've changed STREAM_BUF_MEM_SIZE to 0x01E00000
- I've changed bootcmd at uboot to reflect the new configuration:
-
mem=158M cmemk.phys_start=0x89E00000 cmemk.phys_end=0x8BD00000
-
- My .bld file is:
var LINUX_SIZE = 158*MB;
var CMEM_SIZE = 32*MB
The problem is:
Sometimes after a few (15-30) minutes of streaming (2x H.264 + JPEG) the sys_server/streamer simply stalls. Before, with CMEM of 64 MB, the system worked absolutely fine.
During boot I see no complaints about memory and the stream buffer seems to be using roughly 28 MB.
Questions:
1) At App_streamSysInit() I see some hardcoded stream parameters that do not match my case:
streamSet.ImageWidth = 1920;
streamSet.ImageHeight = 1080;
streamSet.Mpeg4Quality = 100;
streamSet.JpgQuality = 100;
streamSet.ImageWidth_Ext[STREAM_EXT_JPG] = 1920;
streamSet.ImageHeight_Ext[STREAM_EXT_JPG] = 1080;
Does them make any difference? Should I change to my current sensor resolution?
Info: JPEG Quality is changed in runtime.
2) Why the default stream memory scheme for 512 MB TRISTREAM requires 64 MB for CMEM? Isn't it a bit too much?