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.