Commit 4c4871f1 authored by Ronald S. Bultje's avatar Ronald S. Bultje

Workaround for missing struct v4l2_buffer declaration in Suse 9 and Mandrake...

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).
parent 1c54cab4
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):
......
......@@ -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:
......
......@@ -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())
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment