diff options
Diffstat (limited to 'recipes-multimedia')
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}" |