-# Copyright (C) 2011, 2012 Freescale Semiconductor
+# Copyright (C) 2011, 2012, 2013 Freescale Semiconductor
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Gstreamer freescale plugins"
LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
SECTION = "multimedia"
-DEPENDS = "gstreamer gst-plugins-base imx-lib"
-INC_PR = "r9"
+
+DEPENDS = "gstreamer gst-plugins-base libfslcodec libfslparser"
+DEPENDS_append_mx5 = " imx-lib"
+DEPENDS_append_mx6 = " imx-lib libfslvpuwrap"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
-PACKAGE_NAME ?= "${PN}"
-
-S = "${WORKDIR}/${PACKAGE_NAME}-${PV}"
+S = "${WORKDIR}/gst-fsl-plugins-${PV}"
-SRC_URI = "${FSL_MIRROR}/${PACKAGE_NAME}-${PV}.tar.gz"
+SRC_URI = "${FSL_MIRROR}/gst-fsl-plugins-${PV}.tar.gz"
inherit autotools pkgconfig
--- /dev/null
+From 6f75a9f4ad108c1f4a3dff4dd08def174ab83a69 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Tue, 21 May 2013 16:43:31 -0300
+Subject: [PATCH] configure.ac: Use pkg-config sysroot when checking for soname
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ configure.ac | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e4cdb86..c12ceb4 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,7 +16,7 @@ AC_DEFUN([FIND_PARSER_SONAME],
+ [
+ AC_MSG_CHECKING([for lib_$1_parser_$2_elinux.3.0.so soname])
+ path=`$PKG_CONFIG --variable=libdir libfslparser`
+- SONAME=$( $CC -print-file-name=$path/lib_$1_parser_$2_elinux.so | \
++ SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/lib_$1_parser_$2_elinux.so | \
+ while read output; do objdump -p $output | \
+ grep "SONAME" | \
+ sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+@@ -27,16 +27,15 @@ AC_DEFUN([FIND_PARSER_SONAME],
+ else
+ AC_MSG_RESULT([$SONAME])
+ fi
+- apath=`echo $path | sed -e 's|.*/imx-mm/|/usr/lib/imx-mm/|'`
+- $1_$2_SONAME=$apath/$SONAME
++ $1_$2_SONAME=$path/$SONAME
+ AC_SUBST($1_$2_SONAME)
+ ])
+
+ AC_DEFUN([FIND_ACODEC_SONAME],
+ [
+ AC_MSG_CHECKING([for lib_$1_wrap_$2_elinux.so soname])
+- path=`$PKG_CONFIG --variable=libdir libfslaudiocodec | sed -e 's|.*/imx-mm/|/usr/lib/imx-mm/|'`
+- SONAME=$( $CC -print-file-name=$path/wrap/lib_$1_wrap_$2_elinux.so | \
++ path=`$PKG_CONFIG --variable=libdir libfslaudiocodec`
++ SONAME=$( $CC -print-file-name=$PKG_CONFIG_SYSROOT_DIR$path/wrap/lib_$1_wrap_$2_elinux.so | \
+ while read output; do objdump -p $output | \
+ grep "SONAME" | \
+ sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
+@@ -48,8 +47,7 @@ AC_DEFUN([FIND_ACODEC_SONAME],
+ AC_MSG_RESULT([$SONAME])
+ fi
+
+- apath=`echo $path | sed -e 's|.*/imx-mm/|/usr/lib/imx-mm/|'`
+- $1_$2_SONAME=$apath/wrap/$SONAME
++ $1_$2_SONAME=$path/wrap/$SONAME
+ AC_SUBST($1_$2_SONAME)
+ ])
+
+--
+1.8.1
+
--- /dev/null
+Make v4lsink backward compatible
+
+Upstream-Status: Pending
+
+diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
+index c9ec887..da2bac1 100644
+--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
++++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
+@@ -310,6 +310,9 @@ mfw_gst_v4l2sink_query_support_formats ()
+
+ ret = TRUE;
+
++ if(fmtdesc.index == 0)
++ ret = FALSE;
++
+ fail:
+ return ret;
+
+@@ -2170,19 +2173,60 @@ mfw_gst_v4lsink_base_init (gpointer g_class)
+ GstCaps *capslist;
+ GstPadTemplate *sink_template = NULL;
+
+- mfw_gst_v4l2sink_query_support_formats ();
+- /* make a list of all available caps */
+- capslist = gst_caps_new_empty ();
++ if(!mfw_gst_v4l2sink_query_support_formats ()) {
++ // failed query caps, use default setting
++ gint i;
++ guint32 formats[] = {
++ GST_MAKE_FOURCC ('I', '4', '2', '0'),
++ GST_MAKE_FOURCC ('Y', 'V', '1', '2'),
++ GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'),
++ GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V'),
++ GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'),
++ GST_MAKE_FOURCC ('N', 'V', '1', '2'),
++ GST_MAKE_FOURCC ('4', '2', '2', 'P'),
++ GST_MAKE_FOURCC ('Y', '4', '2', 'B')
+
+- MfwV4lFmtMap * map = g_v4lfmt_maps;
++ };
+
+- while (map->mime){
+- if (map->enable){
+- GstStructure * structure = gst_structure_from_string(map->mime, NULL);
+- gst_caps_append_structure (capslist, structure);
+- }
+- map++;
+- };
++ /* make a list of all available caps */
++ capslist = gst_caps_new_empty ();
++ for (i = 0; i < G_N_ELEMENTS (formats); i++) {
++ gst_caps_append_structure (capslist,
++ gst_structure_new ("video/x-raw-yuv",
++ "format",
++ GST_TYPE_FOURCC,
++ formats[i], "width",
++ GST_TYPE_INT_RANGE, 1,
++ G_MAXINT, "height",
++ GST_TYPE_INT_RANGE, 1,
++ G_MAXINT, "framerate",
++ GST_TYPE_FRACTION_RANGE,
++ 0, 1, G_MAXINT, 1,
++ NULL));
++ }
++ /* Add RGB support */
++ gst_caps_append_structure (capslist,
++ gst_structure_new ("video/x-raw-rgb",
++ "bpp", GST_TYPE_INT_RANGE,
++ 1, 32, "depth",
++ GST_TYPE_INT_RANGE, 1, 32,
++ NULL));
++
++ }
++ else {
++ /* make a list of all available caps */
++ capslist = gst_caps_new_empty ();
++
++ MfwV4lFmtMap * map = g_v4lfmt_maps;
++
++ while (map->mime){
++ if (map->enable){
++ GstStructure * structure = gst_structure_from_string(map->mime, NULL);
++ gst_caps_append_structure (capslist, structure);
++ }
++ map++;
++ };
++ }
+
+ sink_template = gst_pad_template_new ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS, capslist);
--- /dev/null
+diff --git a/libs/Makefile.am b/libs/Makefile.am
+index e9d3d54..89f79be 100755
+--- a/libs/Makefile.am
++++ b/libs/Makefile.am
+@@ -36,6 +36,11 @@ endif
+
+
+ libgstfsl_@GST_MAJORMINOR@_la_CFLAGS = $(GST_BASE_CFLAGS) $(IPU_CFLAGS) -I../inc/common
++
++if PLATFORM_IS_MX5X
++libgstfsl_@GST_MAJORMINOR@_la_CFLAGS += -DIPULIB
++endif
++
+ libgstfsl_@GST_MAJORMINOR@_la_LDFLAGS = -version-info @GSTMXLIBS_VERSION@
+ libgstfsl_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ -lgstinterfaces-$(GST_MAJORMINOR) $(IPU_LIBS)
+
+++ /dev/null
-# Copyright (C) 2011, 2012 Freescale Semicondutor
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require gst-fsl-plugin.inc
-DEPENDS += "fsl-mm-codeclib fsl-mm-flv-codeclib fsl-mm-mp3enc-codeclib"
-RDEPENDS_${PN} = "fsl-mm-codeclib fsl-mm-flv-codeclib fsl-mm-mp3enc-codeclib"
-
-PR = "${INC_PR}.5"
-
-SRC_URI += "file://fix_segment_fault_in_v4lsink_for_yocto.patch \
- file://fix-missing-sys-types-h.patch \
- file://Use-librarys-SONAME-in-dlopen.patch"
-
-SRC_URI[md5sum] = "036a8e86031b0670f41b10796e268f9e"
-SRC_URI[sha256sum] = "ee024e6fe94ce309b10dc89ab247d1bbcf8ae9cc8006178c96101ce2d4d164a0"
-
-COMPATIBLE_MACHINE = "(mx5)"
+++ /dev/null
-# Copyright (C) 2012-2013 Freescale Semicondutor
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require gst-fsl-plugin.inc
-
-DEPENDS += "libfslcodec libfslvpuwrap libfslparser"
-
-PR = "${INC_PR}.3"
-
-SRC_URI += "file://fix-missing-sys-types-h.patch \
- file://Link-with-the-Real-Time-Extension-lib.patch \
- "
-
-PACKAGE_NAME = "gst-fsl-plugins"
-
-SRC_URI[md5sum] = "fd7c9db129cbcc4dc79b7dd832061594"
-SRC_URI[sha256sum] = "546deb407993f726ef4e140f5bd734d612d5f8872c832ac820957f667f22306e"
-
-COMPATIBLE_MACHINE = "(mx6)"
+++ /dev/null
-# Copyright (C) 2012-2013 Freescale Semicondutor
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-require gst-fsl-plugin.inc
-
-DEPENDS = "virtual/kernel gstreamer gst-plugins-base libfslcodec libfslparser"
-
-PR = "${INC_PR}.1"
-
-SRC_URI += "file://fix-missing-sys-types-h.patch \
- file://Link-with-the-Real-Time-Extension-lib.patch \
- "
-
-PACKAGE_NAME = "gst-fsl-plugins"
-
-SRC_URI[md5sum] = "5416a727e8b0bd94eec077ac7d70aae7"
-SRC_URI[sha256sum] = "fdb0b5ab964f607a93664412702a131931da8ef0b557597cbf161c3d9c9d0c12"
-
-COMPATIBLE_MACHINE = "(mx28)"
--- /dev/null
+# Copyright (C) 2012-2013 Freescale Semicondutor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require gst-fsl-plugin.inc
+
+SRC_URI[md5sum] = "08be9263c609b90e3b3e2e3aa888cd29"
+SRC_URI[sha256sum] = "f3cd4a51d1eb60c21219d8d94daa832e47fc51d8f4618bb79cdf36bcca0a0f7c"
+
+SRC_URI_append += "file://fix-missing-sys-types-h.patch \
+ file://Link-with-the-Real-Time-Extension-lib.patch \
+ file://vss_build_failed.patch \
+ file://configure.ac-Use-pkg-config-sysroot-when-checking-fo.patch \
+ file://v4lsink_back_compatible.patch \
+ "
+
+COMPATIBLE_MACHINE = "(mx28|mx5|mx6)"