[Sumover-dev] [svn commit] r4415 - in vic/branches/mpeg4: video
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Mon Apr 13 06:00:45 BST 2009
Author: douglask
Date: Mon Apr 13 06:00:36 2009
New Revision: 4415
Modified:
vic/branches/mpeg4/Makefile.in
vic/branches/mpeg4/bsd-endian.h
vic/branches/mpeg4/configure.in
vic/branches/mpeg4/configure.in.tail
vic/branches/mpeg4/configure.in.tk
vic/branches/mpeg4/video/grabber-v4l2.cpp
vic/branches/mpeg4/video/grabber-video4linux.cpp
vic/branches/mpeg4/video/yuv_convert.cpp
Log:
cleanup of redundant code in configure.in.tail which should have been removed when tcl.m4 support was added.
Support for finding libuclmmbase header files and library in directories other than and including ../common/src, e.g. in include/common-mml (i.e NetBSD) and include/uclmmbase (FreeBSD, Debian and Ubuntu).
Initial handling support for handling V4L and V4L2 on non-Linux platforms.
Removed support for old V4L2 grabber based on early draft.
Updated bsd-endian.h.
Merged some patches from NetBSD and FreeBSD ports, while made some other patches redundant.
Modified: vic/branches/mpeg4/Makefile.in
==============================================================================
--- vic/branches/mpeg4/Makefile.in (original)
+++ vic/branches/mpeg4/Makefile.in Mon Apr 13 06:00:36 2009
@@ -48,10 +48,16 @@
C++ = @CXX@
CCOPT = @V_CCOPT@
+LDFLAGS= @LDFLAGS@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
INCLUDE_TK = @V_INCLUDE_TK@
INCLUDE_TCL = @V_INCLUDE_TCL@
INCLUDE_X11 = @V_INCLUDE_X11@
-INCLUDE_MISC = -I. -Icodec/tmndec -Icodec/tmn-x -Icodec/h263 -Irtp -Irender -Inet -Ivideo -Icodec -I../common/src @V_INCLUDE@
+INCLUDE_MISC = -I. -Icodec/tmndec -Icodec/tmn-x -Icodec/h263 -Irtp -Irender -Inet -Ivideo -Icodec @V_INCLUDE@
STATIC = @V_STATIC@
MKDEP = ./mkdep
@@ -85,7 +91,7 @@
CODEC_LIB = @V_CODEC_LIB@ codec/tmndec/libh263.a codec/tmn-x/libh263coder.a
LIB = $(LIB_GRABBER) @V_LIB_TK@ @V_LIB_TCL@ @V_LIB_X11@ @V_LIB@ $(CODEC_LIB) $(VIDEO_LIB) \
- ../common/src/libuclmmbase.a -lm -lz -lpthread @V_LIB_FFMPEG@ @V_LIB_X264@
+ -luclmmbase -lm -lz -lpthread @V_LIB_FFMPEG@ @V_LIB_X264@
INCLUDE = $(INCLUDE_MISC) $(INCLUDE_GRABBER) $(INCLUDE_TK) $(INCLUDE_TCL) \
@@ -341,15 +347,13 @@
$(CC) -o $@ $(CFLAGS) render/ppmtolut/ppmtolut.c -lm $(STATIC)
install: force
- cp vic @prefix@/bin/vic
- chown bin @prefix@/bin/vic
- chgrp bin @prefix@/bin/vic
- chmod 555 @prefix@/bin/vic
- cp vic.1 @prefix@/man/vic.1
- cp histtolut @prefix@/bin/histtolut
- chown bin @prefix@/bin/histtolut
- chgrp bin @prefix@/bin/histtolut
- chmod 555 @prefix@/bin/histtolut
+ test -d $(DESTDIR)@prefix@/bin || \
+ $(INSTALL) -d $(DESTDIR)@prefix@/bin
+ test -d $(DESTDIR)@prefix@/man || \
+ $(INSTALL) -d $(DESTDIR)@prefix@/man/man1
+ $(INSTALL_PROGRAM) vic $(DESTDIR)@prefix@/bin
+ $(INSTALL_PROGRAM) histtolut $(DESTDIR)@prefix@/bin
+ $(INSTALL_DATA) vic.1 $(DESTDIR)@prefix@/man/man1
clean:
rm -f *.o codec/jpeg/*.o codec/p64/*.o codec/h263/*.o \
@@ -360,6 +364,7 @@
vic vic.dyn vic.xil h261_play h261_dump jpeg_play cb_wish \
mkcube rgb-cube.ppm yuv-map.ppm cm0.c cm1.c ppmtolut \
config.cache config.log domake.* dotar.*
+ rm -rf autom4te.cache
cd codec/tmn && $(MAKE) clean
cd codec/tmndec && $(MAKE) realclean
rm -f codec/tmn-x/*.o codec/tmn-x/*.a
@@ -367,6 +372,7 @@
realclean:
$(MAKE) clean
rm -f config.log config.cache config.status
+ rm -rf autom4te.cache
tags: force
ctags -tdwC $(SRC) *.h $(TKSRC)/*.c $(TKSRC)/*.h \
Modified: vic/branches/mpeg4/bsd-endian.h
==============================================================================
--- vic/branches/mpeg4/bsd-endian.h (original)
+++ vic/branches/mpeg4/bsd-endian.h Mon Apr 13 06:00:36 2009
@@ -29,21 +29,26 @@
#include "config.h"
-#ifdef WIN32
-//#include <winsock.h>
+#if defined(_WIN32) || defined(_WIN64)
+#define LITTLE_ENDIAN 1234
+#define BIG_ENDIAN 4321
+#define BYTE_ORDER LITTLE_ENDIAN
#else
#include <sys/param.h>
#endif
+
#ifdef __linux__
#include <endian.h>
#endif
+
#ifndef IPPROTO_IP
#include <netinet/in.h>
#endif
+
#ifndef BYTE_ORDER
#define LITTLE_ENDIAN 1234
#define BIG_ENDIAN 4321
-#if defined(ultrix) || defined(__alpha) || defined(__i386__) || defined(__i486__) || defined(_X86_)
+#if defined(ultrix) || defined(__alpha__) || defined(__ia64__) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__x86_64__) || defined(__amd64__) || defined(_X86_)
#define BYTE_ORDER LITTLE_ENDIAN
#else
#define BYTE_ORDER BIG_ENDIAN
@@ -55,5 +60,6 @@
#else
#define SHIFT(n) (n)
#endif
+
#define EXTRACT(v, n) (((v) >> SHIFT(n)) & 0xff)
#define SPLICE(v, p, n) (v) |= (p) << SHIFT(n)
Modified: vic/branches/mpeg4/configure.in
==============================================================================
--- vic/branches/mpeg4/configure.in (original)
+++ vic/branches/mpeg4/configure.in Mon Apr 13 06:00:36 2009
@@ -3,6 +3,8 @@
AC_INIT(main.cpp)
+AC_PROG_INSTALL
+
V_PROG="vic"
V_ALL="$V_PROG"
V_SHM="-DUSE_SHM"
@@ -297,24 +299,57 @@
dnl lots of hairy special cases for detecting which frame capture
dnl support to compile in
-AC_ARG_ENABLE(v4l2old, --enable-v4l2old Enable or disable old Video4Linux2 grabber (default: disabled), v4l2old=yes, v4l2old=no)
-if test "$v4l2old" = "yes" ; then
- V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-v4l2-old.o"
- echo "Using old Linux grabber-v4l2"
-elif test -r /usr/include/linux/videodev.h ; then
- AC_CHECK_HEADER(libv4lconvert.h,
- [V_DEFINE="$V_DEFINE -DHAVE_LIBV4L"
- V_LIB_GRABBER="$V_LIB_GRABBER -lv4l1 -lv4l2"],
- [V_OBJ_GRABBER="$V_OBJ_GRABBER video/tinyjpeg.o video/jidctflt.o"])
- if test -r /usr/include/linux/videodev2.h ; then
- V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-v4l2.o video/grabber-video4linux.o video/yuv_convert.o"
- echo "Using Linux Grabbers: Video4Linux2 and Video4Linux1"
- else
- V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-video4linux.o video/yuv_convert.o"
- echo "Using Linux Grabber: Video4Linux1"
+AC_MSG_NOTICE([checking for V4L support])
+AC_CHECK_HEADER([linux/videodev.h], [ have_videodev_h=yes; ])
+if test x$have_videodev_h = xyes; then
+ AC_MSG_NOTICE([suitable V4L support found... using linux/videodev.h])
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-video4linux.o"
+ have_V4L=yes
+fi
+
+AC_MSG_NOTICE([checking for V4L2 support])
+AC_CHECK_HEADER([linux/videodev2.h], [ have_linux_videodev2_h=yes; ])
+AC_CHECK_HEADER([sys/videodev2.h], [ have_sys_videodev2_h=yes; ])
+AC_CHECK_HEADER([sys/videoio.h], [ have_sys_videoio_h=yes; ])
+
+if test x$have_linux_videodev2_h = xyes ; then
+ AC_MSG_NOTICE([suitable V4L2 support found... using linux/videodev2.h])
+ V_DEFINE="$V_DEFINE -DHAVE_LINUX_VIDEODEV2_H"
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-v4l2.o"
+ have_V4L2=yes
+
+elif test x$have_sys_videodev2_h = xyes; then
+ AC_MSG_NOTICE([suitable V4L2 support found... using sys/videodev2.h])
+ V_DEFINE="$V_DEFINE -DHAVE_SYS_VIDEODEV2_H"
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-v4l2.o"
+ have_V4L2=yes
+
+elif test x$have_sys_videodev2_h = xyes; then
+ AC_MSG_NOTICE([suitable V4L2 support found... using sys/videoio.h])
+ V_DEFINE="$V_DEFINE -DHAVE_SYS_VIDEOIO_H"
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/grabber-v4l2.o"
+ have_V4L2=yes
+
+fi
+
+if test x$have_V4L = xyes -o x$have_V4L2 = xyes; then
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/yuv_convert.o"
+fi
+
+AC_CHECK_HEADER([libv4lconvert.h], [ have_videodev_h=yes; ])
+if test x$have_videodev_h = xyes; then
+ V_DEFINE="$V_DEFINE -DHAVE_LIBV4L"
+ if test x$have_V4L = xyes; then
+ V_LIB_GRABBER="$V_LIB_GRABBER -lv4l1"
+ fi
+ if test x$have_V4L2 = xyes; then
+ V_LIB_GRABBER="$V_LIB_GRABBER -lv4l2"
fi
+else
+ V_OBJ_GRABBER="$V_OBJ_GRABBER video/tinyjpeg.o video/jidctflt.o"
fi
+
if test -r /usr/lib/libvl.so ; then
V_LIB_GRABBER="$V_LIB_GRABBER -lvl -ldmedia"
V_OBJ_GRABBER="video/grabber-vl.o video/output-vl.o $V_OBJ_GRABBER"
@@ -525,16 +560,15 @@
V_LIB="$V_LIB -lipc"
;;
*-*-netbsd*)
+ V_STATIC=""
V_TARCMD="tar -h -c -f"
- V_LIB="$V_LIB -L/usr/local/lib"
;;
*-*-freebsd*)
V_STATIC=""
+ V_DEFINE="$V_DEFINE -DSIGARGS=int -DFreeBSD"
if test $ipv6 = yes; then
- V_DEFINE="$V_DEFINE -DFreeBSD -DHAVE_IPV6"
+ V_DEFINE="$V_DEFINE -DHAVE_IPV6"
V_LIB="$V_LIB -L/usr/local/v6/lib"
- else
- V_DEFINE="$V_DEFINE -DFreeBSD"
fi
OPSYS=freebsd
;;
Modified: vic/branches/mpeg4/configure.in.tail
==============================================================================
--- vic/branches/mpeg4/configure.in.tail (original)
+++ vic/branches/mpeg4/configure.in.tail Mon Apr 13 06:00:36 2009
@@ -1,53 +1,36 @@
dnl standard final commands for vic/vat/etc. autoconf scripts
dnl $Header$ (LBL)
-# tcl7.5 needs a dynamic loading library (unless built with the
-# -disable-load flag). Try to find the appropriate one.
-
-if test ! -z "$V_NEED_DL" ; then
- V_LIB_DL=""
- case "$target" in
- *-*-solaris*)
- V_LIB_DL="dl"
- ;;
- sparc-sun-sunos*)
- V_LIB_DL="dl"
- ;;
- *-*-hpux*)
- V_LIB_DL="dld"
- ;;
- *-*-linux*)
- AC_CHECK_LIB(dl, dlopen, V_LIB_DL="dl", V_LIB_DL="dld")
- ;;
- *-*-aix4*)
- V_LIB_DL="ld"
- ;;
- esac
- if test ! -z "$V_LIB_DL" ; then
- AC_CHECK_LIB($V_LIB_DL, main, , V_LIB_DL="", $V_STATIC)
- fi
- if test ! -z "$V_LIB_DL" ; then
- V_LIB="$V_LIB -l$V_LIB_DL"
- else
- echo "no dynamic load lib"
- fi
-fi
-
-AC_SUBST(V_STATIC)
+# various include hacks
+dirs="../common/src \
+ /usr/include/uclmmbase \
+ /usr/include/common-mml \
+ /usr/local/include/uclmmbase \
+ /usr/local/include/common-mml"
-if test "$host_cpu" = alpha ; then
- V_DEFINE="$V_DEFINE -DINT_64=u_long"
+if test x$prefix != xNONE ; then
+ dirs="$prefix/include/common-mml $prefix/include/uclmmbase $dirs"
fi
-# various include hacks
-dirs="/usr/src/local/include-fixes \
- /import/mcast/include"
for dir in $dirs; do
if test -d $dir ; then
V_INCLUDE="$V_INCLUDE -I$dir"
fi
done
+# various linker hacks
+if test x$prefix != xNONE ; then
+ if test -d $prefix/lib64 ; then
+ LDFLAGS="-L$prefix/lib64 $LDFLAGS"
+ else
+ LDFLAGS="-L$prefix/lib $LDFLAGS"
+ fi
+else
+ if test -d ../common/src ; then
+ LDFLAGS="-L../common/src $LDFLAGS"
+ fi
+fi
+
# always use -g with gcc during development (even with -O)
#if test "$CC" = gcc && test -f .devel ; then
if test "$CC" = gcc ; then
@@ -56,7 +39,6 @@
V_DEFINE="$V_DEFINE -fsigned-char"
fi
-
V_TAR_TARGET=$target_os
AC_SUBST(V_TAR_TARGET)
@@ -68,6 +50,7 @@
AC_SUBST(V_DEFINE)
AC_SUBST(V_SIGRET)
AC_SUBST(V_SHELL)
+AC_SUBST(V_STATIC)
AC_SUBST(V_TARCMD)
AC_SUBST(V_INCLUDE)
AC_SUBST(V_OBJ)
@@ -79,4 +62,3 @@
if test -f .devel ; then
make depend
fi
-
Modified: vic/branches/mpeg4/configure.in.tk
==============================================================================
--- vic/branches/mpeg4/configure.in.tk (original)
+++ vic/branches/mpeg4/configure.in.tk Mon Apr 13 06:00:36 2009
@@ -11,7 +11,7 @@
V_DEFINE="$V_DEFINE -DMAC_OSX_TCL"
fi
-elif test "${TCL_VERSION}" == "8.0" ; then
+elif test "${TCL_VERSION}" = "8.0" ; then
if test -f "${TCL_SRC_DIR}/generic/tcl2c.c" ; then
AC_MSG_RESULT([UCL Tcl ${TCL_VERSION}${TCL_PATCH_LEVEL}])
else
@@ -27,7 +27,7 @@
SC_LOAD_TKCONFIG
AC_MSG_CHECKING([for a compatible version of Tk])
-if test "${TCL_VERSION}" == "${TK_VERSION}"; then
+if test "${TCL_VERSION}" = "${TK_VERSION}"; then
AC_MSG_RESULT([Tk ${TK_VERSION}${TK_PATCH_LEVEL}])
if test "$aquatk" = yes; then
Modified: vic/branches/mpeg4/video/grabber-v4l2.cpp
==============================================================================
--- vic/branches/mpeg4/video/grabber-v4l2.cpp (original)
+++ vic/branches/mpeg4/video/grabber-v4l2.cpp Mon Apr 13 06:00:36 2009
@@ -31,7 +31,6 @@
#include <string.h>
#include <signal.h>
#include <errno.h>
-#include <endian.h>
#include <sys/types.h>
#include <sys/fcntl.h>
@@ -45,8 +44,13 @@
extern "C"
{
-#include <asm/types.h>
+#if defined(HAVE_SYS_VIDEOIO_H)
+#include <sys/videoio.h>
+#elif defined(DHAVE_SYS_VIDEODEV2_H)
+#include <sys/videodev2.h]>
+#else
#include <linux/videodev2.h>
+#endif
}
#ifdef HAVE_LIBV4L
Modified: vic/branches/mpeg4/video/grabber-video4linux.cpp
==============================================================================
--- vic/branches/mpeg4/video/grabber-video4linux.cpp (original)
+++ vic/branches/mpeg4/video/grabber-video4linux.cpp Mon Apr 13 06:00:36 2009
@@ -23,7 +23,7 @@
#include <string.h>
#include <signal.h>
#include <errno.h>
-#include <endian.h>
+#include "bsd-endian.h"
#include <sys/types.h>
#include <sys/fcntl.h>
@@ -48,11 +48,9 @@
extern "C"
{
-#include <asm/types.h>
-//#include <linux/videodev.h>
+#include <linux/videodev.h>
}
-#include "videodev.h"
#include "grabber.h"
#include "vic_tcl.h"
#include "device-input.h"
@@ -208,8 +206,7 @@
struct video_capability capability;
struct video_channel channel;
struct video_picture pict;
- unsigned int j;
- int i, fd;
+ int i, j, fd;
char *nick, *attr;
// AGTk 3.02 and earlier use VIC_DEVICE env variable to select device
@@ -309,7 +306,7 @@
V4lGrabber::V4lGrabber(const char *cformat, const char *dev)
{
- unsigned int i = 0;
+ int i = 0;
struct video_mmap vid_mmap;
have_mmap = 0;
@@ -430,7 +427,7 @@
int V4lGrabber::command(int argc, const char *const *argv)
{
- unsigned int i;
+ int i;
//struct video_channel channel;
//static const char *norms[] = {"pal", "ntsc", "secam", "auto"};
Modified: vic/branches/mpeg4/video/yuv_convert.cpp
==============================================================================
--- vic/branches/mpeg4/video/yuv_convert.cpp (original)
+++ vic/branches/mpeg4/video/yuv_convert.cpp Mon Apr 13 06:00:36 2009
@@ -41,12 +41,7 @@
#include <string.h>
#include <stdio.h>
-#if defined(_WIN32) || defined(_WIN64)
-#define BYTE_ORDER 1
-#define BIG_ENDIAN 0
-#else
-#include <endian.h>
-#endif
+#include "bsd-endian.h"
//
// planarYUYV422_to_planarYUYV422
More information about the Sumover-dev
mailing list