summaryrefslogtreecommitdiff
path: root/recipes/ti/gstreamer-ti
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2009-08-26 11:35:14 +0200
committerKoen Kooi <koen@openembedded.org>2009-08-26 11:35:14 +0200
commit172cb63ce5e91d489993590ec09e418aba019b4e (patch)
treee10d322895620ec0c96c2ab0efcd296bfc93b6b9 /recipes/ti/gstreamer-ti
parentbac5eef9c8a73672ee114926011addabb36610eb (diff)
dvsdk: rename to ti now that other things like bitblit live in that dir now
Diffstat (limited to 'recipes/ti/gstreamer-ti')
-rw-r--r--recipes/ti/gstreamer-ti/codec_combo_directory_fix.patch52
-rw-r--r--recipes/ti/gstreamer-ti/gst-buffsize.diff113
2 files changed, 165 insertions, 0 deletions
diff --git a/recipes/ti/gstreamer-ti/codec_combo_directory_fix.patch b/recipes/ti/gstreamer-ti/codec_combo_directory_fix.patch
new file mode 100644
index 0000000000..7c03641707
--- /dev/null
+++ b/recipes/ti/gstreamer-ti/codec_combo_directory_fix.patch
@@ -0,0 +1,52 @@
+From: Vishnudas P <vishnudas@gmail.com>
+
+Found the fix here.
+http://wiki.davincidsp.com/index.php?title=Configuring_Codec_Engine_in_Arm_apps_with_createFromServer
+In the section "Advanced: overwriting fields, creating multiple engines"
+
+Needed tor reverse the previous patch 263 and apply the attached patch.
+
+When you call createFromServer the path you give is relative to
+package, not the filesystem one. For that you need to set
+"engine.server" to the desired full filesystem path.
+This is what the attached patch does.
+
+--
+
+
+diff -Naur ticodecplugin.orig/src/gstticodecplugin_dm6446.cfg ticodecplugin/src/gstticodecplugin_dm6446.cfg
+--- ticodecplugin.orig/src/gstticodecplugin_dm6446.cfg 2009-07-21 12:55:32.000000000 -0700
++++ ticodecplugin/src/gstticodecplugin_dm6446.cfg 2009-07-21 12:55:26.000000000 -0700
+@@ -38,6 +38,8 @@
+ "./encodeCombo.x64P",
+ "ti.sdo.servers.encode"
+ );
++codecServer.server = "/usr/share/ti-codec-combos/cs.x64P";
++
+
+ /* Load support for the 'Davinci Multimedia Application Interface' modules */
+ var DMAI = xdc.loadPackage('ti.sdo.dmai');
+diff -Naur ticodecplugin.orig/src/gstticodecplugin_dm6467.cfg ticodecplugin/src/gstticodecplugin_dm6467.cfg
+--- ticodecplugin.orig/src/gstticodecplugin_dm6467.cfg 2009-07-21 12:55:32.000000000 -0700
++++ ticodecplugin/src/gstticodecplugin_dm6467.cfg 2009-07-21 12:55:26.000000000 -0700
+@@ -39,6 +39,8 @@
+ "./encodeCombo.x64P",
+ "ti.sdo.servers.encode"
+ );
++codecServer.server = "/usr/share/ti-codec-combos/cs.x64P";
++
+
+ /* Load support for the 'Davinci Multimedia Application Interface' modules */
+ var DMAI = xdc.loadPackage('ti.sdo.dmai');
+diff -Naur ticodecplugin.orig/src/gstticodecplugin_omap3530.cfg ticodecplugin/src/gstticodecplugin_omap3530.cfg
+--- ticodecplugin.orig/src/gstticodecplugin_omap3530.cfg 2009-07-21 12:55:32.000000000 -0700
++++ ticodecplugin/src/gstticodecplugin_omap3530.cfg 2009-07-21 12:55:26.000000000 -0700
+@@ -38,6 +38,8 @@
+ "./decodeCombo.x64P",
+ "ti.sdo.servers.decode"
+ );
++codecServer.server = "/usr/share/ti-codec-combos/cs.x64P";
++
+
+ /* Load support for the DMAI module */
+ var DMAI = xdc.loadPackage('ti.sdo.dmai');
diff --git a/recipes/ti/gstreamer-ti/gst-buffsize.diff b/recipes/ti/gstreamer-ti/gst-buffsize.diff
new file mode 100644
index 0000000000..2d71286498
--- /dev/null
+++ b/recipes/ti/gstreamer-ti/gst-buffsize.diff
@@ -0,0 +1,113 @@
+ ChangeLog | 10 ++++++++++
+ src/gsttividdec2.c | 25 +++++++++++++++++++++----
+ src/gsttividdec2.h | 2 ++
+ 3 files changed, 33 insertions(+), 4 deletions(-)
+
+diff -Nurd --exclude .svn trunk/gstreamer_ti/ti_build/ticodecplugin/ChangeLog branches/BRANCH_DDOMPE_BUFFERSIZES/gstreamer_ti/ti_build/ticodecplugin/ChangeLog
+--- ticodecplugin/ChangeLog 2009-03-03 08:57:50.000000000 +0100
++++ ticodecplugin/ChangeLog 2009-03-03 08:59:20.000000000 +0100
+@@ -1,3 +1,13 @@
++2009-03-01 Diego Dompe, RidgeRun
++ * src/gsttividdec2.{c.h}:
++ Create the output buffer tab using the recently added height and width
++ attributes passed by the capabilities. This solves integration problems
++ with other elements like ffmpegcolorspace and xvimagesink, where they
++ will fail because the second buffer pushed over the src pad of the
++ decoder has a size different from the first one. Using the input caps
++ for the creation of the buffer tab we have a more educated guess on the
++ output buffer size, and the resizing won't be required.
++
+ 2009-02-25 Brijesh Singh, Texas Instruments, Inc.
+ * src/{gsttividenc1.{c,h},gsttividenc.{c,h},gsttividdec1.{c,h},gsttividdec.
+ {c,h},gsttiauddec1.{c,h},gsttiauddec.{c,h},gsttiimgdec1.{c,h},gsttiimgenc1.
+diff -Nurd --exclude .svn trunk/gstreamer_ti/ti_build/ticodecplugin/src/gsttividdec2.c branches/BRANCH_DDOMPE_BUFFERSIZES/gstreamer_ti/ti_build/ticodecplugin/src/gsttividdec2.c
+--- ticodecplugin/src/gsttividdec2.c 2009-03-03 08:57:50.000000000 +0100
++++ ticodecplugin/src/gsttividdec2.c 2009-03-03 08:59:20.000000000 +0100
+@@ -21,7 +21,11 @@
+ * Original Author:
+ * Don Darling, Texas Instruments, Inc.
+ *
++ * Contributors:
++ * Diego Dompe, RidgeRun
++ *
+ * Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
++ * Copyright (C) $year RidgeRun
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+@@ -350,6 +354,8 @@
+
+ viddec2->framerateNum = 0;
+ viddec2->framerateDen = 0;
++ viddec2->height = 0;
++ viddec2->width = 0;
+
+ viddec2->numOutputBufs = 0UL;
+ viddec2->hOutBufTab = NULL;
+@@ -484,6 +490,14 @@
+ viddec2->framerateNum = framerateNum;
+ viddec2->framerateDen = framerateDen;
+ }
++
++ if (!gst_structure_get_int(capStruct, "height", &viddec2->height)) {
++ viddec2->height = 0;
++ }
++
++ if (!gst_structure_get_int(capStruct, "width", &viddec2->width)) {
++ viddec2->width = 0;
++ }
+ }
+
+ /* MPEG Decode */
+@@ -1048,6 +1062,7 @@
+ Cpu_Device device;
+ ColorSpace_Type colorSpace;
+ Int defaultNumBufs;
++ Int outBufSize;
+
+ /* Open the codec engine */
+ GST_LOG("opening codec engine \"%s\"\n", viddec2->engineName);
+@@ -1116,8 +1131,8 @@
+ /* Create codec output buffers */
+ GST_LOG("creating output buffer table\n");
+ gfxAttrs.colorSpace = colorSpace;
+- gfxAttrs.dim.width = params.maxWidth;
+- gfxAttrs.dim.height = params.maxHeight;
++ gfxAttrs.dim.width = viddec2->width;
++ gfxAttrs.dim.height = viddec2->height;
+ gfxAttrs.dim.lineLength = BufferGfx_calcLineLength(
+ gfxAttrs.dim.width, gfxAttrs.colorSpace);
+
+@@ -1125,8 +1140,10 @@
+ gfxAttrs.bAttrs.useMask = gst_tidmaibuffertransport_GST_FREE |
+ gst_tividdec2_CODEC_FREE;
+
++ outBufSize = gfxAttrs.dim.lineLength * viddec2->height;
++
+ viddec2->hOutBufTab =
+- BufTab_create(viddec2->numOutputBufs, Vdec2_getOutBufSize(viddec2->hVd),
++ BufTab_create(viddec2->numOutputBufs, outBufSize,
+ BufferGfx_getBufferAttrs(&gfxAttrs));
+
+ if (viddec2->hOutBufTab == NULL) {
+@@ -1295,7 +1312,7 @@
+ */
+ outBuf = gst_tidmaibuffertransport_new(hDstBuf);
+ gst_buffer_set_data(outBuf, GST_BUFFER_DATA(outBuf),
+- Buffer_getNumBytesUsed(hDstBuf));
++ Vdec2_getOutBufSize(viddec2->hVd));
+ gst_buffer_set_caps(outBuf, GST_PAD_CAPS(viddec2->srcpad));
+
+ /* If we have a valid time stamp, set it on the buffer */
+diff -Nurd --exclude .svn trunk/gstreamer_ti/ti_build/ticodecplugin/src/gsttividdec2.h branches/BRANCH_DDOMPE_BUFFERSIZES/gstreamer_ti/ti_build/ticodecplugin/src/gsttividdec2.h
+--- ticodecplugin/src/gsttividdec2.h 2009-03-03 08:57:50.000000000 +0100
++++ ticodecplugin/src/gsttividdec2.h 2009-03-03 08:59:20.000000000 +0100
+@@ -96,6 +96,8 @@
+ /* Framerate (Num/Den) */
+ gint framerateNum;
+ gint framerateDen;
++ gint height;
++ gint width;
+
+ /* Buffer management */
+ UInt32 numOutputBufs;