]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
ffmpeg: Fix build on musl linux systems
authorKhem Raj <raj.khem@gmail.com>
Mon, 2 Sep 2024 21:20:22 +0000 (14:20 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 4 Sep 2024 11:36:43 +0000 (12:36 +0100)
Improved detection of ioctl API makes it easier to use the right
implementation rather than bunch of ifdef condition checks.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-multimedia/ffmpeg/ffmpeg/0001-configure-improve-check-for-POSIX-ioctl.patch [new file with mode: 0644]
meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb

diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-configure-improve-check-for-POSIX-ioctl.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-configure-improve-check-for-POSIX-ioctl.patch
new file mode 100644 (file)
index 0000000..b7c8cb2
--- /dev/null
@@ -0,0 +1,48 @@
+From 82b5617b8197246cf5b2af98a28f2aa37b8c8aa1 Mon Sep 17 00:00:00 2001
+From: Ramiro Polla <ramiro.polla@gmail.com>
+Date: Thu, 29 Aug 2024 15:40:00 +0200
+Subject: [PATCH] configure: improve check for POSIX ioctl
+
+Instead of relying on system #ifdefs which may or may not be correct,
+detect the POSIX ioctl signature at configure time.
+
+Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/00b64fca55a3a009c9d0e391c85f4fd3291e5d12]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure          | 2 ++
+ libavdevice/v4l2.c | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 8642513..d70b0bb 100755
+--- a/configure
++++ b/configure
+@@ -2517,6 +2517,7 @@ HAVE_LIST="
+     opencl_videotoolbox
+     perl
+     pod2man
++    posix_ioctl
+     texi2html
+     xmllint
+     zlib_gzip
+@@ -7131,6 +7132,7 @@ perl -v            > /dev/null 2>&1 && enable perl      || disable perl
+ pod2man --help     > /dev/null 2>&1 && enable pod2man   || disable pod2man
+ rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
+ xmllint --version  > /dev/null 2>&1 && enable xmllint   || disable xmllint
++test_code cc sys/ioctl.h "int ioctl(int, int, ...)" && enable posix_ioctl
+ # check V4L2 codecs available in the API
+ if enabled v4l2_m2m; then
+diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
+index 50ac47e..ee01711 100644
+--- a/libavdevice/v4l2.c
++++ b/libavdevice/v4l2.c
+@@ -107,7 +107,7 @@ struct video_data {
+     int (*open_f)(const char *file, int oflag, ...);
+     int (*close_f)(int fd);
+     int (*dup_f)(int fd);
+-#if defined(__sun) || defined(__BIONIC__) || defined(__musl__) /* POSIX-like */
++#if HAVE_POSIX_IOCTL
+     int (*ioctl_f)(int fd, int request, ...);
+ #else
+     int (*ioctl_f)(int fd, unsigned long int request, ...);
index 1dbb7e04efb06948c0049654383a6a2637a1b493..9e60b5cd23e9dbdaee85c5e25f155186b83f089c 100644 (file)
@@ -25,6 +25,7 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
 SRC_URI = " \
     https://www.ffmpeg.org/releases/${BP}.tar.xz \
     file://0001-libavcodec-arm-mlpdsp_armv5te-fix-label-format-to-wo.patch \
+    file://0001-configure-improve-check-for-POSIX-ioctl.patch \
 "
 
 SRC_URI[sha256sum] = "8646515b638a3ad303e23af6a3587734447cb8fc0a0c064ecdb8e95c4fd8b389"