Hi, i want to run h264 codec and jpegenc codec simultaneously, but i have this error :
Algorithm creation FAILED; make sure that 1) alg params are correct/appropriate, 2) there is enough internal and external algorithm memory available -- check DSKT2 settings for heap assignments and scratch allocation
It failed at algorithm that is second in programm flow, both algorithms works fine separetly. This is my app.cfg:
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
var os = xdc.useModule('ti.sdo.ce.osal.linux.Settings');
osalGlobal.os = os;
osalGlobal.armDspLinkConfig = {
memTable: [
["DDRALGHEAP", {addr: 0x83700000, size: 0x02800000, type: "other"}],
["RESET_VECTOR", {addr: 0x85F00000, size: 0x00000080, type: "reset"}],
["DDR2", {addr: 0x85F00080, size: 0x01400000, type: "main" }],
["DSPLINKMEM", {addr: 0x87300080, size: 0x00CFFF80, type: "link" }],
],
};
var ipc = xdc.useModule('ti.sdo.ce.ipc.Settings');
ipc.commType = ipc.COMM_DSPLINK;
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var DMAI = xdc.loadPackage('ti.sdo.dmai');
var demoEngine = Engine.createFromServer(
"codec_engine",
"./bin/cs.x64P",
"ti.sdo.server.cs"
);
and how i initialize codecs:
/* Image encoder */
/*************************************************************************************/
char imageEncoderName[] = "jpegenc";
IMGENC1_Params imageEncoderParams = Ienc1_Params_DEFAULT;
imageEncoderParams.maxHeight = CAPTURE_HEIGHT;
imageEncoderParams.maxWidth = 1920;
IMGENC1_DynamicParams imageEncoderDynamicParams = Ienc1_DynamicParams_DEFAULT;
imageEncoderDynamicParams.inputHeight = CAPTURE_HEIGHT;
imageEncoderDynamicParams.inputWidth = CAPTURE_WIDTH;
imageEncoderDynamicParams.captureWidth = CAPTURE_WIDTH;
imageEncoderDynamicParams.qValue = 30;
BufferGfx_Attrs imageEncoderBufAttrs = BufferGfx_Attrs_DEFAULT;
imageEncoderBufAttrs.colorSpace = ColorSpace_UYVY;
imageEncoderBufAttrs.dim.width = CAPTURE_WIDTH;
imageEncoderBufAttrs.dim.height = CAPTURE_HEIGHT;
imageEncoderBufAttrs.dim.lineLength = CAPTURE_LINEWIDTH;
imageEncoderBufAttrs.bAttrs.memParams.align = 32;
imageEncoderBufAttrs.bAttrs.memParams.type = Memory_CONTIGPOOL;
imageEncoderBufAttrs.bAttrs.memParams.flags = Memory_CACHED;
imageEncoderBufAttrs.bAttrs.type = Buffer_Type_GRAPHICS;
iencHandle = Ienc1_create(engineHandle, imageEncoderName, &imageEncoderParams, &imageEncoderDynamicParams);
imageEncoderBuf = Buffer_create(Ienc1_getOutBufSize(iencHandle), BufferGfx_getBufferAttrs(&imageEncoderBufAttrs));
/*************************************************************************************/
/* Video encoder */
/*************************************************************************************/
char videoEncoderName[] = "h264enc";
VIDENC1_Params encoderParams = Venc1_Params_DEFAULT;
encoderParams.inputChromaFormat = XDM_YUV_422ILE;
encoderParams.maxFrameRate = 25000;
encoderParams.rateControlPreset = IVIDEO_STORAGE;
encoderParams.maxBitRate = 2000000;
encoderParams.maxInterFrameInterval = 1;
VIDENC1_DynamicParams encoderDynamicParams = Venc1_DynamicParams_DEFAULT;
encoderDynamicParams.inputHeight = 360;
encoderDynamicParams.inputWidth = 640;
encoderDynamicParams.refFrameRate = 25000;
encoderDynamicParams.targetFrameRate = 25000;
encoderDynamicParams.targetBitRate = 2000000;
BufferGfx_Attrs videoEncoderBufAttrs = BufferGfx_Attrs_DEFAULT;
videoEncoderBufAttrs.colorSpace = ColorSpace_UYVY;
videoEncoderBufAttrs.dim.width = DISPLAY_WIDTH;
videoEncoderBufAttrs.dim.height = DISPLAY_HEIGHT;
videoEncoderBufAttrs.dim.lineLength = DISPLAY_LINEWIDTH;
videoEncoderBufAttrs.bAttrs.memParams.align = 32;
videoEncoderBufAttrs.bAttrs.memParams.type = Memory_CONTIGPOOL;
videoEncoderBufAttrs.bAttrs.memParams.flags = Memory_CACHED;
videoEncoderBufAttrs.bAttrs.type = Buffer_Type_GRAPHICS;
vencHandle = Venc1_create(engineHandle, videoEncoderName, &encoderParams, &encoderDynamicParams);
videoEncoderBuf = Buffer_create(Venc1_getOutBufSize(vencHandle), BufferGfx_getBufferAttrs(&videoEncoderBufAttrs));
/*************************************************************************************/