diff options
Diffstat (limited to 'recipes/ti/gstreamer-ti/0001-gstreamer-ti-tracker-1055.patch')
-rw-r--r-- | recipes/ti/gstreamer-ti/0001-gstreamer-ti-tracker-1055.patch | 994 |
1 files changed, 994 insertions, 0 deletions
diff --git a/recipes/ti/gstreamer-ti/0001-gstreamer-ti-tracker-1055.patch b/recipes/ti/gstreamer-ti/0001-gstreamer-ti-tracker-1055.patch new file mode 100644 index 0000000000..99a94a5561 --- /dev/null +++ b/recipes/ti/gstreamer-ti/0001-gstreamer-ti-tracker-1055.patch @@ -0,0 +1,994 @@ +From 455900e8cbb7a88d3ec05cba5393f4ca0bf22adc Mon Sep 17 00:00:00 2001 +From: Brijesh Singh <bksingh@ti.com> +Date: Sun, 9 May 2010 05:21:19 -0500 +Subject: [PATCH] gstreamer ti tracker 1055 + +--- + Makefile.external | 49 +++++++--- + src/Makefile.am | 4 +- + src/gstticodecplugin_dm355.cfg | 143 ++++++++++++----------------- + src/gstticodecplugin_dm365.cfg | 185 ++++++++++++++++++-------------------- + src/gstticodecplugin_dm6467t.cfg | 34 +++++++ + src/gstticodecs_dm355.c | 11 +-- + src/gstticodecs_dm365.c | 23 ++++-- + src/gstticodecs_dm6467.c | 2 +- + src/gstticodecs_dm6467t.c | 69 ++++++++++++++ + src/gsttidmaivideosink.c | 25 ++++- + src/gsttividdec2.c | 73 ++++++++------- + src/gsttividenc1.c | 10 ++- + src/gsttividresize.c | 4 + + 13 files changed, 380 insertions(+), 252 deletions(-) + create mode 100644 src/gstticodecplugin_dm6467t.cfg + create mode 100644 src/gstticodecs_dm6467t.c + +diff --git a/Makefile.external b/Makefile.external +index ca14b49..1f67783 100644 +--- a/Makefile.external ++++ b/Makefile.external +@@ -3,8 +3,7 @@ + # + # The only customization required below is defining the DVSDK_PATH + # and, if your DVSDK doesn't include DMAI, the set DMAI_INSTALL_DIR variable +-# appropriately. If your DVSDK does include DMAI, then delete the line +-# setting the DMAI_INSTALL_DIR variable below. ++# appropriately. + # + # Copyright (C) 2009 Ridgerun + # +@@ -17,15 +16,16 @@ DMAI_INSTALL_DIR=undefined + ifeq ($(DVSDK_PATH),undefined) + $(error You need to define the environment variable DVSDK_PATH) + endif ++include $(DVSDK_PATH)/Rules.make ++ + ifeq ($(DMAI_INSTALL_DIR),undefined) + $(error You need to define the environment variable DMAI_INSTALL_DIR) + endif + + default: +- @echo "Please specify the target: dm6446, omap3530, dm355, dm6467, dm365" ++ @echo "Please specify the target: dm6446, omap3530, dm355, dm6467, dm6467t, dm365" + +-include $(DVSDK_PATH)/Rules.make +-export PLATFORM=$(MAKECMDGOALS) ++export GST_TI_PLATFORM=$(MAKECMDGOALS) + export BIOS_INSTALL_DIR + export CE_INSTALL_DIR + export CMEM_INSTALL_DIR +@@ -33,6 +33,7 @@ export CODEC_INSTALL_DIR + export DMAI_INSTALL_DIR + export FC_INSTALL_DIR + export LINK_INSTALL_DIR ++export LINK_XDC_ROOT = $(LINK_INSTALL_DIR)/packages + export LINUXKERNEL_INSTALL_DIR + export LPM_INSTALL_DIR + export MVTOOL_DIR +@@ -41,34 +42,49 @@ export XDAIS_INSTALL_DIR + export XDC_INSTALL_DIR + export EDMA3_LLD_INSTALL_DIR + +-ifeq ($(PLATFORM), dm355) +- export XDC_TARGET = gnu.targets.MVArm9 +- export XDC_PLATFORM = ti.platforms.evmDM355 ++ifeq ($(GST_TI_PLATFORM), dm355) ++ export XDC_TARGET = gnu.targets.arm.GCArmv5T ++ export XDC_PLATFORM = ti.platforms.evmDM355 ++ export MVTOOL_PREFIX = $(CSTOOL_PREFIX) ++ export MVTOOL_DIR = $(CSTOOL_DIR) ++ export PLATFORM_XDC = ${XDC_PLATFORM} + endif + +-ifeq ($(PLATFORM), dm6446) ++ifeq ($(GST_TI_PLATFORM), dm6446) + export XDC_TARGET = gnu.targets.MVArm9 + export XDC_PLATFORM = ti.platforms.evmDM6446 + endif + +-ifeq ($(PLATFORM), dm6467) ++ifeq ($(GST_TI_PLATFORM), dm6467) + export XDC_TARGET = gnu.targets.MVArm9 + export XDC_PLATFORM = ti.platforms.evmDM6467 + endif + +-ifeq ($(PLATFORM), dm365) +- export XDC_TARGET = gnu.targets.MVArm9 +- export XDC_PLATFORM = ti.platforms.evmDM365 ++ifeq ($(GST_TI_PLATFORM), dm6467t) ++ export XDC_TARGET = gnu.targets.arm.GCArmv5T ++ export XDC_PLATFORM = ti.platforms.evmDM6467 ++ export LINK_XDC_ROOT = $(LINK_INSTALL_DIR) ++ export MVTOOL_PREFIX = $(CSTOOL_PREFIX) ++ export MVTOOL_DIR = $(CSTOOL_DIR) ++ export PLATFORM_XDC = ${XDC_PLATFORM} + endif + +-ifeq ($(PLATFORM), omap3530) ++ifeq ($(GST_TI_PLATFORM), dm365) ++ export XDC_TARGET = gnu.targets.arm.GCArmv5T ++ export XDC_PLATFORM = ti.platforms.evmDM365 ++ export MVTOOL_PREFIX = $(CSTOOL_PREFIX) ++ export MVTOOL_DIR = $(CSTOOL_DIR) ++ export PLATFORM_XDC = ${XDC_PLATFORM} ++endif ++ ++ifeq ($(GST_TI_PLATFORM), omap3530) + export XDC_TARGET = gnu.targets.arm.GCArmv5T + export XDC_PLATFORM = ti.platforms.evm3530 + export MVTOOL_PREFIX = $(CSTOOL_PREFIX) + export MVTOOL_DIR = $(CSTOOL_DIR) + endif + +-CPPFLAGS=-DPlatform_$(PLATFORM) ++CPPFLAGS=-DPlatform_$(GST_TI_PLATFORM) + HOST=arm-none-linux-gnueabi + + configure: +@@ -86,6 +102,9 @@ dm6446: Makefile + dm6467: Makefile + $(MAKE) -f Makefile + ++dm6467t: Makefile ++ $(MAKE) -f Makefile ++ + dm355: Makefile + $(MAKE) -f Makefile + +diff --git a/src/Makefile.am b/src/Makefile.am +index 231beb0..95973a8 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -1,6 +1,6 @@ + # plugindir is set in configure + +-XDC_CONFIG_BASENAME = gstticodecplugin_$(PLATFORM) ++XDC_CONFIG_BASENAME = gstticodecplugin_$(GST_TI_PLATFORM) + plugin_LTLIBRARIES = libgstticodecplugin.la + + # sources used to compile this plug-in +@@ -21,7 +21,7 @@ BUILT_SOURCES = $(XDC_CONFIG_BASENAME)/compiler.opt $(XDC_CONFIG_BASENAME)/linke + XDC_PATH = .;$(XDC_INSTALL_DIR)/packages;$(LINK_XDC_ROOT);$(FC_INSTALL_DIR)/packages;$(CE_INSTALL_DIR)/packages;$(XDAIS_INSTALL_DIR)/packages;$(CODEC_INSTALL_DIR)/packages;$(CMEM_INSTALL_DIR)/packages;$(DMAI_INSTALL_DIR)/packages;$(LPM_INSTALL_DIR)/packages;$(XDC_USER_PATH);$(EDMA3_LLD_INSTALL_DIR)/packages; + + gstticodecs_platform.c : +- ln -s $(srcdir)/gstticodecs_$(PLATFORM).c gstticodecs_platform.c ++ ln -s $(srcdir)/gstticodecs_$(GST_TI_PLATFORM).c gstticodecs_platform.c + + %/compiler.opt %/linker.cmd : %.cfg + XDCPATH="$(XDC_PATH)" $(CONFIGURO) -c $(MVTOOL_DIR) -o $(XDC_CONFIG_BASENAME) -t $(XDC_TARGET) -p $(XDC_PLATFORM) -b $(DMAI_INSTALL_DIR)/packages/config.bld $< +diff --git a/src/gstticodecplugin_dm355.cfg b/src/gstticodecplugin_dm355.cfg +index 7ceae4f..bf533f0 100644 +--- a/src/gstticodecplugin_dm355.cfg ++++ b/src/gstticodecplugin_dm355.cfg +@@ -1,84 +1,59 @@ +-/* +- * Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/ +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU Lesser General Public License as +- * published by the Free Software Foundation version 2.1 of the License. +- * +- * This program is distributed #as is# WITHOUT ANY WARRANTY of any kind, +- * whether express or implied; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Lesser General Public License for more details. +- * +- */ +- +-prog.build.platform = "ti.platforms.evmDM355"; +- +-/* Load support for the Codec Engine OSAL */ +-var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global'); +- +-/* Configure CE to use it's DSP Link Linux version */ +-osalGlobal.runtimeEnv = osalGlobal.LINUX; +- +-/* +- * ======== Engine Configuration ======== +- */ +-var viddec = xdc.module('ti.sdo.ce.video2.IVIDDEC2'); +-var imgenc = xdc.module('ti.sdo.ce.image1.IIMGENC1'); +-var MPEG4DEC = xdc.useModule('ti.sdo.codecs.mpeg4dec.dm355.ce.MPEG4DEC'); +-var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.dm355.ce.MPEG4ENC'); +-var JPEGENC = xdc.useModule('ti.sdo.codecs.jpegenc.dm355.ce.JPEGENC'); +-var JPEGDEC = xdc.useModule('ti.sdo.codecs.jpegdec.dm355.ce.JPEGDEC'); +- +-var Engine = xdc.useModule('ti.sdo.ce.Engine'); +-var decodeEngine = Engine.create("decode", [ +- {name: "mpeg4dec", mod: MPEG4DEC, local: true, groupId: 1}, +- {name: "jpegdec", mod: JPEGDEC, local: true, groupId: 1}, +-]); +- +-var encodeEngine = Engine.create("encode", [ +- {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1}, +- {name: "jpegenc", mod: JPEGENC, local: true, groupId: 1}, +-]); +- +-/* Load support for the 'Davinci Multimedia Application Interface' modules */ +-var DMAI = xdc.loadPackage('ti.sdo.dmai'); +- +-/* +- * ======== DMAN3 Configuration ======== +- */ +- +-var DMAN3 = xdc.useModule('ti.sdo.fc.dman3.DMAN3'); +- +-/* give DMAN3 all TCCs except those hard-coded by The JPEG & MPEG Enc & Decs */ +- +-/* +- * For the 32-63 range, configure tccAllocationMaskH to exclude used channels +- * JPEG Dec: {33-47, 52-57} +- * JPEG Enc: {34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49} +- * MPEG Dec: {32-63} +- * MPEG Enc: {12, 13, 34, 35, 40,41,42,43,44,45,46,47,48,49,50,52,53, +- * 54,55,56,57,63} +- */ +-DMAN3.tccAllocationMaskH = 0x0; /* everthing 32-63 hardcoded and unavailable */ +- +-/* Give DMAN3 all lower TCCs except what's taken by Linux kernel and a Codec: +- * Based on the info from montavista: {2, 3, 8, 9, 26, 27, 30, 31} +- * and MPEG Enc taking up: {12, 13} +- */ +-DMAN3.tccAllocationMaskL = 0x33ffccf3; +- +-/* Following assignments will give DMAN3 control of PaRAMs above 78: */ +-DMAN3.paRamBaseIndex = 64; +-DMAN3.numPaRamEntries = 48; +-DMAN3.nullPaRamIndex = 127; +- +-/* Configure Scratch Group's DMAN3 resources */ +-DMAN3.numTccGroup[1] = 0; +-DMAN3.numPaRamGroup[1] = 32; +- +-DMAN3.qdmaChannels = [0, 1, 2, 3, 4, 5, 6, 7]; +-DMAN3.maxQdmaChannels = 8; +-DMAN3.numQdmaChannels = 8; +-DMAN3.maxTCs = 2; +- ++/* ===========================================================================
++ * Copyright (c) Texas Instruments Incorporated 2009
++ *
++ * Use of this software is controlled by the terms and conditions found in
++ * the license agreement under which this software has been supplied or
++ * provided.
++ * ===========================================================================
++ */
++
++/* Load support for the Codec Engine OSAL */
++var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
++
++/* Configure CE to use it's DSP Link Linux version */
++osalGlobal.runtimeEnv = osalGlobal.LINUX;
++
++/* Configure RMAN */
++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;
++
++var EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings');
++var EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN');
++var EDMA = xdc.useModule('ti.sdo.linuxutils.edma.EDMA');
++var VICPLU = xdc.useModule('ti.sdo.linuxutils.vicp.VICP');
++var VICP = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2');
++var VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC');
++var ADDRSPACE = xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE');
++var CMEM = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM');
++
++/*
++ * ======== Engine Configuration ========
++ */
++var viddec = xdc.module('ti.sdo.ce.video2.IVIDDEC2');
++var auddec = xdc.module('ti.sdo.ce.audio.IAUDDEC');
++var videnc = xdc.module('ti.sdo.ce.video1.IVIDENC1');
++var audenc = xdc.module('ti.sdo.ce.audio.IAUDENC');
++
++var MPEG4DEC = xdc.useModule('ti.sdo.codecs.mpeg4dec.ce.MPEG4DEC');
++var JPEGDEC = xdc.useModule('ti.sdo.codecs.jpegdec.ce.JPEGDEC');
++var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.ce.MPEG4ENC');
++var JPEGENC = xdc.useModule('ti.sdo.codecs.jpegenc.ce.JPEGENC');
++
++var Engine = xdc.useModule('ti.sdo.ce.Engine');
++var myEngine = Engine.create("codecServer", [
++ {name: "mpeg4dec", mod: MPEG4DEC, local: true, groupId: 1},
++ {name: "jpegdec", mod: JPEGDEC, local: true, groupId: 1},
++ {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1},
++ {name: "jpegenc", mod: JPEGENC, local: true, groupId: 1}
++]);
++
++/* Load support for the 'Davinci Multimedia Application Interface' modules */
++var DMAI = xdc.loadPackage('ti.sdo.dmai');
++
+diff --git a/src/gstticodecplugin_dm365.cfg b/src/gstticodecplugin_dm365.cfg +index 6442dce..0e94a35 100644 +--- a/src/gstticodecplugin_dm365.cfg ++++ b/src/gstticodecplugin_dm365.cfg +@@ -1,99 +1,86 @@ +-/* +- * Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/ +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU Lesser General Public License as +- * published by the Free Software Foundation version 2.1 of the License. +- * +- * This program is distributed #as is# WITHOUT ANY WARRANTY of any kind, +- * whether express or implied; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Lesser General Public License for more details. +- * +- */ +- +-prog.build.platform = "ti.platforms.evmDM365"; +- +-/* Load support for the Codec Engine OSAL */ +-var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global'); +- +-/* Configure CE to use it's DSP Link Linux version */ +-osalGlobal.runtimeEnv = osalGlobal.LINUX; +- +-/* +- * ======== Engine Configuration ======== +- */ +-var videnc = xdc.module('ti.sdo.ce.video1.IVIDENC1'); +-var viddec = xdc.module('ti.sdo.ce.video2.IVIDDEC2'); +- +-var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.ce.MPEG4ENC'); +-var H264ENC = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC'); +-var MPEG4DEC = xdc.useModule('ti.sdo.codecs.mpeg4dec.ce.MPEG4DEC'); +-var H264DEC = xdc.useModule('ti.sdo.codecs.h264dec.ce.H264DEC'); +-var JPEGENC = xdc.useModule('ti.sdo.codecs.jpegenc.ce.JPEGENC'); +-var JPEGDEC = xdc.useModule('ti.sdo.codecs.jpegdec.ce.JPEGDEC'); +- +-var Engine = xdc.useModule('ti.sdo.ce.Engine'); +-var encodeEngine = Engine.create("encode", [ +- {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1}, +- {name: "h264enc", mod: H264ENC, local: true, groupId: 1}, +- {name: "jpegenc", mod: JPEGENC, local: true, groupId: 1}, +-]); +-var decodeEngine = Engine.create("decode", [ +- {name: "mpeg4dec", mod: MPEG4DEC, local: true, groupId: 1}, +- {name: "h264dec", mod: H264DEC, local: true, groupId: 1}, +- {name: "jpegdec", mod: JPEGDEC, local: true, groupId: 1}, +-]); +- +-/* Load support for the 'Davinci Multimedia Application Interface' modules */ +-var DMAI = xdc.loadPackage('ti.sdo.dmai'); +- +-/* Load support for SimpleWidget */ +-/*var SW = xdc.loadPackage('ti.sdo.simplewidget');*/ +- +- +-/* Configure RMAN */ +-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; +- +-/* Configure VICPSYNC */ +-var VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC'); +- +-/* Configure HDVICPSYNC */ +-var HDVICPSYNC = xdc.useModule('ti.sdo.fc.hdvicpsync.HDVICPSYNC'); +- +-/* Configure MEMUTILS */ +-var MEMUTILS = xdc.useModule('ti.sdo.fc.memutils.MEMUTILS'); +- +-var EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings'); +- +-var HDVICP = xdc.useModule('ti.sdo.fc.ires.hdvicp.HDVICP'); +- +-var VICP = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2'); +- +-var ADDRSPACE = xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE'); +- +-var EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN'); +- +-var LSP = xdc.useModule('ti.sdo.linuxutils.edma.EDMA'); +- +-var CMEM = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM'); +- +- +-/* Uncomment these lines if you wish to debug FC and enable FC trace */ +- +-/* +-xdc.loadPackage('ti.sdo.fc.ires.vicp').profile = "debug_trace"; +-xdc.loadPackage('ti.sdo.fc.ires.edma3chan').profile = "debug_trace"; +-xdc.loadPackage('ti.sdo.fc.rman').profile = "debug_trace"; +-xdc.loadPackage('ti.sdo.fc.edma3').profile = "debug_trace"; +-EDMA3CHAN.trace = true; +-EDMA3CHAN.debug = true; +-*/ ++/* ============================================================================
++ * Copyright (c) Texas Instruments Incorporated 2009
++ *
++ * Use of this software is controlled by the terms and conditions found in the
++ * license agreement under which this software has been supplied or provided.
++ * ============================================================================
++ */
++
++/* Load support for the Codec Engine OSAL */
++var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
++
++/* Configure CE to use it's DSP Link Linux version */
++osalGlobal.runtimeEnv = osalGlobal.LINUX;
++
++/*
++ * ======== Engine Configuration ========
++ */
++var viddec = xdc.module('ti.sdo.ce.video2.IVIDDEC2');
++var auddec = xdc.module('ti.sdo.ce.audio.IAUDDEC');
++
++var MPEG4DEC = xdc.useModule('ti.sdo.codecs.mpeg4dec_hdvicp.ce.MPEG4DEC_HDVICP');
++var MPEG2DEC = xdc.useModule('ti.sdo.codecs.mpeg2dec.ce.MPEG2DEC');
++var H264DEC = xdc.useModule('ti.sdo.codecs.h264dec.ce.H264DEC');
++var MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc_hdvicp.ce.MPEG4ENC_HDVICP');
++var MPEG2ENC = xdc.useModule('ti.sdo.codecs.mpeg2enc.ce.MPEG2ENC');
++var H264ENC = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC');
++
++var Engine = xdc.useModule('ti.sdo.ce.Engine');
++var myEngine = Engine.create("codecServer", [
++ {name: "mpeg4dec", mod: MPEG4DEC, local: true, groupId: 1},
++ {name: "mpeg2dec", mod: MPEG2DEC, local: true, groupId: 1},
++ {name: "h264dec", mod: H264DEC, local: true, groupId: 1},
++ {name: "mpeg4enc", mod: MPEG4ENC, local: true, groupId: 1},
++ {name: "mpeg2enc", mod: MPEG2ENC, local: true, groupId: 1},
++ {name: "h264enc", mod: H264ENC, local: true, groupId: 1},
++]);
++
++
++
++/* Load support for the 'Davinci Multimedia Application Interface' modules */
++var DMAI = xdc.loadPackage('ti.sdo.dmai');
++
++/* Configure RMAN */
++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;
++
++/* Configure VICPSYNC */
++var VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC');
++
++/* Configure HDVICPSYNC */
++var HDVICPSYNC = xdc.useModule('ti.sdo.fc.hdvicpsync.HDVICPSYNC');
++
++/* Configure MEMUTILS */
++var MEMUTILS = xdc.useModule('ti.sdo.fc.memutils.MEMUTILS');
++
++var EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings');
++
++var HDVICP = xdc.useModule('ti.sdo.fc.ires.hdvicp.HDVICP');
++
++var VICP = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2');
++
++var EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN');
++
++var EDMA = xdc.useModule('ti.sdo.linuxutils.edma.EDMA');
++
++var ADDRSPACE = xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE');
++
++var CMEM = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM');
++
++/* Uncomment these lines if you wish to debug FC and enable FC trace */
++/*
++/*
++xdc.loadPackage('ti.sdo.fc.ires.vicp').profile = "debug_trace";
++xdc.loadPackage('ti.sdo.fc.ires.edma3chan').profile = "debug_trace";
++xdc.loadPackage('ti.sdo.fc.rman').profile = "debug_trace";
++xdc.loadPackage('ti.sdo.fc.edma3').profile = "debug_trace";
++EDMA3CHAN.trace = true;
++EDMA3CHAN.debug = true;
++*/
+diff --git a/src/gstticodecplugin_dm6467t.cfg b/src/gstticodecplugin_dm6467t.cfg +new file mode 100644 +index 0000000..686cfeb +--- /dev/null ++++ b/src/gstticodecplugin_dm6467t.cfg +@@ -0,0 +1,34 @@ ++/* ============================================================================ ++ * Copyright (c) Texas Instruments Incorporated 2009 ++ * ++ * Use of this software is controlled by the terms and conditions found in the ++ * license agreement under which this software has been supplied or provided. ++ * ============================================================================ ++ */ ++ ++/* Load support for the Codec Engine OSAL */ ++var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global'); ++var os = xdc.useModule('ti.sdo.ce.osal.linux.Settings'); ++osalGlobal.os = os; ++ ++/* Configure CE to use it's DSP Link Linux version */ ++var ipc = xdc.useModule('ti.sdo.ce.ipc.Settings'); ++ipc.commType = ipc.COMM_DSPLINK; ++ ++/* ++ * ======== Engine Configuration ======== ++ */ ++var Engine = xdc.useModule('ti.sdo.ce.Engine'); ++var demoEngine = Engine.createFromServer( ++ "codecServer", ++ "./bin/cs.x64P", ++ "ti.sdo.server.cs" ++ ); ++ ++var combopath = "" + java.lang.System.getenv("CODEC_SERVER"); ++if (combopath != "" && combopath != "null") { ++ demoEngine.server = java.lang.System.getenv("CODEC_SERVER"); ++} ++ ++/* Load support for the 'Davinci Multimedia Application Interface' modules */ ++var DMAI = xdc.loadPackage('ti.sdo.dmai'); +diff --git a/src/gstticodecs_dm355.c b/src/gstticodecs_dm355.c +index a372b06..9d4325b 100644 +--- a/src/gstticodecs_dm355.c ++++ b/src/gstticodecs_dm355.c +@@ -22,8 +22,7 @@ + #include "gstticodecs.h" + + /* Declaration of the production engine and decoders shipped with the DVSDK */ +-static Char decodeEngine[] = "decode"; +-static Char encodeEngine[] = "encode"; ++static Char codecServer[] = "codecServer"; + + /* NULL terminated list of speech decoders in the engine to use in the demo */ + GstTICodec gst_ticodec_codecs[] = { +@@ -32,25 +31,25 @@ GstTICodec gst_ticodec_codecs[] = { + { + "MPEG4 Video Decoder", /* String name of codec used by plugin */ + "mpeg4dec", /* String name of codec used by CE */ +- decodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ + }, + + { + "MPEG4 Video Encoder", /* String name of codec used by plugin */ + "mpeg4enc", /* String name of codec used by CE */ +- encodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ + }, + + /* Imaging Codecs */ + { + "JPEG Image Encoder", + "jpegenc", +- encodeEngine ++ codecServer + }, + { + "JPEG Image Decoder", + "jpegdec", +- decodeEngine ++ codecServer + }, + + { NULL } +diff --git a/src/gstticodecs_dm365.c b/src/gstticodecs_dm365.c +index 9572403..cf81e6f 100644 +--- a/src/gstticodecs_dm365.c ++++ b/src/gstticodecs_dm365.c +@@ -22,8 +22,7 @@ + #include "gstticodecs.h" + + /* Declaration of the production engine and decoders shipped with the DVSDK */ +-static Char decodeEngine[] = "decode"; +-static Char encodeEngine[] = "encode"; ++static Char codecServer[] = "codecServer"; + + /* NULL terminated list of speech decoders in the engine to use in the demo */ + GstTICodec gst_ticodec_codecs[] = { +@@ -32,25 +31,37 @@ GstTICodec gst_ticodec_codecs[] = { + { + "MPEG4 Video Decoder", /* String name of codec used by plugin */ + "mpeg4dec", /* String name of codec used by CE */ +- decodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ ++ }, ++ ++ { ++ "MPEG2 Video Decoder", /* String name of codec used by plugin */ ++ "mpeg2dec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ + }, + + { + "MPEG4 Video Encoder", /* String name of codec used by plugin */ + "mpeg4enc", /* String name of codec used by CE */ +- encodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ ++ }, ++ ++ { ++ "MPEG2 Video Encoder", /* String name of codec used by plugin */ ++ "mpeg2enc", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ + }, + + { + "H.264 Video Decoder", /* String name of codec used by plugin */ + "h264dec", /* String name of codec used by CE */ +- decodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ + }, + + { + "H.264 Video Encoder", /* String name of codec used by plugin */ + "h264enc", /* String name of codec used by CE */ +- encodeEngine /* Engine that contains this codec */ ++ codecServer /* Engine that contains this codec */ + }, + + { NULL } +diff --git a/src/gstticodecs_dm6467.c b/src/gstticodecs_dm6467.c +index b9b0499..cbb6520 100644 +--- a/src/gstticodecs_dm6467.c ++++ b/src/gstticodecs_dm6467.c +@@ -1,5 +1,5 @@ + /* +- * gstticodecs_dm6446.c ++ * gstticodecs_dm6467.c + * + * This file provides information for available codecs on the DM6446 platform. + * +diff --git a/src/gstticodecs_dm6467t.c b/src/gstticodecs_dm6467t.c +new file mode 100644 +index 0000000..fe597d5 +--- /dev/null ++++ b/src/gstticodecs_dm6467t.c +@@ -0,0 +1,69 @@ ++/* ++ * gstticodecs_dm6467t.c ++ * ++ * This file provides information for available codecs on the DM6446 platform. ++ * ++ * Original Author: ++ * Don Darling, Texas Instruments, Inc. ++ * ++ * Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as ++ * published by the Free Software Foundation version 2.1 of the License. ++ * ++ * This program is distributed #as is# WITHOUT ANY WARRANTY of any kind, ++ * whether express or implied; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ */ ++ ++#include "gstticodecs.h" ++ ++/* Declaration of the production engine and decoders shipped with the DVSDK */ ++static Char codecServer[] = "codecServer"; ++ ++/* NULL terminated list of speech decoders in the engine to use in the demo */ ++GstTICodec gst_ticodec_codecs[] = { ++ ++ /* Speech Codecs */ ++ { ++ "G.711 Speech Decoder", /* String name of codec used by plugin */ ++ "g711dec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, { ++ "G.711 Speech Encoder", /* String name of codec used by plugin */ ++ "g711enc", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, ++ ++ /* Audio Codecs */ ++ { ++ "AAC Audio Decoder", /* String name of codec used by plugin */ ++ "aachedec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, ++ ++ /* Video Codecs */ ++ { ++ "H.264 Video Decoder", /* String name of codec used by plugin */ ++ "h264dec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, { ++ "H.264 BP/HP Decoder", /* Name of codec used by plugin */ ++ "h2641080p60vdec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, { ++ "H.264 Video Encoder", /* String name of codec used by plugin */ ++ "h264enc", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, { ++ "MPEG2 Video Decoder", /* String name of codec used by plugin */ ++ "mpeg2dec", /* String name of codec used by CE */ ++ codecServer /* Engine that contains this codec */ ++ }, ++ ++ { NULL } ++}; ++ +diff --git a/src/gsttidmaivideosink.c b/src/gsttidmaivideosink.c +index 5f6a5b3..81bdac7 100644 +--- a/src/gsttidmaivideosink.c ++++ b/src/gsttidmaivideosink.c +@@ -32,11 +32,12 @@ + /* Define sink (input) pad capabilities. + * + * UYVY - YUV 422 interleaved corresponding to V4L2_PIX_FMT_UYVY in v4l2 +- * Y8C8 - YUV 422 semi planar. The dm6467 VDCE outputs this format after a ++ * NV16 - YUV 422 semi planar. The dm6467 VDCE outputs this format after a + * color conversion.The format consists of two planes: one with the + * Y component and one with the CbCr components interleaved (hence semi) * + * See the LSP VDCE documentation for a thorough description of this + * format. ++ * Y8C8 - Same as NV16. Y8C8 was used in MVL-based LSPs. + * NV12 - YUV 420 semi planar corresponding to V4L2_PIX_FMT_NV12 in v4l2. + * The format consists of two planes: one with the + * Y component and one with the CbCr components interleaved with +@@ -62,6 +63,11 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ( + "width=(int)[ 1, MAX ], " + "height=(int)[ 1, MAX ];" + "video/x-raw-yuv, " ++ "format=(fourcc)NV16, " ++ "framerate=(fraction)[ 0, MAX ], " ++ "width=(int)[ 1, MAX ], " ++ "height=(int)[ 1, MAX ];" ++ "video/x-raw-yuv, " + "format=(fourcc)NV12, " + "framerate=(fraction)[ 0, MAX ], " + "width=(int)[ 1, MAX ], " +@@ -219,7 +225,7 @@ static void gst_tidmaivideosink_class_init(GstTIDmaiVideoSinkClass * klass) + "Video Standard used\n" + "\tAUTO (if supported), CIF, SIF_NTSC, SIF_PAL, VGA, D1_NTSC\n" + "\tD1_PAL, 480P, 576P, 720P_60, 720P_50, 1080I_30, 1080I_25\n" +- "\t1080P_30, 1080P_25, 1080P_24\n", ++ "\t1080P_30, 1080P_60, 1080P_25, 1080P_24\n", + NULL, G_PARAM_READWRITE)); + + g_object_class_install_property(gobject_class, PROP_VIDEOOUTPUT, +@@ -661,6 +667,9 @@ static int gst_tidmaivideosink_videostd_get_attrs(VideoStd_Type videoStd, + break; + case VideoStd_480P: + case VideoStd_720P_60: ++ #if defined(Platform_dm6467t) ++ case VideoStd_1080P_60: ++ #endif + vattrs->framerate = 60; + break; + +@@ -715,6 +724,9 @@ static int gst_tidmaivideosink_videostd_get_refresh_latency( + + case VideoStd_480P: + case VideoStd_720P_60: ++ #if defined(Platform_dm6467t) ++ case VideoStd_1080P_60: ++ #endif + return 16667; + + #if defined(Platform_omap3530) +@@ -949,6 +961,10 @@ static int gst_tidmaivideosink_convert_attrs(int attr, + return VideoStd_1080P_25; + else if (!strcmp(sink->videoStd, "1080P_24")) + return VideoStd_1080P_24; ++ #if defined(Platform_dm6467t) ++ else if (!strcmp(sink->videoStd, "1080P_60")) ++ return VideoStd_1080P_60; ++ #endif + #if defined(Platform_omap3530) + else if (!strcmp(sink->videoStd, "VGA")) + return VideoStd_VGA; +@@ -958,7 +974,7 @@ static int gst_tidmaivideosink_convert_attrs(int attr, + "Please choose from:\n" + "\tAUTO (if supported), CIF, SIF_NTSC, SIF_PAL, VGA, D1_NTSC\n" + "\tD1_PAL, 480P, 576P, 720P_60, 720P_50, 1080I_30, 1080I_25\n" +- "\t1080P_30, 1080P_25, 1080P_24\n", sink->videoStd); ++ "\t1080P_30, 1080P_60, 1080P_25, 1080P_24\n", sink->videoStd); + return -1; + } + break; +@@ -1307,14 +1323,13 @@ static gboolean gst_tidmaivideosink_process_caps(GstBaseSink * bsink, + case GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'): + inBufColorSpace = ColorSpace_UYVY; + break; ++ case GST_MAKE_FOURCC('N', 'V', '1', '6'): + case GST_MAKE_FOURCC('Y', '8', 'C', '8'): + inBufColorSpace = ColorSpace_YUV422PSEMI; + break; +- #if defined(Platform_dm365) + case GST_MAKE_FOURCC('N', 'V', '1', '2'): + inBufColorSpace = ColorSpace_YUV420PSEMI; + break; +- #endif + default: + GST_ERROR("unsupported fourcc\n"); + return FALSE; +diff --git a/src/gsttividdec2.c b/src/gsttividdec2.c +index 0804065..79b28a5 100644 +--- a/src/gsttividdec2.c ++++ b/src/gsttividdec2.c +@@ -674,16 +674,8 @@ static gboolean gst_tividdec2_set_source_caps( + given buffer */ + BufferGfx_getDimensions(hBuf, &dim); + +-#if !defined(Platform_dm365) +- caps = +- gst_caps_new_simple("video/x-raw-yuv", +- "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC('U','Y','V','Y'), +- "framerate", GST_TYPE_FRACTION, viddec2->framerateNum, +- viddec2->framerateDen, +- "width", G_TYPE_INT, dim.width, +- "height", G_TYPE_INT, dim.height, +- NULL); +-#else ++#if defined(Platform_dm365) || defined(Platform_dm6467) || \ ++ defined(Platform_dm6467t) + caps = + gst_caps_new_simple("video/x-raw-yuv", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC('N','V','1','2'), +@@ -692,6 +684,15 @@ static gboolean gst_tividdec2_set_source_caps( + "width", G_TYPE_INT, dim.width, + "height", G_TYPE_INT, dim.height, + NULL); ++#else ++ caps = ++ gst_caps_new_simple("video/x-raw-yuv", ++ "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC('U','Y','V','Y'), ++ "framerate", GST_TYPE_FRACTION, viddec2->framerateNum, ++ viddec2->framerateDen, ++ "width", G_TYPE_INT, dim.width, ++ "height", G_TYPE_INT, dim.height, ++ NULL); + #endif + + /* Set the source pad caps */ +@@ -1227,29 +1228,35 @@ static gboolean gst_tividdec2_codec_start (GstTIViddec2 *viddec2) + + /* Set up codec parameters depending on device */ + switch(device) { +- case Cpu_Device_DM6467: +- params.forceChromaFormat = XDM_YUV_420P; +- params.maxWidth = VideoStd_1080I_WIDTH; +- params.maxHeight = VideoStd_1080I_HEIGHT + 8; +- colorSpace = ColorSpace_YUV420PSEMI; +- defaultNumBufs = 5; +- break; +-#if defined(Platform_dm365) +- case Cpu_Device_DM365: +- params.forceChromaFormat = XDM_YUV_420SP; +- params.maxWidth = VideoStd_720P_WIDTH; +- params.maxHeight = VideoStd_720P_HEIGHT; +- colorSpace = ColorSpace_YUV420PSEMI; +- defaultNumBufs = 5; +- break; +-#endif +- default: +- params.forceChromaFormat = XDM_YUV_422ILE; +- params.maxWidth = VideoStd_D1_WIDTH; +- params.maxHeight = VideoStd_D1_PAL_HEIGHT; +- colorSpace = ColorSpace_UYVY; +- defaultNumBufs = 3; +- break; ++ case Cpu_Device_DM6467: ++ #if defined(Platform_dm6467t) ++ params.forceChromaFormat = XDM_YUV_420SP; ++ params.maxFrameRate = 60000; ++ params.maxBitRate = 30000000; ++ #else ++ params.forceChromaFormat = XDM_YUV_420P; ++ #endif ++ params.maxWidth = VideoStd_1080I_WIDTH; ++ params.maxHeight = VideoStd_1080I_HEIGHT + 8; ++ colorSpace = ColorSpace_YUV420PSEMI; ++ defaultNumBufs = 5; ++ break; ++ #if defined(Platform_dm365) ++ case Cpu_Device_DM365: ++ params.forceChromaFormat = XDM_YUV_420SP; ++ params.maxWidth = VideoStd_720P_WIDTH; ++ params.maxHeight = VideoStd_720P_HEIGHT; ++ colorSpace = ColorSpace_YUV420PSEMI; ++ defaultNumBufs = 4; ++ break; ++ #endif ++ default: ++ params.forceChromaFormat = XDM_YUV_422ILE; ++ params.maxWidth = VideoStd_D1_WIDTH; ++ params.maxHeight = VideoStd_D1_PAL_HEIGHT; ++ colorSpace = ColorSpace_UYVY; ++ defaultNumBufs = 3; ++ break; + } + + GST_LOG("opening video decoder \"%s\"\n", viddec2->codecName); +diff --git a/src/gsttividenc1.c b/src/gsttividenc1.c +index f9c6f1a..2e1fb31 100644 +--- a/src/gsttividenc1.c ++++ b/src/gsttividenc1.c +@@ -133,6 +133,11 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE( + "framerate=(fraction)[ 0, MAX ], " + "width=(int)[ 1, MAX ], " + "height=(int)[ 1, MAX ];" ++ "video/x-raw-yuv, " /* NV16 - YUV422 semi planar */ ++ "format=(fourcc)NV16, " ++ "framerate=(fraction)[ 0, MAX ], " ++ "width=(int)[ 1, MAX ], " ++ "height=(int)[ 1, MAX ];" + "video/x-raw-yuv, " /* NV12 - YUV420 semi planar */ + "format=(fourcc)NV12, " + "framerate=(fraction)[ 0, MAX ], " +@@ -290,7 +295,7 @@ static void gst_tividenc1_class_init(GstTIVidenc1Class *klass) + + g_object_class_install_property(gobject_class, PROP_IN_COLORSPACE, + g_param_spec_string("iColorSpace", "Input colorspace", +- "Input color space (UYVY, Y8C8 or NV12)", ++ "Input color space (UYVY, Y8C8, NV16 or NV12)", + "unspecified", G_PARAM_READWRITE)); + + g_object_class_install_property(gobject_class, PROP_BITRATE, +@@ -456,6 +461,8 @@ static ColorSpace_Type gst_tividenc1_find_colorSpace (const gchar *colorSpace) + { + if (!strcmp(colorSpace, "UYVY")) + return ColorSpace_UYVY; ++ else if (!strcmp(colorSpace, "NV16")) ++ return ColorSpace_YUV422PSEMI; + else if (!strcmp(colorSpace, "Y8C8")) + return ColorSpace_YUV422PSEMI; + else if (!strcmp(colorSpace, "NV12")) +@@ -665,6 +672,7 @@ static gboolean gst_tividenc1_set_sink_caps(GstPad *pad, GstCaps *caps) + videnc1->colorSpace = ColorSpace_UYVY; + break; + ++ case GST_MAKE_FOURCC('N', 'V', '1', '6'): + case GST_MAKE_FOURCC('Y', '8', 'C', '8'): + videnc1->colorSpace = ColorSpace_YUV422PSEMI; + break; +diff --git a/src/gsttividresize.c b/src/gsttividresize.c +index 5757705..c200787 100644 +--- a/src/gsttividresize.c ++++ b/src/gsttividresize.c +@@ -90,6 +90,7 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE( + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ( GST_VIDEO_CAPS_YUV("UYVY")";" ++ GST_VIDEO_CAPS_YUV("NV16")";" + GST_VIDEO_CAPS_YUV("Y8C8")";" + GST_VIDEO_CAPS_YUV("NV12") + ) +@@ -101,6 +102,7 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE( + GST_PAD_ALWAYS, + GST_STATIC_CAPS + ( GST_VIDEO_CAPS_YUV("UYVY")";" ++ GST_VIDEO_CAPS_YUV("NV16")";" + GST_VIDEO_CAPS_YUV("Y8C8")";" + GST_VIDEO_CAPS_YUV("NV12") + ) +@@ -583,6 +585,7 @@ static GstCaps * gst_tividresize_transform_caps (GstBaseTransform *trans, + int i; + static const guint32 supported_fmt[] = { + GST_MAKE_FOURCC('U','Y','V','Y'), ++ GST_MAKE_FOURCC('N','V','1','6'), + GST_MAKE_FOURCC('Y','8','C','8'), + GST_MAKE_FOURCC('N','V','1','2'), + }; +@@ -649,6 +652,7 @@ ColorSpace_Type gst_tividresize_get_colorSpace (guint32 fourcc) + switch (fourcc) { + case GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'): + return ColorSpace_UYVY; ++ case GST_MAKE_FOURCC('N', 'V', '1', '6'): + case GST_MAKE_FOURCC('Y', '8', 'C', '8'): + return ColorSpace_YUV422PSEMI; + case GST_MAKE_FOURCC('N', 'V', '1', '2'): +-- +1.5.4.3 + |