aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-multimedia')
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch221
-rw-r--r--recipes-multimedia/alsa/alsa-lib_%.bbappend7
-rw-r--r--recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch47
-rw-r--r--recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb33
-rw-r--r--recipes-multimedia/gstreamer/gst1.0-fsl-plugin_4.0.3.bb69
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend11
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstplaybin-enable-native-video.patch31
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend10
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.10.2.bb45
-rw-r--r--recipes-multimedia/libfslcodec/libfslcodec.inc104
-rw-r--r--recipes-multimedia/libfslcodec/libfslcodec_4.0.3.bb9
-rw-r--r--recipes-multimedia/libfslparser/libfslparser.inc33
-rw-r--r--recipes-multimedia/libfslparser/libfslparser_4.0.3.bb10
-rw-r--r--recipes-multimedia/libfslvpuwrap/libfslvpuwrap_1.0.58.bb23
-rw-r--r--recipes-multimedia/pulseaudio/pulseaudio_%.bbappend4
15 files changed, 657 insertions, 0 deletions
diff --git a/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch
new file mode 100644
index 00000000..32b31953
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch
@@ -0,0 +1,221 @@
+From e99c36dfdce3e0f393eeaca6c2790b566f72d6a8 Mon Sep 17 00:00:00 2001
+From: Shengjiu Wang <b02247@freescale.com>
+Date: Thu, 5 Jun 2014 17:37:47 +0800
+Subject: [PATCH] add conf for multichannel support in imx
+
+Upstream Status: Inappropriate [platform specific]
+
+Signed-off-by: Shengjiu Wang <b02247@freescale.com>
+---
+ src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++
+ src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++++++++
+ src/conf/cards/Makefile.am | 4 +-
+ src/conf/cards/aliases.conf | 2 +
+ 4 files changed, 166 insertions(+), 1 deletion(-)
+ create mode 100644 src/conf/cards/CS42888.conf
+ create mode 100644 src/conf/cards/IMX-HDMI.conf
+
+diff --git a/src/conf/cards/CS42888.conf b/src/conf/cards/CS42888.conf
+new file mode 100644
+index 0000000..671a284
+--- /dev/null
++++ b/src/conf/cards/CS42888.conf
+@@ -0,0 +1,94 @@
++#
++# Configuration for the CS42888 chip
++#
++
++# default with dmix & dsnoop
++CS42888.pcm.default {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type asym
++ playback.pcm {
++ type plug
++ slave.pcm {
++ @func concat
++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
++ }
++ }
++ capture.pcm {
++ type plug
++ slave.pcm {
++ @func concat
++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
++ }
++ }
++}
++
++<confdir:pcm/surround40.conf>
++
++CS42888.pcm.surround40.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type plug
++ slave.pcm {
++ type hw
++ card $CARD
++ }
++ slave.channels 4
++ ttable.0.0 1
++ ttable.1.2 1
++ ttable.2.1 1
++ ttable.3.3 1
++}
++
++
++<confdir:pcm/surround41.conf>
++<confdir:pcm/surround50.conf>
++<confdir:pcm/surround51.conf>
++
++CS42888.pcm.surround51.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type plug
++ slave.pcm {
++ type hw
++ card $CARD
++ }
++ slave.channels 6
++ ttable.0.0 1
++ ttable.1.3 1
++ ttable.2.1 1
++ ttable.3.4 1
++ ttable.4.2 1
++ ttable.5.5 1
++}
++
++<confdir:pcm/surround71.conf>
++
++CS42888.pcm.surround71.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type plug
++ slave.pcm {
++ type hw
++ card $CARD
++ }
++ slave.channels 8
++ ttable.0.0 1
++ ttable.1.4 1
++ ttable.2.1 1
++ ttable.3.5 1
++ ttable.4.2 1
++ ttable.5.6 1
++ ttable.6.3 1
++ ttable.7.7 1
++}
++
++# vim: ft=alsaconf
+diff --git a/src/conf/cards/IMX-HDMI.conf b/src/conf/cards/IMX-HDMI.conf
+new file mode 100644
+index 0000000..a51509e
+--- /dev/null
++++ b/src/conf/cards/IMX-HDMI.conf
+@@ -0,0 +1,67 @@
++#
++# Configuration for the CS42888 chip
++#
++
++# default with dmix & dsnoop
++IMX-HDMI.pcm.default {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type asym
++ playback.pcm {
++ type plug
++ slave.pcm {
++ @func concat
++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
++ }
++ }
++ capture.pcm {
++ type plug
++ slave.pcm {
++ @func concat
++ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
++ }
++ }
++}
++
++<confdir:pcm/surround40.conf>
++
++IMX-HDMI.pcm.surround40.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type hw
++ card $CARD
++ channels 4
++}
++
++
++<confdir:pcm/surround41.conf>
++<confdir:pcm/surround50.conf>
++<confdir:pcm/surround51.conf>
++
++IMX-HDMI.pcm.surround51.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type hw
++ card $CARD
++ channels 6
++}
++
++<confdir:pcm/surround71.conf>
++
++IMX-HDMI.pcm.surround71.0 {
++ @args [ CARD ]
++ @args.CARD {
++ type string
++ }
++ type hw
++ card $CARD
++ channels 8
++}
++
++# vim: ft=alsaconf
+diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am
+index ee7991b..b08acae 100644
+--- a/src/conf/cards/Makefile.am
++++ b/src/conf/cards/Makefile.am
+@@ -54,7 +54,9 @@ cfg_files = aliases.conf \
+ VIA8237.conf \
+ VX222.conf \
+ VXPocket.conf \
+- VXPocket440.conf
++ VXPocket440.conf \
++ CS42888.conf \
++ IMX-HDMI.conf
+
+ if BUILD_ALISP
+ cfg_files += aliases.alisp
+diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
+index 4a92fb2..46430c2 100644
+--- a/src/conf/cards/aliases.conf
++++ b/src/conf/cards/aliases.conf
+@@ -55,6 +55,8 @@ AV100 cards.CMI8788
+ AV200 cards.CMI8788
+ CMI8786 cards.CMI8788
+ CMI8787 cards.CMI8788
++cs42888-audio cards.CS42888
++imx-hdmi-soc cards.IMX-HDMI
+
+ <confdir:pcm/default.conf>
+ <confdir:pcm/dmix.conf>
+--
+1.8.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib_%.bbappend b/recipes-multimedia/alsa/alsa-lib_%.bbappend
new file mode 100644
index 00000000..9d95e680
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib_%.bbappend
@@ -0,0 +1,7 @@
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_mx6 = " file://0001-add-conf-for-multichannel-support-in-imx.patch \
+"
+PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"
+
diff --git a/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch b/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch
new file mode 100644
index 00000000..d76c74d4
--- /dev/null
+++ b/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch
@@ -0,0 +1,47 @@
+From 9acab46fe307ec71d4a4dbe447e356f90b6a4a09 Mon Sep 17 00:00:00 2001
+From: Shengjiu Wang <shengjiu.wang@freescale.com>
+Date: Fri, 12 Dec 2014 14:58:06 +0800
+Subject: [PATCH] [asrc_pair] update output buffer size
+
+When input size larger than DMA_MAX_BYTES the output size should be updated.
+Otherwise the asrc have will not have enough data, then it will be timeout.
+
+Upstream Status: Inappropriate [platform specific]
+
+Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
+---
+ asrc/asrc_pair.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/asrc/asrc_pair.c b/asrc/asrc_pair.c
+index e3df027..e74e8b1 100644
+--- a/asrc/asrc_pair.c
++++ b/asrc/asrc_pair.c
+@@ -139,7 +139,7 @@ asrc_pair *asrc_pair_create(unsigned int channels, ssize_t in_period_frames,
+ config.dma_buffer_size = dma_buffer_size;
+ config.input_sample_rate = in_rate;
+ config.output_sample_rate = out_rate;
+- config.buffer_num = 1;
++ config.buffer_num = buf_num;
+ config.input_word_width = ASRC_WIDTH_16_BIT;
+ config.output_word_width = ASRC_WIDTH_16_BIT;
+ config.inclk = INCLK_NONE;
+@@ -303,8 +303,13 @@ void asrc_pair_convert_s16(asrc_pair *pair, const int16_t *src, unsigned int src
+
+ while (src_left > 0)
+ {
+- in_len = src_left > pair->buf_size ? pair->buf_size : src_left;
+- out_len = dst_left;
++ if (src_left > pair->buf_size) {
++ in_len = pair->buf_size;
++ out_len = dst_left * in_len/src_left;
++ } else {
++ in_len = src_left;
++ out_len = dst_left;
++ }
+
+ buf_info.input_buffer_vaddr = s;
+ buf_info.input_buffer_length = in_len;
+--
+1.9.1
+
diff --git a/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb b/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb
new file mode 100644
index 00000000..af552701
--- /dev/null
+++ b/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb
@@ -0,0 +1,33 @@
+# Copyright (C) 2013 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Freescale alsa-lib plugins"
+LICENSE = "GPLv2"
+SECTION = "multimedia"
+DEPENDS = "alsa-lib virtual/kernel"
+
+# Make sure kernel sources are available
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit autotools pkgconfig
+
+SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "b1ca7a250a8cd5da07062081b30b4118"
+SRC_URI[sha256sum] = "902df92255d755e8eb08b3c3db0c7b9d70d26d9659b219373bee425ffdc34245"
+
+SRC_URI_append_mx6 = " file://0001-asrc_pair-update-output-buffer-size.patch"
+
+INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include"
+
+EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}""
+
+INSANE_SKIP_${PN} = "dev-so"
+
+FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so"
+FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug"
+FILES_${PN}-dev += "${libdir}/alsa-lib/*.la"
+
+COMPATIBLE_MACHINE = "(mx6)"
+PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"
diff --git a/recipes-multimedia/gstreamer/gst1.0-fsl-plugin_4.0.3.bb b/recipes-multimedia/gstreamer/gst1.0-fsl-plugin_4.0.3.bb
new file mode 100644
index 00000000..ab28bc12
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gst1.0-fsl-plugin_4.0.3.bb
@@ -0,0 +1,69 @@
+# Copyright (C) 2014,2015 Freescale Semiconductor
+# Copyright (C) 2012-2015 O.S. Systems Software LTDA.
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Gstreamer freescale plugins"
+LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
+SECTION = "multimedia"
+
+DEPENDS = "libfslcodec libfslparser virtual/kernel gstreamer1.0 gstreamer1.0-plugins-base"
+DEPENDS_append_mx6q = " imx-lib imx-vpu libfslvpuwrap"
+DEPENDS_append_mx6dl = " imx-lib imx-vpu libfslvpuwrap"
+DEPENDS_append_mx6sl = " imx-lib"
+DEPENDS_append_mx6sx = " imx-lib"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
+
+SRC_URI = "${FSL_MIRROR}/gst1.0-fsl-plugins-${PV}.tar.gz"
+SRC_URI[md5sum] = "b5c1072536479c174bda1349ade5d10c"
+SRC_URI[sha256sum] = "9d5c051cbde023014e67fde07bc314b6b9a5e7030e24eb0d8afdf33e7e458125"
+
+S = "${WORKDIR}/gst1.0-fsl-plugins-${PV}"
+
+inherit autotools pkgconfig
+
+# Make sure kernel sources are available
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+PLATFORM_mx6 = "MX6"
+PLATFORM_mx6sl = "MX6SL"
+PLATFORM_mx6sx = "MX6SX"
+
+# Todo add a mechanism to map possible build targets
+EXTRA_OECONF = "PLATFORM=${PLATFORM} \
+ CPPFLAGS="-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" \
+ CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR}"
+
+PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl"
+
+# Add codec list that the beep plugin run-time depended
+BEEP_RDEPENDS = "libfslcodec-aac libfslcodec-mp3 libfslcodec-oggvorbis"
+RDEPENDS_${PN} += "libfslparser ${BEEP_RDEPENDS}"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG_mx6 = "overlaysink"
+
+# FIXME: Add all features
+# feature from excluded mm packages
+PACKAGECONFIG[ac3] += ",,libfslac3codec,libfslac3codec"
+# feature from special mm packages
+PACKAGECONFIG[aacp] += ",,libfslaacpcodec,libfslaacpcodec"
+MSDEPENDS = "libfslmsparser libfslmscodec"
+PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}"
+PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}"
+OVDEPENDS = "virtual/libg2d"
+PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}"
+
+FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}"
+RDEPENDS_${PN} += "gstreamer1.0-plugins-good-id3demux"
+
+FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
+FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
+FILES_${PN}-gplay = "${bindir}/gplay-1.0"
+FILES_${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}"
+FILES_${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}"
+
+COMPATIBLE_MACHINE = "(mx6)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
new file mode 100644
index 00000000..bcce7c78
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
@@ -0,0 +1,11 @@
+# Vivante EGL headers require the correct preprocessor
+# defines to be set for each platform
+CFLAGS_append_mx6 = " -DLINUX \
+ ${@base_contains('DISTRO_FEATURES', 'x11', '', \
+ base_contains('DISTRO_FEATURES', 'wayland', '-DEGL_API_FB -DWL_EGL_PLATFORM', \
+ base_contains('DISTRO_FEATURES', 'directfb', '-DEGL_API_DFB -I${STAGING_INCDIR}/directfb', \
+ '-DEGL_API_FB', d),d),d)}"
+
+PACKAGECONFIG_GL_mx6sl = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \
+ base_contains('DISTRO_FEATURES', 'x11', \
+ 'opengl', '', d), '', d)}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstplaybin-enable-native-video.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstplaybin-enable-native-video.patch
new file mode 100644
index 00000000..15322bd6
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/gstplaybin-enable-native-video.patch
@@ -0,0 +1,31 @@
+From 9cfb86cd100904f0ef2626f348695bd2d3416c6a Mon Sep 17 00:00:00 2001
+From: Jian Li <jian.li@freescale.com>
+Date: Mon, 23 Jun 2014 14:14:07 +0800
+Subject: [PATCH] gstplaybin enable native video
+
+- use native video patch in playbin for i.MX SoCs
+
+Upstream Status: Inappropriate [platform specific]
+
+Signed-off-by: Jian Li <jian.li@freescale.com>
+---
+ gst/playback/gstplaybin2.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
+index fc02ca3..c342438 100644
+--- a/gst/playback/gstplaybin2.c
++++ b/gst/playback/gstplaybin2.c
+@@ -511,8 +511,7 @@ struct _GstPlayBinClass
+ #define DEFAULT_SUBURI NULL
+ #define DEFAULT_SOURCE NULL
+ #define DEFAULT_FLAGS GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_TEXT | \
+- GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_DEINTERLACE | \
+- GST_PLAY_FLAG_SOFT_COLORBALANCE
++ GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_NATIVE_VIDEO
+ #define DEFAULT_N_VIDEO 0
+ #define DEFAULT_CURRENT_VIDEO -1
+ #define DEFAULT_N_AUDIO 0
+--
+1.7.9.5
+
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
new file mode 100644
index 00000000..5b939d4f
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
@@ -0,0 +1,10 @@
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_mxs = " file://gstplaybin-enable-native-video.patch"
+SRC_URI_append_mx5 = " file://gstplaybin-enable-native-video.patch"
+SRC_URI_append_mx6 = " file://gstplaybin-enable-native-video.patch"
+
+PACKAGE_ARCH_mxs = "${MACHINE_SOCARCH}"
+PACKAGE_ARCH_mx5 = "${MACHINE_SOCARCH}"
+PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.10.2.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.10.2.bb
new file mode 100644
index 00000000..bfb70809
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.10.2.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
+SECTION = "multimedia"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base imx-gpu-viv libfslcodec libfslvpuwrap virtual/kernel virtual/egl \
+ virtual/libgles2 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+# add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers
+# for the uniaudio decoder, videoparsersbad for the VPU video decoder
+# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good and -bad recipes are built
+RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good gstreamer1.0-plugins-bad"
+RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers"
+RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad"
+
+SRCBRANCH ?= "master"
+SRCREV = "cd04f047e17cbdff5d8e075be7dccaf4522ad713"
+SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}"
+
+S = "${WORKDIR}/git"
+
+inherit waf
+
+do_compile[depends] += "virtual/kernel:do_shared_workdir"
+
+# configure the eglvivsink element to use the appropriate EGL platform code
+# X11 if x11 is present in DISTRO_FEATURES
+# Wayland if x11 is not present in DISTRO_FEATURES, but wayland is
+# Framebuffer otherwise
+EGLVIVSINK_PLATFORM = "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', \
+ base_contains('DISTRO_FEATURES', 'wayland', 'wayland', \
+ 'fb', d),d)}"
+
+EXTRA_OECONF = "--egl-platform=${EGLVIVSINK_PLATFORM} --kernel-headers=${STAGING_KERNEL_DIR}/include"
+
+# LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0)
+LIBV = "1.0"
+require recipes-multimedia/gstreamer/gst-plugins-package.inc
+
+# the following line is required to produce one package for each plugin
+PACKAGES_DYNAMIC = "^${PN}-.*"
+
+COMPATIBLE_MACHINE = "(mx6)"
+
+# disable the false alarm (the "it isn't a build dependency" QA warning)
+INSANE_SKIP_gstreamer1.0-plugins-imx-imxaudio = "build-deps"
+INSANE_SKIP_gstreamer1.0-plugins-imx-imxvpu = "build-deps"
diff --git a/recipes-multimedia/libfslcodec/libfslcodec.inc b/recipes-multimedia/libfslcodec/libfslcodec.inc
new file mode 100644
index 00000000..ed07774b
--- /dev/null
+++ b/recipes-multimedia/libfslcodec/libfslcodec.inc
@@ -0,0 +1,104 @@
+# Copyright (C) 2012-2014 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+DESCRIPTION = "Freescale Multimedia codec libs"
+LICENSE = "Proprietary"
+SECTION = "multimedia"
+LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241"
+
+inherit fsl-eula-unpack autotools pkgconfig
+
+SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true"
+
+# Choose between Soft Float-Point and Hard Float-Point
+EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '', d)}"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG_mx6q = "vpu"
+PACKAGECONFIG_mx6dl = "vpu"
+PACKAGECONFIG_mx5 = "vpu"
+
+PACKAGECONFIG[vpu] = "--enable-vpu,--disable-vpu,imx-vpu"
+
+do_install_append() {
+ # FIXME: This link points to nowhere
+ rm ${D}${libdir}/imx-mm/audio-codec/lib_src_ppp_arm11_elinux.so
+
+ # LTIB move the files around or gst-fsl-plugin won't find them
+ for p in $(find ${D}${libdir}/imx-mm -mindepth 2 -maxdepth 2 -not -type d); do
+ mv $p ${D}${libdir}
+ done
+ rmdir ${D}${libdir}/imx-mm/video-codec
+
+}
+
+do_install_append_mx5() {
+ # FIXME: The binary files depends on libvpu.so.4 which is i.MX6 only
+ rm -r ${D}${datadir}/imx-mm/*/examples/*/bin
+}
+
+python __set_insane_skip() {
+ # Ensure we have PACKAGES expanded
+ bb.build.exec_func("read_subpackage_metadata", d)
+
+ for p in d.getVar('PACKAGES', True).split():
+ # Even though we are packaging libraries those are plugins so we
+ # shouldn't rename the packages to follow its sonames.
+ d.setVar("DEBIAN_NOAUTONAME_%s" % p, "1")
+
+ # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
+ # the source we cannot fix it. Disable the insane check for now.
+ if p == 'libfslcodec-test-bin':
+ # FIXME: includes the DUT .so files so we need to deploy those
+ d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel libdir")
+ else:
+ d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel")
+}
+
+do_package_qa[prefuncs] += "__set_insane_skip"
+
+python __split_libfslcodec_plugins() {
+ codecdir = bb.data.expand('${libdir}', d)
+ do_split_packages(d, codecdir, '^lib_([^_]*).*_arm.*_elinux\.so\..*',
+ aux_files_pattern='${libdir}/imx-mm/audio-codec/wrap/lib_%sd_wrap_arm*_elinux.so.*',
+ output_pattern='libfslcodec-%s',
+ description='Freescale i.MX Codec (%s)',
+ extra_depends='')
+}
+
+python __set_metapkg_rdepends() {
+ # Allow addition of all codecs in a image; useful specially for
+ # debugging.
+ codec_pkgs = oe.utils.packages_filter_out_system(d)
+ codec_pkgs = filter(lambda x: x not in ['libfslcodec-test-bin', 'libfslcodec-test-source'],
+ codec_pkgs)
+ d.appendVar('RDEPENDS_libfslcodec-meta', ' ' + ' '.join(codec_pkgs))
+}
+
+PACKAGESPLITFUNCS =+ "__split_libfslcodec_plugins __set_metapkg_rdepends"
+
+PACKAGES_DYNAMIC = "${PN}-*"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+PACKAGES += "${PN}-meta ${PN}-test-bin ${PN}-test-source"
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-meta = "1"
+
+# Ensure we get warnings if we miss something
+FILES_${PN} = ""
+
+FILES_${PN}-dev += "${libdir}/imx-mm/*/*${SOLIBSDEV} \
+ ${libdir}/imx-mm/*/*/*${SOLIBSDEV} \
+ ${libdir}/pkgconfig/*.pc ${includedir}/imx-mm/*"
+
+FILES_${PN}-test-bin += "${datadir}/imx-mm/*/examples/*/bin"
+
+FILES_${PN}-test-source += "${datadir}/imx-mm/*"
+
+# FIXME: The wrap and lib names does not match
+FILES_${PN}-oggvorbis += "${libdir}/imx-mm/audio-codec/wrap/lib_vorbisd_wrap_arm*_elinux.so.*"
+FILES_${PN}-nb += "${libdir}/imx-mm/audio-codec/wrap/lib_nbamrd_wrap_arm*_elinux.so.*"
+FILES_${PN}-wb += "${libdir}/imx-mm/audio-codec/wrap/lib_wbamrd_wrap_arm*_elinux.so.*"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-multimedia/libfslcodec/libfslcodec_4.0.3.bb b/recipes-multimedia/libfslcodec/libfslcodec_4.0.3.bb
new file mode 100644
index 00000000..4f105d40
--- /dev/null
+++ b/recipes-multimedia/libfslcodec/libfslcodec_4.0.3.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2013-2015 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require recipes-multimedia/libfslcodec/libfslcodec.inc
+
+SRC_URI[md5sum] = "829f88758622eab85b7427e5b488c8a0"
+SRC_URI[sha256sum] = "0d0ff933eed0a021763115b9c8ae812c6376a19bbd95e555d89ea7404f6c8f2f"
+
+COMPATIBLE_MACHINE = "(mx6)"
diff --git a/recipes-multimedia/libfslparser/libfslparser.inc b/recipes-multimedia/libfslparser/libfslparser.inc
new file mode 100644
index 00000000..d46330e4
--- /dev/null
+++ b/recipes-multimedia/libfslparser/libfslparser.inc
@@ -0,0 +1,33 @@
+# Copyright (C) 2012-2014 O.S. Systems Software LTDA.
+# Copyright (C) 2012-2013 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+DESCRIPTION = "Freescale Multimedia parser libs"
+LICENSE = "Proprietary"
+SECTION = "multimedia"
+LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241"
+
+inherit fsl-eula-unpack autotools pkgconfig
+
+SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true"
+
+# Choose between Soft Float-Point and Hard Float-Point
+EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '--enable-fsw', d)}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+python __set_insane_skip() {
+ # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
+ # the source we cannot fix it. Disable the insane check for now.
+ # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those
+ for p in d.getVar('PACKAGES', True).split():
+ d.setVar("INSANE_SKIP_%s" % p, "ldflags dev-so textrel")
+}
+
+do_package_qa[prefuncs] += "__set_insane_skip"
+
+# FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those
+FILES_${PN} += "${libdir}/imx-mm/*/*${SOLIBS} ${libdir}/imx-mm/*/*${SOLIBSDEV}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
diff --git a/recipes-multimedia/libfslparser/libfslparser_4.0.3.bb b/recipes-multimedia/libfslparser/libfslparser_4.0.3.bb
new file mode 100644
index 00000000..790cb952
--- /dev/null
+++ b/recipes-multimedia/libfslparser/libfslparser_4.0.3.bb
@@ -0,0 +1,10 @@
+# Copyright (C) 2013-2015 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require recipes-multimedia/libfslparser/libfslparser.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241"
+
+SRC_URI[md5sum] = "a0b0779edc543536de71898657072275"
+SRC_URI[sha256sum] = "9db10ca6a61c8fdbe91b55b65d084dcbb5f9cfb58b088996c7dd2d6dc8385730"
+
+COMPATIBLE_MACHINE = "(mx6)"
diff --git a/recipes-multimedia/libfslvpuwrap/libfslvpuwrap_1.0.58.bb b/recipes-multimedia/libfslvpuwrap/libfslvpuwrap_1.0.58.bb
new file mode 100644
index 00000000..c61eb6dd
--- /dev/null
+++ b/recipes-multimedia/libfslvpuwrap/libfslvpuwrap_1.0.58.bb
@@ -0,0 +1,23 @@
+# Copyright (C) 2013-2015 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+DESCRIPTION = "Freescale Multimedia VPU wrapper"
+DEPENDS = "imx-vpu"
+LICENSE = "Proprietary"
+SECTION = "multimedia"
+LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241"
+
+SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true"
+S = "${WORKDIR}/${PN}-${PV}"
+
+SRC_URI[md5sum] = "bf4960ab18e6bb59e98aae797b80cd7f"
+SRC_URI[sha256sum] = "a278eb18ec24230166ac39e2eadf7b934798f0432654c2e24c4cb69c3ac1cf0f"
+
+inherit fsl-eula-unpack autotools pkgconfig
+
+do_install_append() {
+ # FIXME: Drop examples for now
+ rm -r ${D}${datadir}
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "(mx6q|mx6dl)"
diff --git a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
new file mode 100644
index 00000000..b9acb361
--- /dev/null
+++ b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
@@ -0,0 +1,4 @@
+
+CACHED_CONFIGUREVARS_append_mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no"
+
+PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"