diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-04-10 13:27:16 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-04-10 13:27:16 +0000 |
commit | 4c4871f13368ea5a47b607b14c620b1562aa3236 (patch) | |
tree | 2e04a9e6d3a3c09282627915473cd4aade25f7ee | |
parent | 1c54cab408dcdcbe2082f268cb429e0470381b25 (diff) | |
download | gst-plugins-bad-4c4871f13368ea5a47b607b14c620b1562aa3236.tar.gz gst-plugins-bad-4c4871f13368ea5a47b607b14c620b1562aa3236.tar.bz2 gst-plugins-bad-4c4871f13368ea5a47b607b14c620b1562aa3236.zip |
Workaround for missing struct v4l2_buffer declaration in Suse 9 and Mandrake 10 linux/videodev2.h header file (#135919).
Original commit message from CVS:
* configure.ac:
* sys/v4l2/gstv4l2element.h:
Workaround for missing struct v4l2_buffer declaration in Suse 9
and Mandrake 10 linux/videodev2.h header file (#135919).
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | configure.ac | 17 | ||||
-rw-r--r-- | sys/v4l2/gstv4l2element.h | 30 |
3 files changed, 54 insertions, 0 deletions
@@ -1,5 +1,12 @@ 2004-04-10 Ronald Bultje <rbultje@ronald.bitfreak.net> + * configure.ac: + * sys/v4l2/gstv4l2element.h: + Workaround for missing struct v4l2_buffer declaration in Suse 9 + and Mandrake 10 linux/videodev2.h header file (#135919). + +2004-04-10 Ronald Bultje <rbultje@ronald.bitfreak.net> + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file): Bail out if no filename was given. diff --git a/configure.ac b/configure.ac index 7311bc78..b83f5bf6 100644 --- a/configure.ac +++ b/configure.ac @@ -635,6 +635,23 @@ return 0; [ AC_MSG_WARN([video4linux2 was not found])]) ]) fi + dnl check for missing v4l2_buffer declaration (see #135919) + if [ test x$HAVE_V4L2 = xyes ]; then + MISSING_DECL=0 + AC_MSG_CHECKING(struct v4l2_buffer declaration) + AC_TRY_COMPILE([ +#include <sys/types.h> +#include <linux/types.h> +#define _LINUX_TIME_H +#include <linux/videodev2.h> + ],[ +struct v4l2_buffer buf; +return 0; + ], [ AC_MSG_RESULT(yes) ], [ MISSING_DECL=1 && AC_MSG_RESULT(no) ]) + if [ test x$MISSING_DECL = x1 ]; then + AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing]) + fi + fi ]) dnl Next, check for the optional libraries: diff --git a/sys/v4l2/gstv4l2element.h b/sys/v4l2/gstv4l2element.h index e46b2440..61442aff 100644 --- a/sys/v4l2/gstv4l2element.h +++ b/sys/v4l2/gstv4l2element.h @@ -40,6 +40,36 @@ #define _LINUX_TIME_H #include <linux/videodev2.h> +/* + * See bug #135919, the Suse9 (and Mandrake10) videodev2 headers + * contain a bug where (for userspace applications) the v4l2_buffer + * struct is not declared, so applications have to declare it. + * Declaration straightly ripped out from <linux/videodev2.h>. + */ +#ifdef GST_V4L2_MISSING_BUFDECL +struct v4l2_buffer +{ + __u32 index; + enum v4l2_buf_type type; + __u32 bytesused; + __u32 flags; + enum v4l2_field field; + struct timeval timestamp; + struct v4l2_timecode timecode; + __u32 sequence; + + /* memory location */ + enum v4l2_memory memory; + union { + __u32 offset; + unsigned long userptr; + } m; + __u32 length; + + __u32 reserved[2]; +}; +#endif /* GST_V4L2_MISSING_BUFDECL */ + #define GST_TYPE_V4L2ELEMENT \ (gst_v4l2element_get_type()) |