Skip to content

Commit

Permalink
recipes-multimedia: Upgrade to NXP release 6.6.3_1.0.0
Browse files Browse the repository at this point in the history
Updated:
        - alsa-lib update to 6.6.3_1.0.0 release and skip QA check for 32bit timer
        - gstreamer1.0-plugins-bad_1.22.5.imx update to 6.6.3_1.0.0 release, enable g2d
        - gstreamer1.0-plugins-base_1.22.5.imx update to 6.6.3_1.0.0 release, add opengl dependencies
        - gstreamer1.0-plugins-good_1.22.5.imx update to 6.6.3_1.0.0 release, enable pulseaudio and 32bit timer
        - gstreamer1.0_1.22.5.imx update to 6.6.3_1.0.0 release and add runtime dependency glibc-gconv-iso8859-5
        - imx-gst1.0-plugin update to 6.6.3_1.0.0 release
        - imx-vpuwrap update to 6.6.3_1.0.0 release

Upgraded:
        - imx-codec: 4.8.2 -> 4.8.3
        - imx-dsp-codec-ext: 2.1.6 -> 2.1.7
        - imx-dsp: 2.1.6 -> 2.1.7
        - imx-parser: 4.8.2 -> 4.8.3
        - imx-opencl-converter: 0.1 -> 0.2.0
New feature:
        - pipewire_1.0.0

Signed-off-by: Valentin Jec <[email protected]>
  • Loading branch information
valijec committed Apr 11, 2024
1 parent 19d33d8 commit f2575b7
Show file tree
Hide file tree
Showing 18 changed files with 379 additions and 36 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
From 0e3dfb9f705ca78be34cd70fd59d67c431e29cc7 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <[email protected]>
Date: Sat, 9 Sep 2023 17:42:03 +0200
Subject: [PATCH] pcm: Fix segfault with 32bit libs

Upstream-Status: Backport [https://github.com/alsa-project/alsa-lib/commit/0e3dfb9f705ca78be34cd70fd59d67c431e29cc7]

The recent rearrangement of header inclusion order caused a regression
showing segfaults on 32bit Arm. The primary reason is the
inconsistent compile condition depending on the inclusion of config.h;
while most of other code include pcm_local.h (that implicitly includes
config.h) at first, pcm_direct.c doesn't do it, hence the access with
direct plugins crashes.

For fixing it, we need to include config.h at the beginning. But,
it's better to include pcm_local.h for all relevant code for
consistency. The patch does it, and also it adds the guard in
pcm_local.h for double inclusions.

Fixes: ad3a8b8b314e ("reshuffle included files to include config.h as first")
Link: https://github.com/alsa-project/alsa-lib/issues/352
Signed-off-by: Takashi Iwai <[email protected]>
---
src/pcm/pcm_direct.c | 1 +
src/pcm/pcm_dmix.c | 2 +-
src/pcm/pcm_dshare.c | 1 +
src/pcm/pcm_dsnoop.c | 1 +
src/pcm/pcm_local.h | 5 +++++
src/pcm/pcm_shm.c | 1 +
6 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c
index 040fc160..e53e5923 100644
--- a/src/pcm/pcm_direct.c
+++ b/src/pcm/pcm_direct.c
@@ -19,6 +19,7 @@
*
*/

+#include "pcm_local.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
index 7cd3c508..55cae3e7 100644
--- a/src/pcm/pcm_dmix.c
+++ b/src/pcm/pcm_dmix.c
@@ -26,7 +26,7 @@
*
*/

-#include "config.h"
+#include "pcm_local.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
index 454b39a9..c0329098 100644
--- a/src/pcm/pcm_dshare.c
+++ b/src/pcm/pcm_dshare.c
@@ -26,6 +26,7 @@
*
*/

+#include "pcm_local.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
index d3ce300c..bf67c68a 100644
--- a/src/pcm/pcm_dsnoop.c
+++ b/src/pcm/pcm_dsnoop.c
@@ -26,6 +26,7 @@
*
*/

+#include "pcm_local.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h
index 6a0e71e7..152c92c3 100644
--- a/src/pcm/pcm_local.h
+++ b/src/pcm/pcm_local.h
@@ -20,6 +20,9 @@
*
*/

+#ifndef __PCM_LOCAL_H
+#define __PCM_LOCAL_H
+
#include "config.h"

#include <stdio.h>
@@ -1223,3 +1226,5 @@ static inline void snd_pcm_unlock(snd_pcm_t *pcm)
#define snd_pcm_lock(pcm) do {} while (0)
#define snd_pcm_unlock(pcm) do {} while (0)
#endif /* THREAD_SAFE_API */
+
+#endif /* __PCM_LOCAL_H */
diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
index f0bfd934..d9596547 100644
--- a/src/pcm/pcm_shm.c
+++ b/src/pcm/pcm_shm.c
@@ -26,6 +26,7 @@
*
*/

+#include "pcm_local.h"
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
--
2.25.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
From aa4f56c3c952269c36464cc0da9db5a1381648fa Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <[email protected]>
Date: Wed, 9 Nov 2022 08:11:42 +0100
Subject: [PATCH] pcm: rate - fix the crash in

Upstream-Status: Backport

snd_pcm_rate_may_wait_for_avail_min()

The pcm argument passed to the conversion function in
snd_pcm_plugin_may_wait_for_avail_min_conv() should be
pcm->fast_op_arg.

Test command: arecord -Dplughw:x -r12000 -c2 -fS16_LE -M temp.wav

Fixes: d9dbb57b ("pcm: rate - rewrite the may_wait_for_avail_min callback for the rate plugin")

BugLink: https://lore.kernel.org/alsa-devel/[email protected]/
Fixes: https://github.com/alsa-project/alsa-lib/issues/282
Reported-by: Shengjiu Wang <[email protected]>
Signed-off-by: Jaroslav Kysela <[email protected]>
---
src/pcm/pcm_plugin.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pcm/pcm_plugin.c b/src/pcm/pcm_plugin.c
index 6bb90b8b..ec64604c 100644
--- a/src/pcm/pcm_plugin.c
+++ b/src/pcm/pcm_plugin.c
@@ -622,7 +622,7 @@ int snd_pcm_plugin_may_wait_for_avail_min_conv(
* This code is also used by extplug, but extplug does not allow to alter the sampling rate.
*/
if (conv)
- needed_slave_avail_min = conv(pcm, needed_slave_avail_min);
+ needed_slave_avail_min = conv(pcm->fast_op_arg, needed_slave_avail_min);

if (slave->avail_min != needed_slave_avail_min) {
snd_pcm_sw_params_t *swparams;
--
2.34.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
From 97d5e09a4166b45c567026e51b8a25ef5d7d587d Mon Sep 17 00:00:00 2001
From: Chancel Liu <[email protected]>
Date: Fri, 29 Jul 2022 16:12:37 +0800
Subject: [PATCH] add conf for imx-cs42448 sound card

Upstream-Status: Inappropriate [i.MX specific]

Signed-off-by: Chancel Liu <[email protected]>
---
src/conf/cards/CS42448.conf | 58 +++++++++++++++++++++++++++++++++++++
src/conf/cards/Makefile.am | 3 +-
src/conf/cards/aliases.conf | 1 +
3 files changed, 61 insertions(+), 1 deletion(-)
create mode 100644 src/conf/cards/CS42448.conf

diff --git a/src/conf/cards/CS42448.conf b/src/conf/cards/CS42448.conf
new file mode 100644
index 00000000..28ba5c48
--- /dev/null
+++ b/src/conf/cards/CS42448.conf
@@ -0,0 +1,58 @@
+#
+# Configuration for the CS42448 chip
+#
+
+# default with dmix & dsnoop
+CS42448.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/surround51.conf>
+
+CS42448.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 6
+}
+
+<confdir:pcm/surround71.conf>
+
+CS42448.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 8
+}
+
+# vim: ft=alsaconf
diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am
index 70b9bab3..6aba20b4 100644
--- a/src/conf/cards/Makefile.am
+++ b/src/conf/cards/Makefile.am
@@ -62,7 +62,8 @@ cfg_files = aliases.conf \
CS42888.conf \
IMX-HDMI.conf \
AK4458.conf \
- IMX-XCVR.conf
+ IMX-XCVR.conf \
+ CS42448.conf

if BUILD_ALISP
cfg_files += aliases.alisp
diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
index e824145d..a40d3731 100644
--- a/src/conf/cards/aliases.conf
+++ b/src/conf/cards/aliases.conf
@@ -61,6 +61,7 @@ imx-cs42888 cards.CS42888
imx-hdmi-soc cards.IMX-HDMI
ak4458-audio cards.AK4458
imx-audio-xcvr cards.IMX-XCVR
+imx-cs42448 cards.CS42448

<confdir:ctl/default.conf>
<confdir:pcm/default.conf>
--
2.17.1
6 changes: 6 additions & 0 deletions recipes-multimedia/alsa/alsa-lib_%.bbappend
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ IMX_PATCH = " \
file://0001-add-conf-for-multichannel-support-in-imx.patch \
file://0005-add-ak4458-conf-for-multichannel-support.patch \
file://0006-add-conf-for-iMX-XCVR-sound-card.patch \
file://0007-add-conf-for-imx-cs42448-sound-card.patch \
file://0001-pcm-rate-fix-the-crash-in-snd_pcm_rate_may_wait_for_.patch \
file://0001-pcm-Fix-segfault-with-32bit-libs.patch \
"
SRC_URI:append:imx-nxp-bsp = "${IMX_PATCH}"

PACKAGE_ARCH:imx-nxp-bsp = "${MACHINE_SOCARCH}"

GLIBC_64BIT_TIME_FLAGS = ""
INSANE_SKIP:append = " 32bit-time"
2 changes: 1 addition & 1 deletion recipes-multimedia/alsa/imx-alsa-plugins_git.bb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ inherit autotools pkgconfig use-imx-headers
PV = "1.0.26+${SRCPV}"

SRC_URI = "git://github.com/nxp-imx/imx-alsa-plugins.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "MM_04.08.02_2310_L6.1.y"
SRCBRANCH = "MM_04.08.03_2312_L6.6.y"
SRCREV = "b2ba082e70333f187972ee4e85f63f9d2f608331"

S = "${WORKDIR}/git"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plug
file://0002-avoid-including-sys-poll.h-directly.patch"
SRC_URI:prepend = "${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} "
GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https"
SRCBRANCH = "MM_04.08.02_2310_L6.1.y"
SRCREV = "e4edcda6b110f42eca1f2cc20bc935edf7e66d6d"
SRCBRANCH = "MM_04.08.03_2312_L6.6.y"
SRCREV = "9de821c50b4dd7af2407d9c3d078020704510a20"

S = "${WORKDIR}/git"

Expand All @@ -204,6 +204,11 @@ PACKAGECONFIG_REMOVE ?= " \
PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}"
PACKAGECONFIG:append:mx8-nxp-bsp = " kms tinycompress"

PACKAGECONFIG:append = " ${PACKAGECONFIG_G2D}"
PACKAGECONFIG_G2D ??= ""
PACKAGECONFIG_G2D:imxgpu2d ??= "g2d"

PACKAGECONFIG[g2d] = ",,virtual/libg2d"
PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress"

EXTRA_OEMESON += " \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,19 @@ SRC_URI:remove = " \
SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} "
SRC_URI:append = " file://0001-gstallocator-Fix-typcasts.patch"
GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https"
SRCBRANCH = "MM_04.08.02_2310_L6.1.y"
SRCREV = "53a12f4e39773ca5b052eccbf0476d4ebd3ac08e"
SRCBRANCH = "MM_04.08.03_2312_L6.6.y"
SRCREV = "c4333767ea122c182ba4e14cababe8dbe2a1b882"

S = "${WORKDIR}/git"

inherit use-imx-headers

PACKAGECONFIG_REMOVE ?= "jpeg"
PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}"
PACKAGECONFIG:append:imxgpu2d = " g2d"
PACKAGECONFIG_REMOVE ?= "jpeg"

PACKAGECONFIG:append = " ${PACKAGECONFIG_G2D}"
PACKAGECONFIG_G2D ??= ""
PACKAGECONFIG_G2D:imxgpu2d ??= "g2d"

PACKAGECONFIG[g2d] = ",,virtual/libg2d"
PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ LIC_FILES_CHKSUM = " \
file://LICENSE.txt;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe \
"
# Enable pulsesink in gstreamer
PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"

# fb implementation of v4l2 uses libdrm
DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'v4l2', '${DEPENDS_V4L2}', '', d)}"
Expand All @@ -109,8 +111,14 @@ SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plu

SRC_URI:prepend = "${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} "
GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https"
SRCBRANCH = "MM_04.08.02_2310_L6.1.y"
SRCREV = "a4631334ad32abc513bde8f73491ef345f865a48"
SRCBRANCH = "MM_04.08.03_2312_L6.6.y"
SRCREV = "d361360510c97dc23abbfcdd22dff8214890527d"

# set 32bit compile timer for 32-bit platform
GLIBC_64BIT_TIME_FLAGS:mx6-nxp-bsp = ""
GLIBC_64BIT_TIME_FLAGS:mx7-nxp-bsp = ""
INSANE_SKIP:mx6-nxp-bsp:append = " 32bit-time"
INSANE_SKIP:mx7-nxp-bsp:append = " 32bit-time"

S = "${WORKDIR}/git"

Expand Down
6 changes: 4 additions & 2 deletions recipes-multimedia/gstreamer/gstreamer1.0_1.22.5.imx.bb
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"

RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"

CVE_PRODUCT = "gstreamer"

PTEST_BUILD_HOST_FILES = ""
Expand All @@ -93,8 +95,8 @@ LIC_FILES_CHKSUM = " \
SRC_URI:remove = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz"
SRC_URI:prepend = "${GST1.0_SRC};branch=${SRCBRANCH} "
GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https"
SRCBRANCH = "MM_04.08.02_2310_L6.1.y"
SRCREV = "e51e577a730191911b7050216814bede1b9545ae"
SRCBRANCH = "MM_04.08.03_2312_L6.6.y"
SRCREV = "1a43c16272a7f4274eb8260e03206a57f317d823"

S = "${WORKDIR}/git"

Expand Down
Loading

0 comments on commit f2575b7

Please sign in to comment.