Hi,
I'm trying to get a DataVideo DAC-100 DV interface to work as a V4L device so I can get analog video into VLC to stream.
I've got vloopback working but I can't get dv4l to compile. I've added the dev packages for all the prerequisites .configure was saying "no" to and that seems to be OK now:
Code:
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking libraw1394/raw1394.h usability... yes
checking libraw1394/raw1394.h presence... yes
checking for libraw1394/raw1394.h... yes
checking libiec61883/iec61883.h usability... yes
checking libiec61883/iec61883.h presence... yes
checking for libiec61883/iec61883.h... yes
checking libdv/dv.h usability... yes
checking libdv/dv.h presence... yes
checking for libdv/dv.h... yes
checking sys/xattr.h usability... yes
checking sys/xattr.h presence... yes
checking for sys/xattr.h... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating version.h
config.status: creating config.h
When I try to make it doesn't succeed:
Code:
cc -Wall -O3 -MMD -c -o normfile.o normfile.c
normfile.c: In function ‘normalize’:
normfile.c:247: warning: ignoring return value of ‘getcwd’, declared with attribute warn_unused_result
cc -Wall -O3 -MMD -c -o palettes.o palettes.c
cc -Wall -O3 -MMD -c -o scale.o scale.c
cc -Wall -O3 -MMD -c -o util.o util.c
cc -Wall -O3 -MMD -c -o dv4l.o dv4l.c
dv4l.c: In function ‘mmap_mode’:
dv4l.c:789: warning: dereferencing type-punned pointer will break strict-aliasing rules
dv4l.c: In function ‘simple_frame_recv’:
dv4l.c:831: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
cc -lraw1394 -liec61883 -ldv -o dv4l normfile.o palettes.o scale.o util.o dv4l.o
cc -Wall -O3 -shared -fpic -Wl,-soname,libdv4l.so \
-D DV4LLIBNAME=/usr/local/lib/libdv4l.so \
-ldl -lraw1394 -liec61883 -ldv interdv4l.c \
normfile.c scale.c palettes.c util.c -o libdv4l.so
In file included from interdv4l.c:46:
/usr/include/sys/stat.h:504: error: conflicting types for ‘stat64’
/usr/include/sys/stat.h:230: note: previous declaration of ‘stat64’ was here
/usr/include/sys/stat.h:511: error: conflicting types for ‘lstat64’
/usr/include/sys/stat.h:278: note: previous declaration of ‘lstat64’ was here
/usr/include/sys/stat.h:518: error: conflicting types for ‘fstat64’
/usr/include/sys/stat.h:232: note: previous declaration of ‘fstat64’ was here
/usr/include/sys/stat.h:525: error: conflicting types for ‘fstatat64’
/usr/include/sys/stat.h:255: note: previous declaration of ‘fstatat64’ was here
interdv4l.c:134: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c: In function ‘common_lstat64’:
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c:134: error: dereferencing pointer to incomplete type
interdv4l.c: At top level:
interdv4l.c:136: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c: In function ‘common___xstat64’:
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c:136: error: dereferencing pointer to incomplete type
interdv4l.c: At top level:
interdv4l.c:138: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c: In function ‘common___lxstat64’:
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c:138: error: dereferencing pointer to incomplete type
interdv4l.c: At top level:
interdv4l.c:167: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:167: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:167: error: conflicting types for ‘__xstat64’
/usr/include/sys/stat.h:436: note: previous declaration of ‘__xstat64’ was here
interdv4l.c: In function ‘__xstat64’:
interdv4l.c:167: warning: passing argument 3 of ‘orig__xstat64’ from incompatible pointer type
interdv4l.c:167: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c:167: warning: passing argument 3 of ‘common___xstat64’ from incompatible pointer type
interdv4l.c:136: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c: At top level:
interdv4l.c:169: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:169: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:169: error: conflicting types for ‘__lxstat64’
/usr/include/sys/stat.h:438: note: previous declaration of ‘__lxstat64’ was here
interdv4l.c: In function ‘__lxstat64’:
interdv4l.c:169: warning: passing argument 3 of ‘orig__lxstat64’ from incompatible pointer type
interdv4l.c:169: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c:169: warning: passing argument 3 of ‘common___lxstat64’ from incompatible pointer type
interdv4l.c:138: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c: At top level:
interdv4l.c:198: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:198: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:198: error: conflicting types for ‘lstat64’
/usr/include/sys/stat.h:278: note: previous declaration of ‘lstat64’ was here
interdv4l.c: In function ‘lstat64’:
interdv4l.c:198: warning: passing argument 2 of ‘origlstat64’ from incompatible pointer type
interdv4l.c:198: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c:198: warning: passing argument 3 of ‘common_lstat64’ from incompatible pointer type
interdv4l.c:134: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c: At top level:
interdv4l.c:485: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:485: warning: ‘struct stat64’ declared inside parameter list
interdv4l.c:485: error: conflicting types for ‘__fxstat64’
/usr/include/sys/stat.h:434: note: previous declaration of ‘__fxstat64’ was here
interdv4l.c: In function ‘__fxstat64’:
interdv4l.c:485: warning: passing argument 3 of ‘orig__fxstat64’ from incompatible pointer type
interdv4l.c:485: note: expected ‘struct stat64 *’ but argument is of type ‘struct stat64 *’
interdv4l.c:485: error: dereferencing pointer to incomplete type
interdv4l.c:485: error: dereferencing pointer to incomplete type
interdv4l.c:485: error: dereferencing pointer to incomplete type
interdv4l.c: In function ‘ioctl’:
interdv4l.c:980: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result
normfile.c: In function ‘normalize’:
normfile.c:247: warning: ignoring return value of ‘getcwd’, declared with attribute warn_unused_result
make: *** [libdv4l.so] Error 1
My C++ isn't quite strong enough to work out what's wrong here. I'd really appreciate any help you could give me in getting this working.
My platform is Ubuntu 10.10 32-bit.
Thanks,
Paul.
Bookmarks