diff mbox

[FFmpeg-devel] avdevice: Fix ioctl method signature for Android builds

Message ID CAMksjJng8JpaPapS2nUUp8eCb6QbSX7CFFq-KZNQ_HrPRvXO=A@mail.gmail.com
State New
Headers show

Commit Message

Don Turner Oct. 22, 2018, 4:40 p.m. UTC
When compiling avdevice for Android I received a compile error from
libavdevice/v4l2.c. Full details in the 2nd part of this answer:
https://stackoverflow.com/questions/52896607/why-do-i-get-error-invalid-instruction-mnemonic-when-compiling-ffmpeg-for-and/52900973#52900973

Patch below:

     int (*munmap_f)(void *_start, size_t length);


---
Don Turner | Developer Advocate | donturner@google.com | +44 7939 287199

Comments

Carl Eugen Hoyos Oct. 22, 2018, 6:22 p.m. UTC | #1
2018-10-22 18:40 GMT+02:00, Don Turner <donturner-at-google.com@ffmpeg.org>:
> When compiling avdevice for Android I received a compile error from
> libavdevice/v4l2.c.

I only get a warning here.

> Full details in the 2nd part of this answer:
> https://stackoverflow.com/questions/52896607/why-do-i-get-error-invalid-instruction-mnemonic-when-compiling-ffmpeg-for-and/52900973#52900973
>
> Patch below:
>
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 10a0ff0dd6..1b9c6e760b 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -95,7 +95,11 @@ struct video_data {
>      int (*open_f)(const char *file, int oflag, ...);
>      int (*close_f)(int fd);
>      int (*dup_f)(int fd);
> +#ifdef __GLIBC__
>      int (*ioctl_f)(int fd, unsigned long int request, ...);
> +#else
> +    int (*ioctl_f)(int fd, int request, ...);
> +#endif

Is this better than checking for target-os "android"?

Carl Eugen
Michael Niedermayer Oct. 22, 2018, 8:31 p.m. UTC | #2
On Mon, Oct 22, 2018 at 05:40:21PM +0100, Don Turner wrote:
> When compiling avdevice for Android I received a compile error from
> libavdevice/v4l2.c. Full details in the 2nd part of this answer:
> https://stackoverflow.com/questions/52896607/why-do-i-get-error-invalid-instruction-mnemonic-when-compiling-ffmpeg-for-and/52900973#52900973
> 
> Patch below:
> 
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 10a0ff0dd6..1b9c6e760b 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -95,7 +95,11 @@ struct video_data {
>      int (*open_f)(const char *file, int oflag, ...);
>      int (*close_f)(int fd);
>      int (*dup_f)(int fd);
> +#ifdef __GLIBC__
>      int (*ioctl_f)(int fd, unsigned long int request, ...);
> +#else
> +    int (*ioctl_f)(int fd, int request, ...);
> +#endif
>      ssize_t (*read_f)(int fd, void *buffer, size_t n);
>      void *(*mmap_f)(void *start, size_t length, int prot, int flags, int
> fd, int64_t offset);
>      int (*munmap_f)(void *_start, size_t length);

this patch is corrupted by new lines, check your line/word wrap settings


[...]
diff mbox

Patch

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 10a0ff0dd6..1b9c6e760b 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -95,7 +95,11 @@  struct video_data {
     int (*open_f)(const char *file, int oflag, ...);
     int (*close_f)(int fd);
     int (*dup_f)(int fd);
+#ifdef __GLIBC__
     int (*ioctl_f)(int fd, unsigned long int request, ...);
+#else
+    int (*ioctl_f)(int fd, int request, ...);
+#endif
     ssize_t (*read_f)(int fd, void *buffer, size_t n);
     void *(*mmap_f)(void *start, size_t length, int prot, int flags, int
fd, int64_t offset);