Hello,
Could you kindly help me with integration of the platinum h264 encoder into dvsdk 2.1.
Unfortunately, I get "segmentation fault", when calling VIDENC1_create()
I
have followed the
http://processors.wiki.ti.com/index.php/Migration/Integration_Guide_for_DM36x_H.264_version_2.x_codecs#How_to_integrate_ver_2.0_codec_in_existing_application.3F
guide.
All required dvsdk components are up to date according to the encoder release notes.
cmemk.ko configuration:
insmod
cmemk.ko phys_start=0x83800000 phys_end=0x88000000 allowOverlap=1
phys_start_1=0x00001000 phys_end_1=0x00008000 pools_1=1x28672
dvsdk configuration file:
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.LINUX;
environment['xdc.cfg.check.fatal'] = 'false';
var RMAN = xdc.useModule('ti.sdo.fc.rman.RMAN');
RMAN.useDSKT2 = false;
RMAN.persistentAllocFxn = "__ALG_allocMemory";
RMAN.persistentFreeFxn = "__ALG_freeMemory";
RMAN.semCreateFxn = "Sem_create";
RMAN.semDeleteFxn = "Sem_delete";
RMAN.semPendFxn = "Sem_pend";
RMAN.semPostFxn = "Sem_post";
RMAN.tableSize = 10;
RMAN.trace = true;
RMAN.debug = true;
dc.useModule('ti.sdo.fc.global.Settings').profile = "debug_trace";
var EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings');
EDMA3.globalInit = true;
EDMA3.maxQdmaChannels = [10,10,10,10];
EDMA3.trace = false;
EDMA3.debug = false;
EDMA3.maxRequests = 128;
var vicp = xdc.useModule('ti.sdo.linuxutils.vicp.VICP');
vicp.debug = false;
var HDVICP = xdc.useModule('ti.sdo.fc.ires.hdvicp.HDVICP');
HDVICP.trace = false;
HDVICP.debug = false;
//Change this to VICP if the chip is not DM355
var VICP = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2');
VICP.debug = true;
var VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC');
VICPSYNC.debug = false;
var HDVICPSYNC = xdc.useModule('ti.sdo.fc.hdvicpsync.HDVICPSYNC');
HDVICPSYNC.debug = false;
HDVICPSYNC.trace = false;
var VICP = xdc.useModule('ti.sdo.fc.memutils.MEMUTILS');
ADDRSPACE = xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE');
var MEMTCM = xdc.useModule('ti.sdo.fc.ires.memtcm.MEMTCM');
MEMTCM.cmemBlockId = 1; //Since we use _1 in our insmod command.
var EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN');
EDMA3CHAN.trace = false;
EDMA3CHAN.debug = false;
var LSP = xdc.useModule('ti.sdo.linuxutils.edma.EDMA');
LSP.debug = false;
var CMEM = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM');
var ALG_MEM = xdc.useModule('ti.sdo.ce.alg.Settings');
ALG_MEM.useHeap = true;
xdc.loadPackage("ti.sdo.ce.video2");
xdc.loadPackage("ti.sdo.fc.hdvicpsync");
/*
* ======== Engine Configuration ========
*/
var KTNF = xdc.useModule('ti.sdo.codecs.ktnf.ce.KTNF');
var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.ce.MPEG4ENC');
var H264ENC = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC');
var JPEGENC = xdc.useModule('ti.sdo.codecs.jpegenc.ce.JPEGENC');
var G711ENC = xdc.useModule('ti.sdo.ce.examples.codecs.g711.G711ENC');
/*
var MPEG4DEC = xdc.useModule('ti.sdo.codecs.mpeg4dec.ce.MPEG4DEC');
var H264DEC = xdc.useModule('ti.sdo.codecs.h264dec.ce.H264DEC');
var JPEGDEC = xdc.useModule('ti.sdo.codecs.jpegdec.ce.JPEGDEC');
var G711DEC = xdc.useModule('ti.sdo.ce.examples.codecs.g711.G711DEC');
*/
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var myEngine = Engine.create("alg_server", [
{name: "g711enc", mod: G711ENC, local: true, groupId: 1},
{name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1},
{name: "jpegenc", mod: JPEGENC, local: true, groupId: 1},
{name: "ktnf", mod: KTNF, local: true, groupId: 2},
{name: "h264enc", mod: H264ENC, local: true, groupId: 1},
/*
{name: "g711enc", mod: G711ENC, local: true},
{name: "mpeg4dec", mod: MPEG4DEC, local: true, groupId: 1},
{name: "h264dec", mod: H264DEC, local: true, groupId: 1},
{name: "jpegdec", mod: JPEGDEC, local: true, groupId: 1},
{name: "g711dec", mod: G711DEC, local: true},
*/
]);
Program.main = null;
CE_DEBUG=3 log:
Thank you in advance.