diff options
author | Otavio Salvador <otavio@ossystems.com.br> | 2015-07-15 17:14:27 -0300 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2015-07-16 15:01:29 -0300 |
commit | f8517afc7a5ada4538b3b7d397fa32586d57ffe5 (patch) | |
tree | 79349f091306d1760fd4687e62336ffa8fb8c721 /recipes-multimedia | |
parent | c92b415d653afc55f33b6b93fb9248193bfd4fa0 (diff) | |
download | meta-freescale-f8517afc7a5ada4538b3b7d397fa32586d57ffe5.tar.gz |
Move meta-fsl-arm content to layer root
The meta-fsl-arm is going to be used as the base for this layer. It
contains a clean history and allowing a more granullar set of changes.
This commit is just a rename of all contents of meta-fsl-arm
subdirectory to this layer's root, subsequent changes are based on top
of that.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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 @@ | |||
1 | From e99c36dfdce3e0f393eeaca6c2790b566f72d6a8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Shengjiu Wang <b02247@freescale.com> | ||
3 | Date: Thu, 5 Jun 2014 17:37:47 +0800 | ||
4 | Subject: [PATCH] add conf for multichannel support in imx | ||
5 | |||
6 | Upstream Status: Inappropriate [platform specific] | ||
7 | |||
8 | Signed-off-by: Shengjiu Wang <b02247@freescale.com> | ||
9 | --- | ||
10 | src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++ | ||
11 | src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++++++++ | ||
12 | src/conf/cards/Makefile.am | 4 +- | ||
13 | src/conf/cards/aliases.conf | 2 + | ||
14 | 4 files changed, 166 insertions(+), 1 deletion(-) | ||
15 | create mode 100644 src/conf/cards/CS42888.conf | ||
16 | create mode 100644 src/conf/cards/IMX-HDMI.conf | ||
17 | |||
18 | diff --git a/src/conf/cards/CS42888.conf b/src/conf/cards/CS42888.conf | ||
19 | new file mode 100644 | ||
20 | index 0000000..671a284 | ||
21 | --- /dev/null | ||
22 | +++ b/src/conf/cards/CS42888.conf | ||
23 | @@ -0,0 +1,94 @@ | ||
24 | +# | ||
25 | +# Configuration for the CS42888 chip | ||
26 | +# | ||
27 | + | ||
28 | +# default with dmix & dsnoop | ||
29 | +CS42888.pcm.default { | ||
30 | + @args [ CARD ] | ||
31 | + @args.CARD { | ||
32 | + type string | ||
33 | + } | ||
34 | + type asym | ||
35 | + playback.pcm { | ||
36 | + type plug | ||
37 | + slave.pcm { | ||
38 | + @func concat | ||
39 | + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] | ||
40 | + } | ||
41 | + } | ||
42 | + capture.pcm { | ||
43 | + type plug | ||
44 | + slave.pcm { | ||
45 | + @func concat | ||
46 | + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] | ||
47 | + } | ||
48 | + } | ||
49 | +} | ||
50 | + | ||
51 | +<confdir:pcm/surround40.conf> | ||
52 | + | ||
53 | +CS42888.pcm.surround40.0 { | ||
54 | + @args [ CARD ] | ||
55 | + @args.CARD { | ||
56 | + type string | ||
57 | + } | ||
58 | + type plug | ||
59 | + slave.pcm { | ||
60 | + type hw | ||
61 | + card $CARD | ||
62 | + } | ||
63 | + slave.channels 4 | ||
64 | + ttable.0.0 1 | ||
65 | + ttable.1.2 1 | ||
66 | + ttable.2.1 1 | ||
67 | + ttable.3.3 1 | ||
68 | +} | ||
69 | + | ||
70 | + | ||
71 | +<confdir:pcm/surround41.conf> | ||
72 | +<confdir:pcm/surround50.conf> | ||
73 | +<confdir:pcm/surround51.conf> | ||
74 | + | ||
75 | +CS42888.pcm.surround51.0 { | ||
76 | + @args [ CARD ] | ||
77 | + @args.CARD { | ||
78 | + type string | ||
79 | + } | ||
80 | + type plug | ||
81 | + slave.pcm { | ||
82 | + type hw | ||
83 | + card $CARD | ||
84 | + } | ||
85 | + slave.channels 6 | ||
86 | + ttable.0.0 1 | ||
87 | + ttable.1.3 1 | ||
88 | + ttable.2.1 1 | ||
89 | + ttable.3.4 1 | ||
90 | + ttable.4.2 1 | ||
91 | + ttable.5.5 1 | ||
92 | +} | ||
93 | + | ||
94 | +<confdir:pcm/surround71.conf> | ||
95 | + | ||
96 | +CS42888.pcm.surround71.0 { | ||
97 | + @args [ CARD ] | ||
98 | + @args.CARD { | ||
99 | + type string | ||
100 | + } | ||
101 | + type plug | ||
102 | + slave.pcm { | ||
103 | + type hw | ||
104 | + card $CARD | ||
105 | + } | ||
106 | + slave.channels 8 | ||
107 | + ttable.0.0 1 | ||
108 | + ttable.1.4 1 | ||
109 | + ttable.2.1 1 | ||
110 | + ttable.3.5 1 | ||
111 | + ttable.4.2 1 | ||
112 | + ttable.5.6 1 | ||
113 | + ttable.6.3 1 | ||
114 | + ttable.7.7 1 | ||
115 | +} | ||
116 | + | ||
117 | +# vim: ft=alsaconf | ||
118 | diff --git a/src/conf/cards/IMX-HDMI.conf b/src/conf/cards/IMX-HDMI.conf | ||
119 | new file mode 100644 | ||
120 | index 0000000..a51509e | ||
121 | --- /dev/null | ||
122 | +++ b/src/conf/cards/IMX-HDMI.conf | ||
123 | @@ -0,0 +1,67 @@ | ||
124 | +# | ||
125 | +# Configuration for the CS42888 chip | ||
126 | +# | ||
127 | + | ||
128 | +# default with dmix & dsnoop | ||
129 | +IMX-HDMI.pcm.default { | ||
130 | + @args [ CARD ] | ||
131 | + @args.CARD { | ||
132 | + type string | ||
133 | + } | ||
134 | + type asym | ||
135 | + playback.pcm { | ||
136 | + type plug | ||
137 | + slave.pcm { | ||
138 | + @func concat | ||
139 | + strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] | ||
140 | + } | ||
141 | + } | ||
142 | + capture.pcm { | ||
143 | + type plug | ||
144 | + slave.pcm { | ||
145 | + @func concat | ||
146 | + strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ] | ||
147 | + } | ||
148 | + } | ||
149 | +} | ||
150 | + | ||
151 | +<confdir:pcm/surround40.conf> | ||
152 | + | ||
153 | +IMX-HDMI.pcm.surround40.0 { | ||
154 | + @args [ CARD ] | ||
155 | + @args.CARD { | ||
156 | + type string | ||
157 | + } | ||
158 | + type hw | ||
159 | + card $CARD | ||
160 | + channels 4 | ||
161 | +} | ||
162 | + | ||
163 | + | ||
164 | +<confdir:pcm/surround41.conf> | ||
165 | +<confdir:pcm/surround50.conf> | ||
166 | +<confdir:pcm/surround51.conf> | ||
167 | + | ||
168 | +IMX-HDMI.pcm.surround51.0 { | ||
169 | + @args [ CARD ] | ||
170 | + @args.CARD { | ||
171 | + type string | ||
172 | + } | ||
173 | + type hw | ||
174 | + card $CARD | ||
175 | + channels 6 | ||
176 | +} | ||
177 | + | ||
178 | +<confdir:pcm/surround71.conf> | ||
179 | + | ||
180 | +IMX-HDMI.pcm.surround71.0 { | ||
181 | + @args [ CARD ] | ||
182 | + @args.CARD { | ||
183 | + type string | ||
184 | + } | ||
185 | + type hw | ||
186 | + card $CARD | ||
187 | + channels 8 | ||
188 | +} | ||
189 | + | ||
190 | +# vim: ft=alsaconf | ||
191 | diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am | ||
192 | index ee7991b..b08acae 100644 | ||
193 | --- a/src/conf/cards/Makefile.am | ||
194 | +++ b/src/conf/cards/Makefile.am | ||
195 | @@ -54,7 +54,9 @@ cfg_files = aliases.conf \ | ||
196 | VIA8237.conf \ | ||
197 | VX222.conf \ | ||
198 | VXPocket.conf \ | ||
199 | - VXPocket440.conf | ||
200 | + VXPocket440.conf \ | ||
201 | + CS42888.conf \ | ||
202 | + IMX-HDMI.conf | ||
203 | |||
204 | if BUILD_ALISP | ||
205 | cfg_files += aliases.alisp | ||
206 | diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf | ||
207 | index 4a92fb2..46430c2 100644 | ||
208 | --- a/src/conf/cards/aliases.conf | ||
209 | +++ b/src/conf/cards/aliases.conf | ||
210 | @@ -55,6 +55,8 @@ AV100 cards.CMI8788 | ||
211 | AV200 cards.CMI8788 | ||
212 | CMI8786 cards.CMI8788 | ||
213 | CMI8787 cards.CMI8788 | ||
214 | +cs42888-audio cards.CS42888 | ||
215 | +imx-hdmi-soc cards.IMX-HDMI | ||
216 | |||
217 | <confdir:pcm/default.conf> | ||
218 | <confdir:pcm/dmix.conf> | ||
219 | -- | ||
220 | 1.8.0 | ||
221 | |||
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 @@ | |||
1 | |||
2 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | ||
3 | |||
4 | SRC_URI_append_mx6 = " file://0001-add-conf-for-multichannel-support-in-imx.patch \ | ||
5 | " | ||
6 | PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" | ||
7 | |||
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 @@ | |||
1 | From 9acab46fe307ec71d4a4dbe447e356f90b6a4a09 Mon Sep 17 00:00:00 2001 | ||
2 | From: Shengjiu Wang <shengjiu.wang@freescale.com> | ||
3 | Date: Fri, 12 Dec 2014 14:58:06 +0800 | ||
4 | Subject: [PATCH] [asrc_pair] update output buffer size | ||
5 | |||
6 | When input size larger than DMA_MAX_BYTES the output size should be updated. | ||
7 | Otherwise the asrc have will not have enough data, then it will be timeout. | ||
8 | |||
9 | Upstream Status: Inappropriate [platform specific] | ||
10 | |||
11 | Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> | ||
12 | --- | ||
13 | asrc/asrc_pair.c | 11 ++++++++--- | ||
14 | 1 file changed, 8 insertions(+), 3 deletions(-) | ||
15 | |||
16 | diff --git a/asrc/asrc_pair.c b/asrc/asrc_pair.c | ||
17 | index e3df027..e74e8b1 100644 | ||
18 | --- a/asrc/asrc_pair.c | ||
19 | +++ b/asrc/asrc_pair.c | ||
20 | @@ -139,7 +139,7 @@ asrc_pair *asrc_pair_create(unsigned int channels, ssize_t in_period_frames, | ||
21 | config.dma_buffer_size = dma_buffer_size; | ||
22 | config.input_sample_rate = in_rate; | ||
23 | config.output_sample_rate = out_rate; | ||
24 | - config.buffer_num = 1; | ||
25 | + config.buffer_num = buf_num; | ||
26 | config.input_word_width = ASRC_WIDTH_16_BIT; | ||
27 | config.output_word_width = ASRC_WIDTH_16_BIT; | ||
28 | config.inclk = INCLK_NONE; | ||
29 | @@ -303,8 +303,13 @@ void asrc_pair_convert_s16(asrc_pair *pair, const int16_t *src, unsigned int src | ||
30 | |||
31 | while (src_left > 0) | ||
32 | { | ||
33 | - in_len = src_left > pair->buf_size ? pair->buf_size : src_left; | ||
34 | - out_len = dst_left; | ||
35 | + if (src_left > pair->buf_size) { | ||
36 | + in_len = pair->buf_size; | ||
37 | + out_len = dst_left * in_len/src_left; | ||
38 | + } else { | ||
39 | + in_len = src_left; | ||
40 | + out_len = dst_left; | ||
41 | + } | ||
42 | |||
43 | buf_info.input_buffer_vaddr = s; | ||
44 | buf_info.input_buffer_length = in_len; | ||
45 | -- | ||
46 | 1.9.1 | ||
47 | |||
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 @@ | |||
1 | # Copyright (C) 2013 Freescale Semiconductor | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | |||
4 | DESCRIPTION = "Freescale alsa-lib plugins" | ||
5 | LICENSE = "GPLv2" | ||
6 | SECTION = "multimedia" | ||
7 | DEPENDS = "alsa-lib virtual/kernel" | ||
8 | |||
9 | # Make sure kernel sources are available | ||
10 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
11 | |||
12 | LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f" | ||
13 | |||
14 | inherit autotools pkgconfig | ||
15 | |||
16 | SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.tar.gz" | ||
17 | SRC_URI[md5sum] = "b1ca7a250a8cd5da07062081b30b4118" | ||
18 | SRC_URI[sha256sum] = "902df92255d755e8eb08b3c3db0c7b9d70d26d9659b219373bee425ffdc34245" | ||
19 | |||
20 | SRC_URI_append_mx6 = " file://0001-asrc_pair-update-output-buffer-size.patch" | ||
21 | |||
22 | INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" | ||
23 | |||
24 | EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" | ||
25 | |||
26 | INSANE_SKIP_${PN} = "dev-so" | ||
27 | |||
28 | FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so" | ||
29 | FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" | ||
30 | FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" | ||
31 | |||
32 | COMPATIBLE_MACHINE = "(mx6)" | ||
33 | 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 @@ | |||
1 | # Copyright (C) 2014,2015 Freescale Semiconductor | ||
2 | # Copyright (C) 2012-2015 O.S. Systems Software LTDA. | ||
3 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
4 | |||
5 | DESCRIPTION = "Gstreamer freescale plugins" | ||
6 | LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1" | ||
7 | SECTION = "multimedia" | ||
8 | |||
9 | DEPENDS = "libfslcodec libfslparser virtual/kernel gstreamer1.0 gstreamer1.0-plugins-base" | ||
10 | DEPENDS_append_mx6q = " imx-lib imx-vpu libfslvpuwrap" | ||
11 | DEPENDS_append_mx6dl = " imx-lib imx-vpu libfslvpuwrap" | ||
12 | DEPENDS_append_mx6sl = " imx-lib" | ||
13 | DEPENDS_append_mx6sx = " imx-lib" | ||
14 | |||
15 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ | ||
16 | file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ | ||
17 | file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" | ||
18 | |||
19 | SRC_URI = "${FSL_MIRROR}/gst1.0-fsl-plugins-${PV}.tar.gz" | ||
20 | SRC_URI[md5sum] = "b5c1072536479c174bda1349ade5d10c" | ||
21 | SRC_URI[sha256sum] = "9d5c051cbde023014e67fde07bc314b6b9a5e7030e24eb0d8afdf33e7e458125" | ||
22 | |||
23 | S = "${WORKDIR}/gst1.0-fsl-plugins-${PV}" | ||
24 | |||
25 | inherit autotools pkgconfig | ||
26 | |||
27 | # Make sure kernel sources are available | ||
28 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
29 | |||
30 | PLATFORM_mx6 = "MX6" | ||
31 | PLATFORM_mx6sl = "MX6SL" | ||
32 | PLATFORM_mx6sx = "MX6SX" | ||
33 | |||
34 | # Todo add a mechanism to map possible build targets | ||
35 | EXTRA_OECONF = "PLATFORM=${PLATFORM} \ | ||
36 | CPPFLAGS="-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" \ | ||
37 | CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR}" | ||
38 | |||
39 | PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl" | ||
40 | |||
41 | # Add codec list that the beep plugin run-time depended | ||
42 | BEEP_RDEPENDS = "libfslcodec-aac libfslcodec-mp3 libfslcodec-oggvorbis" | ||
43 | RDEPENDS_${PN} += "libfslparser ${BEEP_RDEPENDS}" | ||
44 | |||
45 | PACKAGECONFIG ?= "" | ||
46 | PACKAGECONFIG_mx6 = "overlaysink" | ||
47 | |||
48 | # FIXME: Add all features | ||
49 | # feature from excluded mm packages | ||
50 | PACKAGECONFIG[ac3] += ",,libfslac3codec,libfslac3codec" | ||
51 | # feature from special mm packages | ||
52 | PACKAGECONFIG[aacp] += ",,libfslaacpcodec,libfslaacpcodec" | ||
53 | MSDEPENDS = "libfslmsparser libfslmscodec" | ||
54 | PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}" | ||
55 | PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}" | ||
56 | OVDEPENDS = "virtual/libg2d" | ||
57 | PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}" | ||
58 | |||
59 | FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}" | ||
60 | RDEPENDS_${PN} += "gstreamer1.0-plugins-good-id3demux" | ||
61 | |||
62 | FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" | ||
63 | FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc" | ||
64 | FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" | ||
65 | FILES_${PN}-gplay = "${bindir}/gplay-1.0" | ||
66 | FILES_${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}" | ||
67 | FILES_${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}" | ||
68 | |||
69 | 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 @@ | |||
1 | # Vivante EGL headers require the correct preprocessor | ||
2 | # defines to be set for each platform | ||
3 | CFLAGS_append_mx6 = " -DLINUX \ | ||
4 | ${@base_contains('DISTRO_FEATURES', 'x11', '', \ | ||
5 | base_contains('DISTRO_FEATURES', 'wayland', '-DEGL_API_FB -DWL_EGL_PLATFORM', \ | ||
6 | base_contains('DISTRO_FEATURES', 'directfb', '-DEGL_API_DFB -I${STAGING_INCDIR}/directfb', \ | ||
7 | '-DEGL_API_FB', d),d),d)}" | ||
8 | |||
9 | PACKAGECONFIG_GL_mx6sl = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \ | ||
10 | base_contains('DISTRO_FEATURES', 'x11', \ | ||
11 | '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 @@ | |||
1 | From 9cfb86cd100904f0ef2626f348695bd2d3416c6a Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian Li <jian.li@freescale.com> | ||
3 | Date: Mon, 23 Jun 2014 14:14:07 +0800 | ||
4 | Subject: [PATCH] gstplaybin enable native video | ||
5 | |||
6 | - use native video patch in playbin for i.MX SoCs | ||
7 | |||
8 | Upstream Status: Inappropriate [platform specific] | ||
9 | |||
10 | Signed-off-by: Jian Li <jian.li@freescale.com> | ||
11 | --- | ||
12 | gst/playback/gstplaybin2.c | 3 +-- | ||
13 | 1 file changed, 1 insertion(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c | ||
16 | index fc02ca3..c342438 100644 | ||
17 | --- a/gst/playback/gstplaybin2.c | ||
18 | +++ b/gst/playback/gstplaybin2.c | ||
19 | @@ -511,8 +511,7 @@ struct _GstPlayBinClass | ||
20 | #define DEFAULT_SUBURI NULL | ||
21 | #define DEFAULT_SOURCE NULL | ||
22 | #define DEFAULT_FLAGS GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_TEXT | \ | ||
23 | - GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_DEINTERLACE | \ | ||
24 | - GST_PLAY_FLAG_SOFT_COLORBALANCE | ||
25 | + GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_NATIVE_VIDEO | ||
26 | #define DEFAULT_N_VIDEO 0 | ||
27 | #define DEFAULT_CURRENT_VIDEO -1 | ||
28 | #define DEFAULT_N_AUDIO 0 | ||
29 | -- | ||
30 | 1.7.9.5 | ||
31 | |||
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 @@ | |||
1 | |||
2 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | ||
3 | |||
4 | SRC_URI_append_mxs = " file://gstplaybin-enable-native-video.patch" | ||
5 | SRC_URI_append_mx5 = " file://gstplaybin-enable-native-video.patch" | ||
6 | SRC_URI_append_mx6 = " file://gstplaybin-enable-native-video.patch" | ||
7 | |||
8 | PACKAGE_ARCH_mxs = "${MACHINE_SOCARCH}" | ||
9 | PACKAGE_ARCH_mx5 = "${MACHINE_SOCARCH}" | ||
10 | 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 @@ | |||
1 | DESCRIPTION = "GStreamer 1.0 plugins for i.MX platforms" | ||
2 | LICENSE = "LGPLv2+" | ||
3 | LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" | ||
4 | SECTION = "multimedia" | ||
5 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base imx-gpu-viv libfslcodec libfslvpuwrap virtual/kernel virtual/egl \ | ||
6 | virtual/libgles2 ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" | ||
7 | # add the audioparsers and the videoparsersbad plugins as RDEPENDS ; audioparsers | ||
8 | # for the uniaudio decoder, videoparsersbad for the VPU video decoder | ||
9 | # the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good and -bad recipes are built | ||
10 | RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good gstreamer1.0-plugins-bad" | ||
11 | RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers" | ||
12 | RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad" | ||
13 | |||
14 | SRCBRANCH ?= "master" | ||
15 | SRCREV = "cd04f047e17cbdff5d8e075be7dccaf4522ad713" | ||
16 | SRC_URI = "git://github.com/Freescale/gstreamer-imx.git;branch=${SRCBRANCH}" | ||
17 | |||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | inherit waf | ||
21 | |||
22 | do_compile[depends] += "virtual/kernel:do_shared_workdir" | ||
23 | |||
24 | # configure the eglvivsink element to use the appropriate EGL platform code | ||
25 | # X11 if x11 is present in DISTRO_FEATURES | ||
26 | # Wayland if x11 is not present in DISTRO_FEATURES, but wayland is | ||
27 | # Framebuffer otherwise | ||
28 | EGLVIVSINK_PLATFORM = "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', \ | ||
29 | base_contains('DISTRO_FEATURES', 'wayland', 'wayland', \ | ||
30 | 'fb', d),d)}" | ||
31 | |||
32 | EXTRA_OECONF = "--egl-platform=${EGLVIVSINK_PLATFORM} --kernel-headers=${STAGING_KERNEL_DIR}/include" | ||
33 | |||
34 | # LIBV is used by gst-plugins-package.inc to specify the GStreamer version (0.10 vs 1.0) | ||
35 | LIBV = "1.0" | ||
36 | require recipes-multimedia/gstreamer/gst-plugins-package.inc | ||
37 | |||
38 | # the following line is required to produce one package for each plugin | ||
39 | PACKAGES_DYNAMIC = "^${PN}-.*" | ||
40 | |||
41 | COMPATIBLE_MACHINE = "(mx6)" | ||
42 | |||
43 | # disable the false alarm (the "it isn't a build dependency" QA warning) | ||
44 | INSANE_SKIP_gstreamer1.0-plugins-imx-imxaudio = "build-deps" | ||
45 | 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 @@ | |||
1 | # Copyright (C) 2012-2014 Freescale Semiconductor | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | DESCRIPTION = "Freescale Multimedia codec libs" | ||
4 | LICENSE = "Proprietary" | ||
5 | SECTION = "multimedia" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241" | ||
7 | |||
8 | inherit fsl-eula-unpack autotools pkgconfig | ||
9 | |||
10 | SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" | ||
11 | |||
12 | # Choose between Soft Float-Point and Hard Float-Point | ||
13 | EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '', d)}" | ||
14 | |||
15 | PACKAGECONFIG ?= "" | ||
16 | PACKAGECONFIG_mx6q = "vpu" | ||
17 | PACKAGECONFIG_mx6dl = "vpu" | ||
18 | PACKAGECONFIG_mx5 = "vpu" | ||
19 | |||
20 | PACKAGECONFIG[vpu] = "--enable-vpu,--disable-vpu,imx-vpu" | ||
21 | |||
22 | do_install_append() { | ||
23 | # FIXME: This link points to nowhere | ||
24 | rm ${D}${libdir}/imx-mm/audio-codec/lib_src_ppp_arm11_elinux.so | ||
25 | |||
26 | # LTIB move the files around or gst-fsl-plugin won't find them | ||
27 | for p in $(find ${D}${libdir}/imx-mm -mindepth 2 -maxdepth 2 -not -type d); do | ||
28 | mv $p ${D}${libdir} | ||
29 | done | ||
30 | rmdir ${D}${libdir}/imx-mm/video-codec | ||
31 | |||
32 | } | ||
33 | |||
34 | do_install_append_mx5() { | ||
35 | # FIXME: The binary files depends on libvpu.so.4 which is i.MX6 only | ||
36 | rm -r ${D}${datadir}/imx-mm/*/examples/*/bin | ||
37 | } | ||
38 | |||
39 | python __set_insane_skip() { | ||
40 | # Ensure we have PACKAGES expanded | ||
41 | bb.build.exec_func("read_subpackage_metadata", d) | ||
42 | |||
43 | for p in d.getVar('PACKAGES', True).split(): | ||
44 | # Even though we are packaging libraries those are plugins so we | ||
45 | # shouldn't rename the packages to follow its sonames. | ||
46 | d.setVar("DEBIAN_NOAUTONAME_%s" % p, "1") | ||
47 | |||
48 | # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have | ||
49 | # the source we cannot fix it. Disable the insane check for now. | ||
50 | if p == 'libfslcodec-test-bin': | ||
51 | # FIXME: includes the DUT .so files so we need to deploy those | ||
52 | d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel libdir") | ||
53 | else: | ||
54 | d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel") | ||
55 | } | ||
56 | |||
57 | do_package_qa[prefuncs] += "__set_insane_skip" | ||
58 | |||
59 | python __split_libfslcodec_plugins() { | ||
60 | codecdir = bb.data.expand('${libdir}', d) | ||
61 | do_split_packages(d, codecdir, '^lib_([^_]*).*_arm.*_elinux\.so\..*', | ||
62 | aux_files_pattern='${libdir}/imx-mm/audio-codec/wrap/lib_%sd_wrap_arm*_elinux.so.*', | ||
63 | output_pattern='libfslcodec-%s', | ||
64 | description='Freescale i.MX Codec (%s)', | ||
65 | extra_depends='') | ||
66 | } | ||
67 | |||
68 | python __set_metapkg_rdepends() { | ||
69 | # Allow addition of all codecs in a image; useful specially for | ||
70 | # debugging. | ||
71 | codec_pkgs = oe.utils.packages_filter_out_system(d) | ||
72 | codec_pkgs = filter(lambda x: x not in ['libfslcodec-test-bin', 'libfslcodec-test-source'], | ||
73 | codec_pkgs) | ||
74 | d.appendVar('RDEPENDS_libfslcodec-meta', ' ' + ' '.join(codec_pkgs)) | ||
75 | } | ||
76 | |||
77 | PACKAGESPLITFUNCS =+ "__split_libfslcodec_plugins __set_metapkg_rdepends" | ||
78 | |||
79 | PACKAGES_DYNAMIC = "${PN}-*" | ||
80 | INHIBIT_PACKAGE_STRIP = "1" | ||
81 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
82 | |||
83 | PACKAGES += "${PN}-meta ${PN}-test-bin ${PN}-test-source" | ||
84 | |||
85 | ALLOW_EMPTY_${PN} = "1" | ||
86 | ALLOW_EMPTY_${PN}-meta = "1" | ||
87 | |||
88 | # Ensure we get warnings if we miss something | ||
89 | FILES_${PN} = "" | ||
90 | |||
91 | FILES_${PN}-dev += "${libdir}/imx-mm/*/*${SOLIBSDEV} \ | ||
92 | ${libdir}/imx-mm/*/*/*${SOLIBSDEV} \ | ||
93 | ${libdir}/pkgconfig/*.pc ${includedir}/imx-mm/*" | ||
94 | |||
95 | FILES_${PN}-test-bin += "${datadir}/imx-mm/*/examples/*/bin" | ||
96 | |||
97 | FILES_${PN}-test-source += "${datadir}/imx-mm/*" | ||
98 | |||
99 | # FIXME: The wrap and lib names does not match | ||
100 | FILES_${PN}-oggvorbis += "${libdir}/imx-mm/audio-codec/wrap/lib_vorbisd_wrap_arm*_elinux.so.*" | ||
101 | FILES_${PN}-nb += "${libdir}/imx-mm/audio-codec/wrap/lib_nbamrd_wrap_arm*_elinux.so.*" | ||
102 | FILES_${PN}-wb += "${libdir}/imx-mm/audio-codec/wrap/lib_wbamrd_wrap_arm*_elinux.so.*" | ||
103 | |||
104 | 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 @@ | |||
1 | # Copyright (C) 2013-2015 Freescale Semiconductor | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | |||
4 | require recipes-multimedia/libfslcodec/libfslcodec.inc | ||
5 | |||
6 | SRC_URI[md5sum] = "829f88758622eab85b7427e5b488c8a0" | ||
7 | SRC_URI[sha256sum] = "0d0ff933eed0a021763115b9c8ae812c6376a19bbd95e555d89ea7404f6c8f2f" | ||
8 | |||
9 | 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 @@ | |||
1 | # Copyright (C) 2012-2014 O.S. Systems Software LTDA. | ||
2 | # Copyright (C) 2012-2013 Freescale Semiconductor | ||
3 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
4 | DESCRIPTION = "Freescale Multimedia parser libs" | ||
5 | LICENSE = "Proprietary" | ||
6 | SECTION = "multimedia" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241" | ||
8 | |||
9 | inherit fsl-eula-unpack autotools pkgconfig | ||
10 | |||
11 | SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" | ||
12 | |||
13 | # Choose between Soft Float-Point and Hard Float-Point | ||
14 | EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '--enable-fsw', d)}" | ||
15 | |||
16 | INHIBIT_PACKAGE_STRIP = "1" | ||
17 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
18 | |||
19 | python __set_insane_skip() { | ||
20 | # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have | ||
21 | # the source we cannot fix it. Disable the insane check for now. | ||
22 | # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those | ||
23 | for p in d.getVar('PACKAGES', True).split(): | ||
24 | d.setVar("INSANE_SKIP_%s" % p, "ldflags dev-so textrel") | ||
25 | } | ||
26 | |||
27 | do_package_qa[prefuncs] += "__set_insane_skip" | ||
28 | |||
29 | # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those | ||
30 | FILES_${PN} += "${libdir}/imx-mm/*/*${SOLIBS} ${libdir}/imx-mm/*/*${SOLIBSDEV}" | ||
31 | |||
32 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
33 | |||
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 @@ | |||
1 | # Copyright (C) 2013-2015 Freescale Semiconductor | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | |||
4 | require recipes-multimedia/libfslparser/libfslparser.inc | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241" | ||
6 | |||
7 | SRC_URI[md5sum] = "a0b0779edc543536de71898657072275" | ||
8 | SRC_URI[sha256sum] = "9db10ca6a61c8fdbe91b55b65d084dcbb5f9cfb58b088996c7dd2d6dc8385730" | ||
9 | |||
10 | 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 @@ | |||
1 | # Copyright (C) 2013-2015 Freescale Semiconductor | ||
2 | # Released under the MIT license (see COPYING.MIT for the terms) | ||
3 | DESCRIPTION = "Freescale Multimedia VPU wrapper" | ||
4 | DEPENDS = "imx-vpu" | ||
5 | LICENSE = "Proprietary" | ||
6 | SECTION = "multimedia" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=acdb807ac7275fe32f9f64992e111241" | ||
8 | |||
9 | SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true" | ||
10 | S = "${WORKDIR}/${PN}-${PV}" | ||
11 | |||
12 | SRC_URI[md5sum] = "bf4960ab18e6bb59e98aae797b80cd7f" | ||
13 | SRC_URI[sha256sum] = "a278eb18ec24230166ac39e2eadf7b934798f0432654c2e24c4cb69c3ac1cf0f" | ||
14 | |||
15 | inherit fsl-eula-unpack autotools pkgconfig | ||
16 | |||
17 | do_install_append() { | ||
18 | # FIXME: Drop examples for now | ||
19 | rm -r ${D}${datadir} | ||
20 | } | ||
21 | |||
22 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
23 | 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 @@ | |||
1 | |||
2 | CACHED_CONFIGUREVARS_append_mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no" | ||
3 | |||
4 | PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" | ||