This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Migrating from mpeg4enc to mpeg4enc_hdvicp



I'm trying to upgrade my codec. I thought it would be as simple as changing the configuration file for my project but it appears there are some additional quirks to it.

 

I did not change anything else from the configuration file but the following lines

 

 

var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.ce.MPEG4ENC');

var Engine = xdc.useModule('ti.sdo.ce.Engine');

var FCEngine = Engine.create("encode", [

    {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1},

]);

 

 

to 

 

 

var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc_hdvicp.ce.MPEG4ENC_HDVICP');

var Engine = xdc.useModule('ti.sdo.ce.Engine');

var FCEngine = Engine.create("encode", [

    {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1},

]);

 

But now when I try VIDENC1_create(...) with the same parameters as before, it fails with return code -1. Engine_getLastError() returns 12, Engine_ENOTAVAIL.

 

When I start my application with CE_DEBUG=2, the codec seems to be loaded correctly

 

@0,426,300us: [+4 T:0x4001fb20] OG - Global_init> This program was built with the following packages:

@0,426,969us: [+4 T:0x4001fb20] OG -     package gnu.targets.arm.rtsv5T (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/gnu/targets/arm/rtsv5T/) [1, 0, 0, 0]

@0,427,256us: [+4 T:0x4001fb20] OG -     package ti.sdo.linuxutils.edma (/home/eric/stuff/apps/dvsdk_3_10_00_19/linuxutils_2_25_04_10/packages/ti/sdo/linuxutils/edma/) [1, 0, 0]

@0,427,442us: [+4 T:0x4001fb20] OG -     package ti.sdo.linuxutils.cmem (/home/eric/stuff/apps/dvsdk_3_10_00_19/linuxutils_2_25_04_10/packages/ti/sdo/linuxutils/cmem/) [2, 2, 0]

@0,427,617us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/) [1, 0, 0]

@0,427,782us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.global (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/global/) [1, 0, 0]

@0,427,944us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.memutils (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/memutils/) [1, 0, 0]

@0,428,104us: [+4 T:0x4001fb20] OG -     package ti.xdais (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdais_6_25_02_11/packages/ti/xdais/) [1, 2.0, 1]

@0,428,262us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.addrspace (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/addrspace/) [1, 0, 0]

@0,428,423us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.utils (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/utils/) [1, 0, 2]

@0,428,583us: [+4 T:0x4001fb20] OG -     package ti.sdo.linuxutils.vicp (/home/eric/stuff/apps/dvsdk_3_10_00_19/linuxutils_2_25_04_10/packages/ti/sdo/linuxutils/vicp/) [1, 0, 0]

@0,428,789us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.hdvicp (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/hdvicp/) [1, 0, 1]

@0,429,071us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.nullresource (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/nullresource/) [1, 0, 0]

@0,429,683us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.rman (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/rman/) [2, 0, 0]

@0,429,876us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.edma3 (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/edma3/) [3, 0, 0]

@0,430,050us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.edma3chan (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/edma3chan/) [1, 0, 0]

@0,430,225us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.grouputils (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/grouputils/) [1, 0, 0]

@0,430,499us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.ires.vicp (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/vicp/) [1, 0, 1]

@0,430,681us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.vicpsync (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/vicpsync/) [1, 0, 0]

@0,430,855us: [+4 T:0x4001fb20] OG -     package ti.sdo.codecs.jpegenc (/home/eric/stuff/apps/dvsdk_3_10_00_19/dm365_codecs_03_10_00_07/packages/ti/sdo/codecs/jpegenc/) [1, 0, 0]

@0,431,019us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.global (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/global/) [1, 0, 0]

@0,870,805us: [+4 T:0x4001fb20] OG -     package ti.xdais.dm (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdais_6_25_02_11/packages/ti/xdais/dm/) [1, 0, 5]

@0,871,027us: [+4 T:0x4001fb20] OG -     package ti.sdo.utils.trace (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/utils/trace/) [1, 0, 0]

@0,871,215us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.hdvicpsync (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/hdvicpsync/) [1, 0, 0]

@0,871,387us: [+4 T:0x4001fb20] OG -     package ti.sdo.codecs.mpeg4enc_hdvicp (/home/eric/stuff/apps/dvsdk_3_10_00_19/dm365_mpeg4enc_hdvicp_02_00_00_08_production/dm365_mpeg4enc_hdvicp_02_00_00_08_production/packages/ti/sdo/codecs/mpeg4enc_hdvicp/) [1, 0, 0]

@0,871,567us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.node (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/node/) [1, 0, 0]

@0,871,722us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.utils.xdm (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/utils/xdm/) [1, 0, 2]

@0,871,884us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.dman3 (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/dman3/) [1, 0, 4]

@0,872,101us: [+4 T:0x4001fb20] OG -     package ti.sdo.fc.acpy3 (/home/eric/stuff/apps/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/acpy3/) [1, 0, 4]

@0,872,277us: [+4 T:0x4001fb20] OG -     package gnu.targets (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/gnu/targets/) [1, 0, 1]

@0,872,440us: [+4 T:0x4001fb20] OG -     package gnu.targets.arm (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/gnu/targets/arm/) [1, 0, 0, 0]

@0,872,603us: [+4 T:0x4001fb20] OG -     package ti.catalog.arm (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/ti/catalog/arm/) [1, 0, 1, 0]

@0,872,765us: [+4 T:0x4001fb20] OG -     package ti.catalog (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/ti/catalog/) [1, 0, 0]

@0,872,923us: [+4 T:0x4001fb20] OG -     package ti.platforms.evmDM365 (/home/eric/stuff/apps/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/ti/platforms/evmDM365/) [1, 0, 0]

@0,873,078us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.osal (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/osal/) [2, 0, 2]

@0,873,238us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.osal.linux (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/osal/linux/) [2, 0, 1]

@0,873,445us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.ipc (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/ipc/) [2, 0, 1]

@0,873,617us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.ipc.linux (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/ipc/linux/) [2, 0, 1]

@0,873,781us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.alg (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/alg/) [1, 0, 1]

@0,873,939us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/) [1, 0, 6]

@0,874,096us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.video2 (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/video2/) [1, 0, 2]

@0,874,262us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.video1 (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/video1/) [1, 0, 2]

@0,874,423us: [+4 T:0x4001fb20] OG -     package ti.sdo.codecs.mpeg4enc_hdvicp.ce (/home/eric/stuff/apps/dvsdk_3_10_00_19/dm365_mpeg4enc_hdvicp_02_00_00_08_production/dm365_mpeg4enc_hdvicp_02_00_00_08_production/packages/ti/sdo/codecs/mpeg4enc_hdvicp/ce/) [1, 0, 0]

@1,206,375us: [+4 T:0x4001fb20] OG -     package ti.sdo.ce.image1 (/home/eric/stuff/apps/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/image1/) [1, 0, 1]

@1,206,605us: [+4 T:0x4001fb20] OG -     package ti.sdo.codecs.jpegenc.ce (/home/eric/stuff/apps/dvsdk_3_10_00_19/dm365_codecs_03_10_00_07/packages/ti/sdo/codecs/jpegenc/ce/) [1, 0, 0]

@1,206,796us: [+4 T:0x4001fb20] OG -     package rtspserver_crim_config (/home/eric/stuff/prog/linux/trunk/rtspserver_crim/rtspserver_crim_config/) []

@1,207,907us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - LockMP_create> key: 0x524d414e count: 717116 attrs: 0xaf9e4

@1,208,644us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_create> lock[0xb34f8]

@1,209,008us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,209,617us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,209,850us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,210,054us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,210,443us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,210,688us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,210,950us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - LockMP_create> key: 0x4956444a count: 8776 attrs: 0xaf13c

@1,211,316us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_create> lock[0xb3520]

@1,211,526us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb3520]

@1,211,773us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb3520]

@1,212,531us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb3520]

@1,212,812us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb3520]

@1,213,176us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,213,421us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,213,611us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,213,806us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,213,987us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - LockMP_create> key: 0x50434958 count: 717116 attrs: 0xb1634

@1,214,325us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_create> lock[0xb3548]

@1,214,582us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb3548]

@1,214,787us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb3548]

@1,215,336us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb3548]

@1,215,606us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb3548]

@1,215,821us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb3548]

@1,216,079us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb3548]

@1,216,689us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb3548]

@1,216,959us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb3548]

@1,217,203us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,217,470us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,217,658us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,217,854us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,218,041us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,218,235us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,218,534us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,218,810us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,551,697us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,551,953us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,552,149us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_acquire> lock[0xb34f8]

@1,552,342us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_acquire> lock[0xb34f8]

@1,552,531us: [+0 T:0x4001fb20] ti.sdo.ce.osal.Sem - Sem_create> count: 1

@1,552,766us: [+0 T:0x4001fb20] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0xb3570]

@1,553,018us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Entered LockMP_release>lock[0xb34f8]

@1,553,224us: [+0 T:0x4001fb20] ti.sdo.ce.osal.LockMP - Leaving LockMP_release>lock[0xb34f8]

@1,553,434us: [+0 T:0x4001fb20] ti.sdo.ce.alg - ALG_init> Enter

@1,553,761us: [+0 T:0x4001fb20] ti.sdo.ce.alg - ALG_init> Exit

@1,554,155us: [+6 T:0x4001fb20] CE - Engine_init> CE debugging on (CE_DEBUG=2; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)

@1,554,587us: [+0 T:0x4001fb20] CS - Server_init()

@1,554,773us: [+0 T:0x4001fb20] CS - Server_init> Global_useLinkArbiter = 0

Here is the debug output from the VIDENC1_create call

@5,213,367us: [+0 T:0x42424490] ti.sdo.ce.video1.VIDENC1 - VIDENC1_create> Enter (engine=0xeae08, name='mpeg4enc', params=0xd63a0)

@5,213,609us: [+0 T:0x42424490] CV - VISA_create(0xeae08, 'mpeg4enc', 0xd63a0, 0x520, 'ti.sdo.ce.video1.IVIDENC1')

@5,213,806us: [+0 T:0x42424490] CV - VISA_create2(0xeae08, 'mpeg4enc', 0xd63a0, 0x54, 0x520, 'ti.sdo.ce.video1.IVIDENC1')

@5,214,132us: [+0 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_create> Enter (fxns=0xafb40, idma3Fxns=0x0, iresFxns=0xafbc0, params=0xd63a0, attrs=0x42423b4c)

@5,214,625us: [+2 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_create> useCachedMem = -1

@5,214,824us: [+0 T:0x42424490] ti.sdo.ce.alg - ALG_create> Enter (scratchId=1, fxns=0xafb40, parentAlg=0x0, params=0xd63a0, useCacheMem=-1)

@5,215,099us: [+2 T:0x42424490] ti.sdo.ce.alg - ALG_create> algNumAlloc 14 memory recs

@5,215,368us: [+7 T:0x42424490] ti.sdo.ce.alg - ALG_create> alg's algAlloc() returned alg-specific error code (0xffffffff)

@5,215,566us: [+7 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_create> Algorithm creation FAILED; make sure that 1) alg params are correct/supported, 2) there is enough internal and external algorithm memory available

@5,215,833us: [+0 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_delete> Enter(alg=0xed1d0)

@5,216,121us: [+0 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_delete> Exit

@5,216,308us: [+0 T:0x42424490] ti.sdo.ce.alg.Algorithm - Algorithm_create> return (0x0)[65642.230000] vpfe-capture vpfe-capture: input information not found for the subdev

 

@5,216,471us: [+6 T:0x42424490] CV - VISA_create2> FAILED to c[65642.250000]

[65642.250000]  ov2710_setstd, id>>32 = 10

reate local codec.

@5,216,619us: [+0 T:0x42424490] CV - VISA_delete(0xedfa0)

@5,216,753us: [+5 T:0x42424490] CV - VISA_delete> deleting codec (localQueue=0xffff, remoteQueue=0xffff)

@5,216,919us: [+0 T:0x42424490] ti.sdo.ce.video1.VIDENC1 - VIDENC1_create> return (0x0)

@5,217,135us: [+0 T:0x42424490] CE - Engine_getUsedMem(0xeae08)

I havent found any "migration guide", I figured the process would be rather straightforward. Is there something I'm missing here?

  • Hi Eric,

    The trace is saying that algAlloc (a standard function exposed by all XDM-compliant codecs) is returning the error code -1:

    @5,215,368us: [+7 T:0x42424490] ti.sdo.ce.alg - ALG_create> alg's algAlloc() returned alg-specific error code (0xffffffff)

    This leads me to think that the codec may not like the parameters that were passed in to the VIDENC1_create function. You may want to read through the documentation for your new mpeg4 encoder to ensure that the parameters that your application is using are valid. There are sometimes small differences between what is accepted by one codec versus another (e.g. one may accept maxBitRate=0 while another may want maxBitRate to be strictly greater than 0 in case when variable bit rate is used).

    Best regards,

    Vincent