diff options
author | Thierry MERLE <thierry.merle@free.fr> | 2008-07-06 14:07:34 +0200 |
---|---|---|
committer | Thierry MERLE <thierry.merle@free.fr> | 2008-07-06 14:07:34 +0200 |
commit | ab715d2e8eb29998b60fa3bbc1ad95441cfb69b3 (patch) | |
tree | 78731a6290210dba267ee4f6f3655659334835d4 /v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c | |
parent | c1a4267284bcd81240221187f5a16454f36ba02e (diff) | |
download | mediapointer-dvb-s2-ab715d2e8eb29998b60fa3bbc1ad95441cfb69b3.tar.gz mediapointer-dvb-s2-ab715d2e8eb29998b60fa3bbc1ad95441cfb69b3.tar.bz2 |
v4l2-library: libv4l-sync-with-0.3.3-release
From: Hans de Goede <j.w.r.degoede@hhs.nl>
* Add open64 and mmap64 wrappers to the LD_PRELOAD wrapper libs, so that
they also work for applications compiled with FILE_OFFSET_BITS=64, this
fixes using them with v4l-info
* While looking at xawtv in general, found a few bugs in xawtv itself, added
a patch to fix those to the appl-patches dir
* Talking about the appl-patches dir, restore that as it accidentally got
dropped from 0.3.2
* Be more verbose in various places when it comes to logging (esp errors)
* Change v4lconvert_enum_fmt code a bit, so that it is easier to add more
supported destination formats to libv4lconvert
* Don't return -EINVAL from try_fmt when we cannot convert because the cam
doesn't have any formats we know. Instead just return as format whatever the
cam returns from try_fmt, this new behavior is compliant with the v4l2
api as documented
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Diffstat (limited to 'v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c')
-rw-r--r-- | v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c index 4a4e5c253..db3a0027b 100644 --- a/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c +++ b/v4l2-apps/lib/libv4l/libv4l1/v4l1compat.c @@ -19,6 +19,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define _LARGEFILE64_SOURCE 1 + #include <stdlib.h> #include <stdarg.h> #include <fcntl.h> @@ -50,6 +52,27 @@ int open (const char *file, int oflag, ...) return fd; } +int open64 (const char *file, int oflag, ...) +{ + int fd; + + if (oflag & O_CREAT) + { + va_list ap; + mode_t mode; + + va_start (ap, oflag); + mode = va_arg (ap, mode_t); + + fd = v4l1_open(file, oflag | O_LARGEFILE, mode); + + va_end(ap); + } else + fd = v4l1_open(file, oflag | O_LARGEFILE); + + return fd; +} + int close(int fd) { return v4l1_close(fd); } @@ -82,6 +105,12 @@ void mmap(void *start, size_t length, int prot, int flags, int fd, return v4l1_mmap(start, length, prot, flags, fd, offset); } +void mmap64(void *start, size_t length, int prot, int flags, int fd, + __off64_t offset) +{ + return v4l1_mmap(start, length, prot, flags, fd, offset); +} + int munmap(void *start, size_t length) { return v4l1_munmap(start, length); |