v4l2: Fix support for 32bit mmap
https://bugzilla.gnome.org/show_bug.cgi?id=793103
This commit is contained in:
parent
0da4d409b9
commit
7d4702e2fb
@ -55,10 +55,6 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
|
|||||||
|
|
||||||
#define ENCODED_BUFFER_SIZE (2 * 1024 * 1024)
|
#define ENCODED_BUFFER_SIZE (2 * 1024 * 1024)
|
||||||
|
|
||||||
#if SIZEOF_OFF_T == 8 && !defined(mmap64)
|
|
||||||
#define mmap64 mmap
|
|
||||||
#endif
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
@ -460,6 +456,22 @@ gst_v4l2_object_install_m2m_properties_helper (GObjectClass * gobject_class)
|
|||||||
GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Support for 32bit off_t, this wrapper is casting off_t to gint64 */
|
||||||
|
#ifdef HAVE_LIBV4L2
|
||||||
|
#if SIZEOF_OFF_T < 8
|
||||||
|
|
||||||
|
static gpointer
|
||||||
|
v4l2_mmap_wrapper (gpointer start, gsize length, gint prot, gint flags, gint fd,
|
||||||
|
off_t offset)
|
||||||
|
{
|
||||||
|
return v4l2_mmap (start, length, prot, flags, fd, (gint64) offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define v4l2_mmap v4l2_mmap_wrapper
|
||||||
|
|
||||||
|
#endif /* SIZEOF_OFF_T < 8 */
|
||||||
|
#endif /* HAVE_LIBV4L2 */
|
||||||
|
|
||||||
GstV4l2Object *
|
GstV4l2Object *
|
||||||
gst_v4l2_object_new (GstElement * element,
|
gst_v4l2_object_new (GstElement * element,
|
||||||
GstObject * debug_object,
|
GstObject * debug_object,
|
||||||
|
@ -194,7 +194,7 @@ struct _GstV4l2Object {
|
|||||||
gint (*ioctl) (gint fd, gulong request, ...);
|
gint (*ioctl) (gint fd, gulong request, ...);
|
||||||
gssize (*read) (gint fd, gpointer buffer, gsize n);
|
gssize (*read) (gint fd, gpointer buffer, gsize n);
|
||||||
gpointer (*mmap) (gpointer start, gsize length, gint prot, gint flags,
|
gpointer (*mmap) (gpointer start, gsize length, gint prot, gint flags,
|
||||||
gint fd, gint64 offset);
|
gint fd, off_t offset);
|
||||||
gint (*munmap) (gpointer _start, gsize length);
|
gint (*munmap) (gpointer _start, gsize length);
|
||||||
|
|
||||||
/* Quirks */
|
/* Quirks */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user