gstreamer-ti: Update for OMAPL137 support
authorRoger Monk <r-monk@ti.com>
Mon, 15 Mar 2010 00:20:07 +0000 (00:20 +0000)
committerKoen Kooi <koen@openembedded.org>
Mon, 12 Apr 2010 17:43:25 +0000 (19:43 +0200)
   * Add Patch
   * Config XDC Variables
   * Bump PR

Signed-off-by: Roger Monk <r-monk@ti.com>
Signed-off-by: Koen Kooi <k-kooi@ti.com>
recipes/ti/gstreamer-ti/gstreamer-ti-omapl137.patch [new file with mode: 0644]
recipes/ti/gstreamer-ti_svn.bb

diff --git a/recipes/ti/gstreamer-ti/gstreamer-ti-omapl137.patch b/recipes/ti/gstreamer-ti/gstreamer-ti-omapl137.patch
new file mode 100644 (file)
index 0000000..a2fe2c0
--- /dev/null
@@ -0,0 +1,267 @@
+Index: ticodecplugin/src/gstticodecplugin_omapl137.cfg
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ticodecplugin/src/gstticodecplugin_omapl137.cfg    2010-01-08 09:27:23.529399692 -0600
+@@ -0,0 +1,41 @@
++/*
++ * 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.
++ *
++ */
++
++/* Load the Codec Engine 'Operating System Abstraction Layer' */
++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 DMAI module */
++var DMAI = xdc.loadPackage('ti.sdo.dmai');
+Index: ticodecplugin/src/gstticodecs_omapl137.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ ticodecplugin/src/gstticodecs_omapl137.c   2010-01-08 09:27:23.529399692 -0600
+@@ -0,0 +1,81 @@
++/*
++ * gstticodecs_omapl137.c
++ *
++ * This file provides information for available codecs on the OMAP3530 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[] = {
++
++    /* Audio Decoders */
++    {
++        "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 Decoders */
++    {
++        "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          */
++    }, {
++        "MPEG4 Video Decoder",   /* String name of codec used by plugin      */
++        "mpeg4dec",              /* String name of codec used by CE          */
++        codecServer              /* Engine that contains this codec          */
++    },
++
++    /* Image Decoders */
++    {
++        "JPEG Image Decoder",    /* String name of codec used by plugin      */
++        "jpegdec",               /* String name of codec used by CE          */
++        codecServer              /* Engine that contains this codec          */
++    },
++
++    /* Video Encoders */
++    {
++        "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          */
++    },
++
++    /* Image Encoders */
++    {
++        "JPEG Image Encoder",    /* String name of codec used by plugin      */
++        "jpegenc",               /* String name of codec used by CE          */
++        codecServer              /* Engine that contains this codec          */
++    },
++
++    { NULL }
++};
++
++
++/******************************************************************************
++ * Custom ViM Settings for editing this file
++ ******************************************************************************/
++#if 0
++ Tabs (use 4 spaces for indentation)
++ vim:set tabstop=4:      /* Use 4 spaces for tabs          */
++ vim:set shiftwidth=4:   /* Use 4 spaces for >> operations */
++ vim:set expandtab:      /* Expand tabs into white spaces  */
++#endif
+Index: ticodecplugin/src/gsttividenc1.c
+===================================================================
+--- ticodecplugin.orig/src/gsttividenc1.c      2010-01-07 15:15:37.000000000 -0600
++++ ticodecplugin/src/gsttividenc1.c   2010-01-08 09:27:23.529399692 -0600
+@@ -1455,6 +1455,7 @@
+         #if defined(Platform_omap3530)
+         case Cpu_Device_OMAP3530:
+         #endif
++        case Cpu_Device_OMAPL137:
+         case Cpu_Device_DM6446:
+             params.inputChromaFormat = XDM_YUV_422ILE;
+             break;
+Index: ticodecplugin/src/gsttidmaivideosink.c
+===================================================================
+--- ticodecplugin.orig/src/gsttidmaivideosink.c        2010-01-08 14:17:38.533747453 -0600
++++ ticodecplugin/src/gsttidmaivideosink.c     2010-01-08 15:55:46.881680839 -0600
+@@ -51,6 +51,19 @@
+     GST_PAD_SINK,
+     GST_PAD_ALWAYS,
+     GST_STATIC_CAPS
++#if defined(Platform_omapl137)
++    ("video/x-raw-rgb, "
++        "bpp=(int)16, "
++        "depth=(int)16, "
++        "endianness=(int)1234, "
++        "red_mask=(int)63488, "
++        "green_mask=(int)2016, "
++        "blue_mask=(int)31, "
++        "framerate=(fraction)[ 0, MAX ], "
++        "width=(int)[ 1, MAX ], "
++        "height=(int)[1, MAX ] "
++    )
++#else
+     ("video/x-raw-yuv, "
+          "format=(fourcc)UYVY, "
+          "framerate=(fraction)[ 0, MAX ], "
+@@ -67,6 +80,7 @@
+          "width=(int)[ 1, MAX ], "
+          "height=(int)[ 1, MAX ]"
+     )
++#endif
+ );
+ GST_DEBUG_CATEGORY_STATIC (gst_tidmaivideosink_debug);
+@@ -664,6 +678,11 @@
+             vattrs->framerate = 60;
+             break;
++        #if defined(Platform_omapl137)
++        case VideoStd_QVGA:
++            vattrs->framerate = 30;
++            break;
++        #endif
+         #if defined(Platform_omap3530)
+         case VideoStd_VGA:
+             vattrs->framerate = 60;
+@@ -1035,6 +1054,12 @@
+             sink->dAttrs.colorSpace = colorSpace;
+             break;
+         #endif
++        #if defined(Platform_omapl137)
++        case Cpu_Device_OMAPL137:
++            sink->dAttrs = Display_Attrs_OMAPL137_OSD_DEFAULT;
++            sink->dAttrs.colorSpace = colorSpace;
++            break;
++        #endif
+         default:
+             sink->dAttrs = Display_Attrs_DM6446_DM355_VID_DEFAULT;
+             break;
+@@ -1291,8 +1316,10 @@
+     ColorSpace_Type     inBufColorSpace;
+     gint                framerateDen;
+     gint                framerateNum;
++    const gchar         *mime;
+     structure = gst_caps_get_structure(caps, 0);
++    mime      = gst_structure_get_name(structure);
+     /* The width and height of the input buffer are collected here so that it
+      * can be checked against the width and height of the display buffer.
+@@ -1300,24 +1327,38 @@
+     gst_structure_get_int(structure, "width", &width);
+     gst_structure_get_int(structure, "height", &height);
+-    /* Map input buffer fourcc to dmai color space  */
+-    gst_structure_get_fourcc(structure, "format", &fourcc);
++    if (!strcmp(mime, "video/x-raw-rgb")) {
++        gint rm,gm,bm;
+-    switch (fourcc) {
+-        case GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'):
+-            inBufColorSpace = ColorSpace_UYVY;
+-            break;
+-        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");
++        gst_structure_get_int(structure,"red_mask",&rm);
++        gst_structure_get_int(structure,"green_mask",&gm);
++        gst_structure_get_int(structure,"blue_mask",&bm);
++        if ((rm == 63488) && (gm == 2016) && (bm == 31)){
++            inBufColorSpace = ColorSpace_RGB565;
++        } else {
++            GST_ERROR("unsupported color space\n");
+             return FALSE;
++        }
++    } else {
++        /* Map input buffer fourcc to dmai color space  */
++        gst_structure_get_fourcc(structure, "format", &fourcc);
++
++        switch (fourcc) {
++            case GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'):
++                inBufColorSpace = ColorSpace_UYVY;
++                break;
++            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;
++        }
+     }
+     /* Read the frame rate */
index 45fb8dc..73df8dc 100644 (file)
@@ -43,7 +43,7 @@ SRC_URI_append_omap3 = " \
 "
 
 SRC_URI_append_omapl137 = " \
-           file://gstreamer-ti-omapl138.patch;patch=1 \
+           file://gstreamer-ti-omapl137.patch;patch=1 \
 "
 
 SRC_URI_append_omapl138 = " \
@@ -67,7 +67,7 @@ PLATFORM_dm6467        = "dm6467"
 PLATFORM_omap3         = "omap3530"
 PLATFORM_dm355         = "dm355"
 PLATFORM_dm365         = "dm365"
-PLATFORM_omapl137      = "omapl138"
+PLATFORM_omapl137      = "omapl137"
 PLATFORM_omapl138      = "omapl138"
 PLATFORM              ?= "<UNDEFINED_PLATFORM>"
 
@@ -76,7 +76,7 @@ XDC_PLATFORM_dm6467    = "ti.platforms.evmDM6467"
 XDC_PLATFORM_omap3     = "ti.platforms.evm3530"
 XDC_PLATFORM_dm355     = "ti.platforms.evmDM355"
 XDC_PLATFORM_dm365     = "ti.platforms.evmDM365"
-XDC_PLATFORM_omapl137  = "ti.platforms.evmOMAPL138"
+XDC_PLATFORM_omapl137  = "ti.platforms.evmOMAPL137"
 XDC_PLATFORM_omapl138  = "ti.platforms.evmOMAPL138"
 XDC_PLATFORM          ?= "<UNDEFINED_XDC_PLATFORM>"