On 8/29/2024 10:40 AM, Ramiro Polla wrote:
Instead of relying on system #ifdefs which may or may not be correct,
detect the POSIX ioctl signature at configure time.
---
  configure          | 2 ++
  libavdevice/v4l2.c | 2 +-
  2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 63f0429b02..ebbec49993 100755
--- a/configure
+++ b/configure
@@ -2524,6 +2524,7 @@ HAVE_LIST="
      opencl_videotoolbox
      perl
      pod2man
+    posix_ioctl
      texi2html
      xmllint
      zlib_gzip
@@ -7158,6 +7159,7 @@ xmllint --version  > /dev/null 2>&1 && enable xmllint   
|| disable xmllint
  check_headers linux/fb.h
  check_headers linux/videodev2.h
  test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 
0;" && enable_sanitized struct_v4l2_frmivalenum_discrete
+test_code cc sys/ioctl.h "int ioctl(int, int, ...);" && enable posix_ioctl

Is this check going to fail for the targets where ioctl_f has request as an unsigned long int?

# check V4L2 codecs available in the API
  if enabled v4l2_m2m; then
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 42d4b97c8f..0ae6872338 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -111,7 +111,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, ...);

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to