v4l2: Properly fix Android build
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 21 Nov 2018 23:53:39 +0000 (18:53 -0500)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 21 Nov 2018 23:58:38 +0000 (18:58 -0500)
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

index 3d0c79b..eaaff58 100644 (file)
@@ -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))