From 3b22a604b59a8a9b1e0141180746a927e87b3655 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 21 Nov 2018 18:53:39 -0500 Subject: [PATCH] v4l2: Properly fix Android build The previous patch did not even compile on any possible platform or C standard. That commit also didn't have a proper commit message. Android ships Linux with a different signature for ioctl. They first released an ioctl with int as request type, and later "fixed" it by adding an override with unsign, which is still not matching Linux and BSD implementation which uses unsigned long int. --- sys/v4l2/gstv4l2object.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h index 3d0c79b4de..eaaff58923 100644 --- a/sys/v4l2/gstv4l2object.h +++ b/sys/v4l2/gstv4l2object.h @@ -71,9 +71,9 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object); /* On Android NDK r18b the ioctl() signature uses 'unsigned' instead of * 'unsigned long' for the 2nd parameter */ #ifdef __ANDROID__ -typedef ioctl_req_t unsigned +typedef unsigned ioctl_req_t; #else -typedef ioctl_req_t gulong +typedef gulong ioctl_req_t; #endif #define GST_V4L2_WIDTH(o) (GST_VIDEO_INFO_WIDTH (&(o)->info))