我在8168下已调通codec-enginer的video_copy算法程序和omx下的encode视频压缩程序,现在想两者结合在一起使用,但两者单独编译时都使用了多个目录,编译规则比较复杂。如要在一起使用,不知如何将两者结合在一起编译。请问我该怎样做或是有这样的例子吗?
user4029446:
我使用的是ezsdk
Chris Meng:
回复 user4029446:
Wang Lishi,
抱歉,EZSDK我不是很熟悉,我建议你使用DVR RDK。
如果你坚持使用EZSDK,你可以到e2e.ti.com上看看是否能搜索到一些有用的信息,例如:https://e2e.ti.com/support/embedded/linux/f/354/t/257082。
user4029446:
回复 Chris Meng:
Chris Meng,谢谢你的建议,我已成功编译了使用omx encode代码和CE的程序,但在例子中运行encode代码时出现了以下错误信息(独立运行encode是正确的),请问是什么原因?
root@dm816x-evm:/# ./app_remote.xv5T -i h264_test_output.yuv -f 60 -b 1000000 -w 720 -h 480 -c h264 -o samp2.264
output file: samp2.264input file: h264_test_output.yuvbit_rate: 1000000frame_rate: 60codec: h264width: 720height: 480 Encode example ===============================[t=0x000002aa] [tid=0x40038000] xdc.runtime.Main: Entering OMX_Init: (void)[t=0x00000330] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxInit> @line<142> [t=0x0000051b] [tid=0x40038000] xdc.runtime.Main: Entered function:DomxCore_procInit[t=0x000054ba] [tid=0x40038000] xdc.runtime.Main: SysLink_setup() complete[t=0x0000553e] [tid=0x40038000] xdc.runtime.Main: Entering ipc_initialize: (void)[t=0x00005572] [tid=0x40038000] xdc.runtime.Main: filePath = dm81xxbm_m3video.xem3[t=0x000055ad] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x00005607] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x0000564c] [tid=0x40038000] xdc.runtime.Main: Doing ProcMgr_open()[t=0x00005baa] [tid=0x40038000] xdc.runtime.Main: Processor state is Running[t=0x00005bf5] [tid=0x40038000] xdc.runtime.Main: Exiting ipc_initialize: (void)[t=0x00005c3e] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<OmxRpc_moduleRegisterMsgqHeap> @line<892> [t=0x00005ca4] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x00005cdf] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x00005d26] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DmmDelegate_createIpcHeap> @line<181> [t=0x00005d88] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DmmDelegate_createIpcHeap> @line<195> with error<0:ErrorNone>[t=0x00005dcd] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<927> msg<Before MessageQ_registerHeap>[t=0x00005e24] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<932> msg<After MessageQ_registerHeap>[t=0x00005e68] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<OmxRpc_moduleRegisterMsgqHeap> @line<935> with error<0:ErrorNone>[t=0x00005ea7] [tid=0x40038000] xdc.runtime.Main: Entering ipc_initialize: (void)[t=0x00005ed2] [tid=0x40038000] xdc.runtime.Main: filePath = dm81xxbm_m3vpss.xem3[t=0x00005ef9] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x00005f2f] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x00005f88] [tid=0x40038000] xdc.runtime.Main: Doing ProcMgr_open()[t=0x00006667] [tid=0x40038000] xdc.runtime.Main: Processor state is Running[t=0x000066ab] [tid=0x40038000] xdc.runtime.Main: Exiting ipc_initialize: (void)[t=0x000066da] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<OmxRpc_moduleRegisterMsgqHeap> @line<892> [t=0x0000671e] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x00006757] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x00006797] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DmmDelegate_createIpcHeap> @line<181> [t=0x000067da] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DmmDelegate_createIpcHeap> @line<195> with error<0:ErrorNone>[t=0x00006818] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<927> msg<Before MessageQ_registerHeap>[t=0x0000685e] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<932> msg<After MessageQ_registerHeap>[t=0x0000689d] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<OmxRpc_moduleRegisterMsgqHeap> @line<935> with error<0:ErrorNone>[t=0x000068db] [tid=0x40038000] xdc.runtime.Main: Entering ipc_initialize: (void)[t=0x00006906] [tid=0x40038000] xdc.runtime.Main: filePath = dm81xxbm_c6xdsp.xec674[t=0x0000692d] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x00006964] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x000585df] [tid=0x40038000] xdc.runtime.Main: Doing ProcMgr_open()[t=0x00058829] [tid=0x40038000] xdc.runtime.Main: Processor state is Unknown[t=0x0005886f] [tid=0x40038000] xdc.runtime.Main: Exiting ipc_initialize: (void)[t=0x0005889d] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<OmxRpc_moduleRegisterMsgqHeap> @line<892> [t=0x000588e3] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DomxCore_mapDomxCore2MultiProcId> @line<269> [t=0x0005891c] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxCore_mapDomxCore2MultiProcId> @line<275> with error<0:ErrorNone>[t=0x0005895c] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<DmmDelegate_createIpcHeap> @line<181> [t=0x000589a6] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DmmDelegate_createIpcHeap> @line<195> with error<0:ErrorNone>[t=0x000589e4] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<927> msg<Before MessageQ_registerHeap>[t=0x00058a2c] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<932> msg<After MessageQ_registerHeap>[t=0x00058a6c] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<OmxRpc_moduleRegisterMsgqHeap> @line<935> with error<0:ErrorNone>[t=0x0005a197] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<DomxInit> @line<183> msg<Waiting for Ipc_attach to happen b/w slave cores>[t=0x0014e4a5] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<DomxInit> @line<186> msg<Wait completed for Ipc_attach to happen b/w slave cores>[t=0x0014e532] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<OmxRpc_moduleInitServer> @line<793> [t=0x0014e596] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<omxrpc_rcm_server_create> @line<220> [t=0x0014e5d2] [tid=0x40038000] xdc.runtime.Main: @ omxrpc_rcm_server_create: rcmServerName OmxRpcRcmServer_3, priority 14[t=0x0014e609] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_create> @line<225> msg<Before RcmServer_Params_init>[t=0x0014e64d] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_create> @line<229> msg<After RcmServer_Params_init>[t=0x0014e68a] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_create> @line<232> msg<Before RcmServer_create>[t=0x0014ef2a] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_create> @line<240> msg<After RcmServer_create>[t=0x0014ef8b] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<omxrpc_rcm_server_create> @line<241> with error<0:ErrorNone>[t=0x0014efdc] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<omxrpc_rcm_server_remote_fxn_register> @line<279> [t=0x0014f035] [tid=0x40038000] xdc.runtime.Main: @ omxrpc_rcm_server_remote_fxn_register regFxnCategory 0[t=0x0014f068] [tid=0x40038000] xdc.runtime.Main: Calling RcmServer_addSymbol(OmxRpcGetHandle)[t=0x0014f0fb] [tid=0x40038000] xdc.runtime.Main: Calling RcmServer_addSymbol(OmxRpcFreeHandle)[t=0x0014f139] [tid=0x40038000] xdc.runtime.Main: Calling RcmServer_addSymbol(OmxRpcCreateProxyLite)[t=0x0014f16e] [tid=0x40038000] xdc.runtime.Main: Calling RcmServer_addSymbol(OmxRpcGetHeapMemStats)[t=0x0014f1a1] [tid=0x40038000] xdc.runtime.Main: Calling RcmServer_addSymbol(OmxRpcDeleteProxyLite)[t=0x0014f1d7] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<omxrpc_rcm_server_remote_fxn_register> @line<306> with error<0:ErrorNone>[t=0x0014f219] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<omxrpc_rcm_server_start> @line<255> [t=0x0014f24b] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_start> @line<256> msg<Before RcmServer_start>[t=0x0014f2bb] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<omxrpc_rcm_server_start> @line<258> msg<After RcmServer_start>[t=0x0014f2fd] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<omxrpc_rcm_server_start> @line<259> with error<0:ErrorNone>[t=0x0014f33a] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<OmxRpc_moduleInitServer> @line<854> with error<0:ErrorNone>[t=0x0014f376] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<DomxInit> @line<208> with error<0:ErrorNone>[t=0x0014f3df] [tid=0x40038000] xdc.runtime.Main: Entered function:DomxCore_mapPhyAddr2UsrVirtual[t=0x0014f452] [tid=0x40038000] xdc.runtime.Main: ProcMgr_map Success VirtAddr: @4066b000[t=0x0014f482] [tid=0x40038000] xdc.runtime.Main: ProcMgr_translateAddr Status [0x0] User Virtual Address [0x4066b000][t=0x0014f4cd] [tid=0x40038000] xdc.runtime.Main: Entered function:DomxCore_mapPhyAddr2UsrVirtual[t=0x0014f509] [tid=0x40038000] xdc.runtime.Main: ProcMgr_map Success VirtAddr: @40865000[t=0x0014f536] [tid=0x40038000] xdc.runtime.Main: ProcMgr_translateAddr Status [0x0] User Virtual Address [0x40865000][t=0x0014f578] [tid=0x40038000] xdc.runtime.Main: Entered function:DomxCore_mapPhyAddr2UsrVirtual[t=0x0014f5cb] [tid=0x40038000] xdc.runtime.Main: ProcMgr_map Success VirtAddr: @40394000[t=0x0014f5f8] [tid=0x40038000] xdc.runtime.Main: ProcMgr_translateAddr Status [0x0] User Virtual Address [0x40394000][t=0x0014f654] [tid=0x40038000] xdc.runtime.Main: Leaving OMX_Init: retVal OMX_ERRORTYPE: 0 OMX_Init completed UIAClient is ready to send a UIA configuration commandUIAClient received UIA_CONFIGURE_ACKUIAClient is done sending requestsUIAClient is ready to send a UIA configuration commandUIAClient received UIA_CONFIGURE_ACKUIAClient is done sending requests opening file [t=0x00150994] [tid=0x40038000] xdc.runtime.Main: Entered: OMX_GetHandle (0xcad78, OMX.TI.DUCATI.VIDENC, 0xcadc0, 0xcad80)[t=0x001a273a] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFCC idx 0[t=0x001a278a] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFDC idx 1[t=0x001a27c0] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFPC.DEIHDUALOUT idx 2[t=0x001a27f8] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFPC.DEIMDUALOUT idx 3[t=0x001a282f] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFPC.NF idx 4[t=0x001a2863] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VFPC.INDTXSCWB idx 5[t=0x001a289a] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.CTRL.TVP idx 6[t=0x001a28cf] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.CTRL.DC idx 7[t=0x001a2903] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.VPSSM3.VSWMOSAIC idx 8[t=0x001a2938] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC In table OMX.TI.DUCATI.VIDENC idx 9[t=0x001a296c] [tid=0x40038000] xdc.runtime.Main: Component OMX.TI.DUCATI.VIDENC found idx: 9[t=0x001a29bc] [tid=0x40038000] xdc.runtime.Main: In OMX_GetHandle, component OMX.TI.DUCATI.VIDENC, omxhandle 0xcb2a0[t=0x001a3cad] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<OmxProxy_commonInit> @line<2491> [t=0x001a3d1a] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> @<OmxProxy_commonInit> @line<2492> msg<OMX.TI.DUCATI.VIDENC>[t=0x001a3d60] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Entering<omxproxy_map_component_name2info> @line<747> [t=0x001a3d9f] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx> Leaving<omxproxy_map_component_name2info> @line<764> with error<0:ErrorNone>[t=0x001a3e07] [tid=0x40038000] xdc.runtime.Memory: ERROR: line 52: out of memory: heap=0x0, size=10240xdc.runtime.Memory: line 52: out of memory: heap=0x0, size=10240[t=0x001a3e73] [tid=0x40038000] xdc.runtime.Main: OmxProxy_commonInit:2546::Memory alloc failed for bufferList.Alloc Size = (10240)[t=0x001a3eb1] [tid=0x40038000] xdc.runtime.Main: Module<ti.omx>:Assert failure in <OmxProxy_commonInit> @line<2549>; Error: Memory alloc failed for bufferListapp_remote.xv5T: OmxProxy.c:2549: OmxProxy_commonInit: Assertion `(eError == OMX_ErrorNone)' failed.Aborted