Updated to allow the versions of video4linux to existed independently of each other. Ubuntu 11.04 oalyn has V4L2.
git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@3302 e3e1d417-86f3-4887-817a-d78f3d33393f
This commit is contained in:
parent
beffdab035
commit
8048c1c355
|
@ -216,6 +216,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -223,7 +226,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -134,11 +134,11 @@
|
|||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if you have the <linux/videodev2.h> header file. */
|
||||
#undef HAVE_LINUX_VIDEODEV2_H
|
||||
/* Define to 1 if you have the <linux/videodevX2.h> header file. */
|
||||
#undef HAVE_LINUX_VIDEODEVX2_H
|
||||
|
||||
/* Define to 1 if you have the <linux/videodev.h> header file. */
|
||||
#undef HAVE_LINUX_VIDEODEV_H
|
||||
/* Define to 1 if you have the <linux/videodevX.h> header file. */
|
||||
#undef HAVE_LINUX_VIDEODEVX_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
|
|
|
@ -607,7 +607,9 @@ LIBDIR
|
|||
BINDIR
|
||||
PERL
|
||||
ZM_PCRE
|
||||
ZM_V4L2
|
||||
ZM_HAS_V4L
|
||||
ZM_HAS_V4L2
|
||||
ZM_HAS_V4L1
|
||||
ALLOCA
|
||||
PATH_NETPBM
|
||||
OPT_NETPBM
|
||||
|
@ -3210,7 +3212,7 @@ $as_echo "$as_me: WARNING: You can call configure with the --enable-mmap=<yes|no
|
|||
|
||||
fi
|
||||
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
|
||||
$as_echo "#define ZM_MEM_MAPPED 1" >>confdefs.h
|
||||
|
||||
|
@ -6413,7 +6415,7 @@ $as_echo "no" >&6; }
|
|||
fi
|
||||
|
||||
|
||||
if test "$OPT_NETPBM" = "yes"; then
|
||||
if test "$OPT_NETPBM" == "yes"; then
|
||||
PATH_NETPBM=`dirname $PATH_NETPBM`
|
||||
fi
|
||||
|
||||
|
@ -7562,9 +7564,11 @@ if test "x$ac_cv_header_linux_videodev_h" = x""yes; then :
|
|||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LINUX_VIDEODEV_H 1
|
||||
_ACEOF
|
||||
ZM_HAS_V4L1=1
|
||||
|
||||
else
|
||||
as_fn_error "zm requires Video4Linux to be installed" "$LINENO" 5
|
||||
ZM_HAS_V4L1=0
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
@ -7576,15 +7580,24 @@ if test "x$ac_cv_header_linux_videodev2_h" = x""yes; then :
|
|||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LINUX_VIDEODEV2_H 1
|
||||
_ACEOF
|
||||
ZM_V4L2="1"
|
||||
ZM_HAS_V4L2=1
|
||||
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zm requires Video4Linux2 to be installed for V4L2 support" >&5
|
||||
$as_echo "$as_me: WARNING: zm requires Video4Linux2 to be installed for V4L2 support" >&2;}
|
||||
ZM_HAS_V4L2=0
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if test "$ZM_HAS_V4L1" == "1" || test "$ZM_HAS_V4L2" == "1"; then
|
||||
ZM_HAS_V4L=1
|
||||
|
||||
else
|
||||
ZM_HAS_V4L=0
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zm requires Video4Linux or Video4Linux2 to be installed for analog or USB camera support" >&5
|
||||
$as_echo "$as_me: WARNING: zm requires Video4Linux or Video4Linux2 to be installed for analog or USB camera support" >&2;}
|
||||
fi
|
||||
for ac_header in jpeglib.h
|
||||
do :
|
||||
ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
|
||||
|
@ -7735,7 +7748,7 @@ fi
|
|||
|
||||
done
|
||||
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
for ac_header in sys/mman.h
|
||||
do :
|
||||
ac_fn_cxx_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
|
||||
|
@ -8507,7 +8520,7 @@ else
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find perl" >&5
|
||||
$as_echo "$as_me: WARNING: could not find perl" >&2;}
|
||||
fi
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
ac_perl_modules="Sys::Mmap"
|
||||
# Make sure we have perl
|
||||
if test -z "$PERL"; then
|
||||
|
|
18
configure.ac
18
configure.ac
|
@ -203,7 +203,7 @@ AC_ARG_ENABLE(mmap,
|
|||
filesystem however this will not normally be the case.
|
||||
e.g. --enable-mmap=yes or --disable-mmap])
|
||||
)
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
AC_DEFINE(ZM_MEM_MAPPED,1,"Whether to use mapped rather than shared memory")
|
||||
else
|
||||
AC_DEFINE(ZM_MEM_MAPPED,0,"Whether to use mapped rather than shared memory")
|
||||
|
@ -253,7 +253,7 @@ AC_CHECK_PROG(OPT_FFMPEG,ffmpeg,yes,no)
|
|||
AC_PATH_PROG(PATH_FFMPEG,ffmpeg)
|
||||
AC_CHECK_PROG(OPT_NETPBM,pnmscale,yes,no)
|
||||
AC_PATH_PROG(PATH_NETPBM,pnmscale)
|
||||
if test "$OPT_NETPBM" = "yes"; then
|
||||
if test "$OPT_NETPBM" == "yes"; then
|
||||
PATH_NETPBM=`dirname $PATH_NETPBM`
|
||||
fi
|
||||
|
||||
|
@ -285,8 +285,14 @@ AC_CHECK_LIB(z,compress,,)
|
|||
AC_FUNC_ALLOCA
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([fcntl.h limits.h memory.h netdb.h netinet/in.h stddef.h stdlib.h string.h strings.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h values.h])
|
||||
AC_CHECK_HEADERS(linux/videodev.h,,AC_MSG_ERROR(zm requires Video4Linux to be installed),)
|
||||
AC_CHECK_HEADERS(linux/videodev2.h,AC_SUBST(ZM_V4L2,"1"),AC_MSG_WARN(zm requires Video4Linux2 to be installed for V4L2 support),)
|
||||
AC_CHECK_HEADERS(linux/videodev.h,AC_SUBST(ZM_HAS_V4L1,1),AC_SUBST(ZM_HAS_V4L1,0),)
|
||||
AC_CHECK_HEADERS(linux/videodev2.h,AC_SUBST(ZM_HAS_V4L2,1),AC_SUBST(ZM_HAS_V4L2,0),)
|
||||
if test "$ZM_HAS_V4L1" == "1" || test "$ZM_HAS_V4L2" == "1"; then
|
||||
AC_SUBST(ZM_HAS_V4L,1)
|
||||
else
|
||||
AC_SUBST(ZM_HAS_V4L,0)
|
||||
AC_MSG_WARN(zm requires Video4Linux or Video4Linux2 to be installed for analog or USB camera support)
|
||||
fi
|
||||
AC_CHECK_HEADERS(jpeglib.h,,AC_MSG_ERROR(zm requires libjpeg headers to be installed),)
|
||||
AC_CHECK_HEADERS(mysql/mysql.h,,AC_MSG_ERROR(zm requires MySQL headers - check that MySQL development packages are installed),)
|
||||
AC_CHECK_HEADERS(libavutil/avutil.h,,,)
|
||||
|
@ -299,7 +305,7 @@ AC_CHECK_HEADERS(libswscale/swscale.h,,,)
|
|||
AC_CHECK_HEADERS(ffmpeg/swscale.h,,,)
|
||||
AC_CHECK_HEADERS(pcre/pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
|
||||
AC_CHECK_HEADERS(pcre.h,AC_SUBST(ZM_PCRE,"1"),,)
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
AC_CHECK_HEADERS(sys/mman.h,,,)
|
||||
AC_CHECK_HEADERS(fcntl.h,,,)
|
||||
else
|
||||
|
@ -331,7 +337,7 @@ AC_PROG_PERL_MODULES(Time::HiRes,,AC_MSG_ERROR(zm requires Time::HiRes))
|
|||
AC_PROG_PERL_MODULES(Date::Manip,,AC_MSG_ERROR(zm requires Date::Manip))
|
||||
AC_PROG_PERL_MODULES(LWP::UserAgent,,AC_MSG_ERROR(zm requires LWP::UserAgent))
|
||||
AC_PROG_PERL_MODULES(PHP::Serialization,,AC_MSG_ERROR(zm requires PHP::Serialization))
|
||||
if test "$ENABLE_MMAP" = "yes"; then
|
||||
if test "$ENABLE_MMAP" == "yes"; then
|
||||
AC_PROG_PERL_MODULES(Sys::Mmap,,AC_MSG_ERROR(zm requires Sys::Mmap for mapped memory))
|
||||
fi
|
||||
|
||||
|
|
|
@ -128,6 +128,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -135,7 +138,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -202,6 +202,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -209,7 +212,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
#define ZM_CONFIG "@ZM_CONFIG@" // Path to config file
|
||||
#define ZM_VERSION "@VERSION@" // ZoneMinder Version
|
||||
|
||||
#define ZM_HAS_V4L1 @ZM_HAS_V4L1@
|
||||
#define ZM_HAS_V4L2 @ZM_HAS_V4L2@
|
||||
#define ZM_HAS_V4L @ZM_HAS_V4L@
|
||||
|
||||
#ifdef HAVE_LIBAVFORMAT
|
||||
#define ZM_HAS_FFMPEG 1
|
||||
#endif // HAVE_LIBAVFORMAT
|
||||
|
||||
#define ZM_MAX_IMAGE_WIDTH 2048 // The largest image we imagine ever handling
|
||||
#define ZM_MAX_IMAGE_HEIGHT 1536 // The largest image we imagine ever handling
|
||||
#define ZM_MAX_IMAGE_COLOURS 3 // The largest image we imagine ever handling
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
|
||||
#include "zm.h"
|
||||
|
||||
#if ZM_HAS_V4L
|
||||
|
||||
#include "zm_local_camera.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -40,7 +44,7 @@ static int vidioctl( int fd, int request, void *arg )
|
|||
static PixelFormat getFfPixFormatFromV4lPalette( int v4l_version, int palette )
|
||||
{
|
||||
PixelFormat pixFormat = PIX_FMT_NONE;
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
switch( palette )
|
||||
|
@ -165,8 +169,8 @@ static PixelFormat getFfPixFormatFromV4lPalette( int v4l_version, int palette )
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
switch( palette )
|
||||
|
@ -231,6 +235,7 @@ static PixelFormat getFfPixFormatFromV4lPalette( int v4l_version, int palette )
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
return( pixFormat );
|
||||
}
|
||||
#endif // HAVE_LIBSWSCALE
|
||||
|
@ -243,10 +248,12 @@ int LocalCamera::standards[VIDEO_MAX_FRAME];
|
|||
int LocalCamera::vid_fd = -1;
|
||||
|
||||
int LocalCamera::v4l_version = 0;
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
LocalCamera::V4L2Data LocalCamera::v4l2_data;
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
LocalCamera::V4L1Data LocalCamera::v4l1_data;
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
#if HAVE_LIBSWSCALE
|
||||
AVFrame **LocalCamera::capturePictures = 0;
|
||||
|
@ -262,11 +269,11 @@ short *LocalCamera::b_u_table;
|
|||
LocalCamera *LocalCamera::last_camera = NULL;
|
||||
|
||||
LocalCamera::LocalCamera( int p_id, const std::string &p_device, int p_channel, int p_standard, const std::string &p_method, int p_width, int p_height, int p_palette, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture ) :
|
||||
#ifdef ZM_V4L2
|
||||
Camera( p_id, LOCAL_SRC, p_width, p_height, ((p_palette==VIDEO_PALETTE_GREY||p_palette==V4L2_PIX_FMT_GREY)?1:3), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
||||
#else // ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
Camera( p_id, LOCAL_SRC, p_width, p_height, (p_palette==V4L2_PIX_FMT_GREY?1:3), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
||||
#elif ZM_HAS_V4L1
|
||||
Camera( p_id, LOCAL_SRC, p_width, p_height, (p_palette==VIDEO_PALETTE_GREY?1:3), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
device( p_device ),
|
||||
channel( p_channel ),
|
||||
standard( p_standard ),
|
||||
|
@ -282,9 +289,7 @@ LocalCamera::LocalCamera( int p_id, const std::string &p_device, int p_channel,
|
|||
if ( device_prime )
|
||||
{
|
||||
v4l_version = (p_method=="v4l2"?2:1);
|
||||
#ifdef ZM_V4L2
|
||||
Debug( 2, "V4L2 support enabled, using V4L%d api", v4l_version );
|
||||
#endif // ZM_V4L2
|
||||
Debug( 2, "V4L support enabled, using V4L%d api", v4l_version );
|
||||
}
|
||||
|
||||
if ( !last_camera || channel != last_camera->channel )
|
||||
|
@ -351,7 +356,7 @@ void LocalCamera::Initialise()
|
|||
if ( (vid_fd = open( device.c_str(), O_RDWR, 0 )) < 0 )
|
||||
Fatal( "Failed to open video device %s: %s", device.c_str(), strerror(errno) );
|
||||
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
Debug( 2, "V4L2 support enabled, using V4L%d api", v4l_version );
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
|
@ -523,8 +528,8 @@ void LocalCamera::Initialise()
|
|||
Hue(hue);
|
||||
Colour(colour);
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
Debug( 3, "Configuring picture attributes" );
|
||||
|
@ -686,6 +691,7 @@ void LocalCamera::Initialise()
|
|||
Debug( 4, "New Cl:%d", vid_pic.colour );
|
||||
Debug( 4, "New Cn:%d", vid_pic.contrast );
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
Debug( 3, "Setting up static colour tables" );
|
||||
|
||||
|
@ -728,7 +734,7 @@ void LocalCamera::Initialise()
|
|||
|
||||
void LocalCamera::Terminate()
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
Debug( 3, "Terminating video stream" );
|
||||
|
@ -743,7 +749,8 @@ void LocalCamera::Terminate()
|
|||
Error( "Failed to munmap buffer %d: %s", i, strerror(errno) );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
Debug( 3, "Unmapping video buffers" );
|
||||
|
@ -752,6 +759,7 @@ void LocalCamera::Terminate()
|
|||
|
||||
delete[] v4l1_data.buffers;
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
close( vid_fd );
|
||||
}
|
||||
|
@ -792,7 +800,7 @@ bool LocalCamera::GetCurrentSettings( const char *device, char *output, int vers
|
|||
else
|
||||
sprintf( output+strlen(output), "d:%s|", queryDevice );
|
||||
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( version == 2 )
|
||||
{
|
||||
struct v4l2_capability vid_cap;
|
||||
|
@ -1066,8 +1074,9 @@ bool LocalCamera::GetCurrentSettings( const char *device, char *output, int vers
|
|||
if ( !verbose )
|
||||
output[strlen(output)-1] = '\n';
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( version == 1 )
|
||||
{
|
||||
struct video_capability vid_cap;
|
||||
if ( ioctl( vid_fd, VIDIOCGCAP, &vid_cap ) < 0 )
|
||||
|
@ -1240,6 +1249,7 @@ bool LocalCamera::GetCurrentSettings( const char *device, char *output, int vers
|
|||
if ( !verbose )
|
||||
output[strlen(output)-1] = '\n';
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
close( vid_fd );
|
||||
if ( device )
|
||||
break;
|
||||
|
@ -1250,7 +1260,7 @@ bool LocalCamera::GetCurrentSettings( const char *device, char *output, int vers
|
|||
|
||||
int LocalCamera::Brightness( int p_brightness )
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
struct v4l2_control vid_control;
|
||||
|
@ -1283,8 +1293,8 @@ int LocalCamera::Brightness( int p_brightness )
|
|||
}
|
||||
return( vid_control.value );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
struct video_picture vid_pic;
|
||||
|
@ -1305,12 +1315,13 @@ int LocalCamera::Brightness( int p_brightness )
|
|||
}
|
||||
return( vid_pic.brightness );
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
int LocalCamera::Hue( int p_hue )
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
struct v4l2_control vid_control;
|
||||
|
@ -1340,8 +1351,8 @@ int LocalCamera::Hue( int p_hue )
|
|||
}
|
||||
return( vid_control.value );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
struct video_picture vid_pic;
|
||||
|
@ -1362,12 +1373,13 @@ int LocalCamera::Hue( int p_hue )
|
|||
}
|
||||
return( vid_pic.hue );
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
int LocalCamera::Colour( int p_colour )
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
struct v4l2_control vid_control;
|
||||
|
@ -1397,8 +1409,8 @@ int LocalCamera::Colour( int p_colour )
|
|||
}
|
||||
return( vid_control.value );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
struct video_picture vid_pic;
|
||||
|
@ -1419,12 +1431,13 @@ int LocalCamera::Colour( int p_colour )
|
|||
}
|
||||
return( vid_pic.colour );
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
int LocalCamera::Contrast( int p_contrast )
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
struct v4l2_control vid_control;
|
||||
|
@ -1454,8 +1467,8 @@ int LocalCamera::Contrast( int p_contrast )
|
|||
}
|
||||
return( vid_control.value );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
struct video_picture vid_pic;
|
||||
|
@ -1476,6 +1489,7 @@ int LocalCamera::Contrast( int p_contrast )
|
|||
}
|
||||
return( vid_pic.contrast );
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
|
@ -1484,7 +1498,7 @@ int LocalCamera::PrimeCapture()
|
|||
Initialise();
|
||||
|
||||
Debug( 2, "Priming capture" );
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
Debug( 3, "Queueing buffers" );
|
||||
|
@ -1509,8 +1523,8 @@ int LocalCamera::PrimeCapture()
|
|||
if ( vidioctl( vid_fd, VIDIOC_STREAMON, &type ) < 0 )
|
||||
Fatal( "Failed to start capture stream: %s", strerror(errno) );
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
for ( int frame = 0; frame < v4l1_data.frames.frames; frame++ )
|
||||
|
@ -1523,6 +1537,7 @@ int LocalCamera::PrimeCapture()
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
return( 0 );
|
||||
}
|
||||
|
@ -1549,7 +1564,7 @@ int LocalCamera::Capture( Image &image )
|
|||
if ( channel_prime )
|
||||
{
|
||||
int capture_frame = -1;
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
static struct v4l2_buffer vid_buf;
|
||||
|
@ -1591,8 +1606,8 @@ int LocalCamera::Capture( Image &image )
|
|||
captureWidth = v4l2_data.fmt.fmt.pix.width;
|
||||
captureHeight = v4l2_data.fmt.fmt.pix.height;
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
Debug( 3, "Capturing %d frames", captures_per_frame );
|
||||
|
@ -1620,6 +1635,7 @@ int LocalCamera::Capture( Image &image )
|
|||
|
||||
buffer = v4l1_data.bufptr+v4l1_data.frames.offsets[capture_frame];
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if HAVE_LIBSWSCALE
|
||||
Debug( 3, "Doing format conversion" );
|
||||
|
||||
|
@ -1650,10 +1666,12 @@ int LocalCamera::Capture( Image &image )
|
|||
static unsigned char temp_buffer[ZM_MAX_IMAGE_SIZE];
|
||||
switch( palette )
|
||||
{
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_YUV420P :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_YUV420 :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
static unsigned char y_plane[ZM_MAX_IMAGE_DIM];
|
||||
static char u_plane[ZM_MAX_IMAGE_DIM];
|
||||
|
@ -1725,10 +1743,12 @@ int LocalCamera::Capture( Image &image )
|
|||
buffer = temp_buffer;
|
||||
break;
|
||||
}
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_YUV422P :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_YUV422P :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
static unsigned char y_plane[ZM_MAX_IMAGE_DIM];
|
||||
static char u_plane[ZM_MAX_IMAGE_DIM];
|
||||
|
@ -1785,11 +1805,13 @@ int LocalCamera::Capture( Image &image )
|
|||
buffer = temp_buffer;
|
||||
break;
|
||||
}
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_YUYV :
|
||||
case VIDEO_PALETTE_YUV422 :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_YUYV :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
int size = width*height*2;
|
||||
unsigned char *s_ptr = buffer;
|
||||
|
@ -1823,10 +1845,12 @@ int LocalCamera::Capture( Image &image )
|
|||
buffer = temp_buffer;
|
||||
break;
|
||||
}
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_RGB555 :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_RGB555 :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
int size = width*height*2;
|
||||
unsigned char r,g,b;
|
||||
|
@ -1846,10 +1870,12 @@ int LocalCamera::Capture( Image &image )
|
|||
buffer = temp_buffer;
|
||||
break;
|
||||
}
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_RGB565 :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_RGB565 :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
int size = width*height*2;
|
||||
unsigned char r,g,b;
|
||||
|
@ -1887,7 +1913,7 @@ int LocalCamera::Capture( Image &image )
|
|||
}
|
||||
break;
|
||||
}
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_BGR24 :
|
||||
{
|
||||
int size = width*height*3;
|
||||
|
@ -1903,11 +1929,13 @@ int LocalCamera::Capture( Image &image )
|
|||
buffer = temp_buffer;
|
||||
break;
|
||||
}
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
case VIDEO_PALETTE_GREY :
|
||||
#ifdef ZM_V4L2
|
||||
#endif // ZM_HAS_V4L1
|
||||
#if ZM_HAS_V4L2
|
||||
case V4L2_PIX_FMT_GREY :
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
{
|
||||
//int size = width*height;
|
||||
//for ( int i = 0; i < size; i++ )
|
||||
|
@ -1938,7 +1966,7 @@ int LocalCamera::PostCapture()
|
|||
// Requeue the buffer unless we need to switch or are a duplicate camera on a channel
|
||||
if ( channel_count == 1 || channel_prime )
|
||||
{
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
if ( v4l_version == 2 )
|
||||
{
|
||||
if ( channel_count > 1 )
|
||||
|
@ -1965,8 +1993,8 @@ int LocalCamera::PostCapture()
|
|||
return( -1 );
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
if ( v4l_version == 1 )
|
||||
{
|
||||
if ( channel_count > 1 )
|
||||
|
@ -2000,7 +2028,9 @@ int LocalCamera::PostCapture()
|
|||
}
|
||||
v4l1_data.active_frame = (v4l1_data.active_frame+1)%v4l1_data.frames.frames;
|
||||
}
|
||||
#endif // ZM_HAS_V4L1
|
||||
}
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
#endif // ZM_HAS_V4L
|
||||
|
|
|
@ -23,15 +23,16 @@
|
|||
#include "zm.h"
|
||||
#include "zm_camera.h"
|
||||
|
||||
#include "zm_ffmpeg.h"
|
||||
#if ZM_HAS_V4L
|
||||
|
||||
#ifdef HAVE_LINUX_VIDEODEV2_H
|
||||
#include <linux/videodev2.h>
|
||||
#define ZM_V4L2
|
||||
#endif // HAVE_LINUX_VIDEODEV2_H
|
||||
#ifdef HAVE_LINUX_VIDEODEV_H
|
||||
#include <linux/videodev.h>
|
||||
#endif // HAVE_LINUX_VIDEODEV_H
|
||||
#ifdef HAVE_LINUX_VIDEODEV2_H
|
||||
#include <linux/videodev2.h>
|
||||
#endif // HAVE_LINUX_VIDEODEV2_H
|
||||
|
||||
#include "zm_ffmpeg.h"
|
||||
|
||||
//
|
||||
// Class representing 'local' cameras, i.e. those which are
|
||||
|
@ -41,7 +42,7 @@
|
|||
class LocalCamera : public Camera
|
||||
{
|
||||
protected:
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
struct V4L2MappedBuffer
|
||||
{
|
||||
void *start;
|
||||
|
@ -57,8 +58,9 @@ protected:
|
|||
V4L2MappedBuffer *buffers;
|
||||
v4l2_buffer *bufptr;
|
||||
};
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
|
||||
#if ZM_HAS_V4L1
|
||||
struct V4L1Data
|
||||
{
|
||||
int active_frame;
|
||||
|
@ -66,6 +68,7 @@ protected:
|
|||
video_mmap *buffers;
|
||||
unsigned char *bufptr;
|
||||
};
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
protected:
|
||||
std::string device;
|
||||
|
@ -87,10 +90,12 @@ protected:
|
|||
|
||||
static int v4l_version;
|
||||
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L2
|
||||
static V4L2Data v4l2_data;
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2
|
||||
#if ZM_HAS_V4L1
|
||||
static V4L1Data v4l1_data;
|
||||
#endif // ZM_HAS_V4L1
|
||||
|
||||
#if HAVE_LIBSWSCALE
|
||||
PixelFormat imagePixFormat;
|
||||
|
@ -133,4 +138,6 @@ public:
|
|||
static bool GetCurrentSettings( const char *device, char *output, int version, bool verbose );
|
||||
};
|
||||
|
||||
#endif // ZM_HAS_V4L
|
||||
|
||||
#endif // ZM_LOCAL_CAMERA_H
|
||||
|
|
|
@ -28,7 +28,9 @@
|
|||
#include "zm_mpeg.h"
|
||||
#include "zm_signal.h"
|
||||
#include "zm_monitor.h"
|
||||
#if ZM_HAS_V4L
|
||||
#include "zm_local_camera.h"
|
||||
#endif // ZM_HAS_V4L
|
||||
#include "zm_remote_camera.h"
|
||||
#include "zm_remote_camera_http.h"
|
||||
#if HAVE_LIBAVFORMAT
|
||||
|
@ -1725,6 +1727,7 @@ void Monitor::ReloadLinkedMonitors( const char *p_linked_monitors )
|
|||
}
|
||||
}
|
||||
|
||||
#if ZM_HAS_V4L
|
||||
int Monitor::LoadLocalMonitors( const char *device, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||
|
@ -1863,6 +1866,7 @@ int Monitor::LoadLocalMonitors( const char *device, Monitor **&monitors, Purpose
|
|||
|
||||
return( n_monitors );
|
||||
}
|
||||
#endif // ZM_HAS_V4L
|
||||
|
||||
int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const char *port, const char *path, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
|
@ -2362,6 +2366,7 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
|||
Camera *camera = 0;
|
||||
if ( type == "Local" )
|
||||
{
|
||||
#if ZM_HAS_V4L
|
||||
camera = new LocalCamera(
|
||||
id,
|
||||
device.c_str(),
|
||||
|
@ -2377,6 +2382,9 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
|||
colour,
|
||||
purpose==CAPTURE
|
||||
);
|
||||
#else // ZM_HAS_V4L
|
||||
Fatal( "You must have video4linux libraries and headers installed to use local analog or USB cameras for monitor %d", id );
|
||||
#endif // ZM_HAS_V4L
|
||||
}
|
||||
else if ( type == "Remote" )
|
||||
{
|
||||
|
@ -2440,9 +2448,9 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
|||
purpose==CAPTURE
|
||||
);
|
||||
}
|
||||
#if HAVE_LIBAVFORMAT
|
||||
else if ( type == "Ffmpeg" )
|
||||
{
|
||||
#if HAVE_LIBAVFORMAT
|
||||
camera = new FfmpegCamera(
|
||||
id,
|
||||
path.c_str(),
|
||||
|
@ -2455,8 +2463,10 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
|||
colour,
|
||||
purpose==CAPTURE
|
||||
);
|
||||
}
|
||||
#else // HAVE_LIBAVFORMAT
|
||||
Fatal( "You must have ffmpeg libraries installed to use ffmpeg cameras for monitor %d", id );
|
||||
#endif // HAVE_LIBAVFORMAT
|
||||
}
|
||||
else
|
||||
{
|
||||
Fatal( "Bogus monitor type '%s' for monitor %d", type.c_str(), id );
|
||||
|
@ -2843,13 +2853,16 @@ bool Monitor::DumpSettings( char *output, bool verbose )
|
|||
sprintf( output+strlen(output), "Id : %d\n", id );
|
||||
sprintf( output+strlen(output), "Name : %s\n", name );
|
||||
sprintf( output+strlen(output), "Type : %s\n", camera->IsLocal()?"Local":(camera->IsRemote()?"Remote":"File") );
|
||||
#if ZM_HAS_V4L
|
||||
if ( camera->IsLocal() )
|
||||
{
|
||||
sprintf( output+strlen(output), "Device : %s\n", ((LocalCamera *)camera)->Device().c_str() );
|
||||
sprintf( output+strlen(output), "Channel : %d\n", ((LocalCamera *)camera)->Channel() );
|
||||
sprintf( output+strlen(output), "Standard : %d\n", ((LocalCamera *)camera)->Standard() );
|
||||
}
|
||||
else if ( camera->IsRemote() )
|
||||
else
|
||||
#endif // ZM_HAS_V4L
|
||||
if ( camera->IsRemote() )
|
||||
{
|
||||
sprintf( output+strlen(output), "Protocol : %s\n", ((RemoteCamera *)camera)->Protocol().c_str() );
|
||||
sprintf( output+strlen(output), "Host : %s\n", ((RemoteCamera *)camera)->Host().c_str() );
|
||||
|
@ -2868,10 +2881,12 @@ bool Monitor::DumpSettings( char *output, bool verbose )
|
|||
#endif // HAVE_LIBAVFORMAT
|
||||
sprintf( output+strlen(output), "Width : %d\n", camera->Width() );
|
||||
sprintf( output+strlen(output), "Height : %d\n", camera->Height() );
|
||||
#if ZM_HAS_V4L
|
||||
if ( camera->IsLocal() )
|
||||
{
|
||||
sprintf( output+strlen(output), "Palette : %d\n", ((LocalCamera *)camera)->Palette() );
|
||||
}
|
||||
#endif // ZM_HAS_V4L
|
||||
sprintf( output+strlen(output), "Colours : %d\n", camera->Colours() );
|
||||
sprintf( output+strlen(output), "Event Prefix : %s\n", event_prefix );
|
||||
sprintf( output+strlen(output), "Label Format : %s\n", label_format );
|
||||
|
|
|
@ -355,7 +355,9 @@ public:
|
|||
bool DumpSettings( char *output, bool verbose );
|
||||
void DumpZoneImage( const char *zone_string=0 );
|
||||
|
||||
#if ZM_HAS_V4L
|
||||
static int LoadLocalMonitors( const char *device, Monitor **&monitors, Purpose purpose );
|
||||
#endif // ZM_HAS_V4L
|
||||
static int LoadRemoteMonitors( const char *protocol, const char *host, const char*port, const char*path, Monitor **&monitors, Purpose purpose );
|
||||
static int LoadFileMonitors( const char *file, Monitor **&monitors, Purpose purpose );
|
||||
#if HAVE_LIBAVFORMAT
|
||||
|
|
|
@ -154,11 +154,14 @@ int main( int argc, char *argv[] )
|
|||
|
||||
Monitor **monitors = 0;
|
||||
int n_monitors = 0;
|
||||
#if ZM_HAS_V4L
|
||||
if ( device[0] )
|
||||
{
|
||||
n_monitors = Monitor::LoadLocalMonitors( device, monitors, Monitor::CAPTURE );
|
||||
}
|
||||
else if ( host[0] )
|
||||
else
|
||||
#endif // ZM_HAS_V4L
|
||||
if ( host[0] )
|
||||
{
|
||||
if ( !port )
|
||||
port = "80";
|
||||
|
|
15
src/zmu.cpp
15
src/zmu.cpp
|
@ -190,11 +190,13 @@ int main( int argc, char *argv[] )
|
|||
char *username = 0;
|
||||
char *password = 0;
|
||||
char *auth = 0;
|
||||
#ifdef ZM_V4L2
|
||||
#if ZM_HAS_V4L
|
||||
#if ZM_HAS_V4L2
|
||||
int v4lVersion = 2;
|
||||
#else // ZM_V4L2
|
||||
#elif ZM_HAS_V4L1
|
||||
int v4lVersion = 1;
|
||||
#endif // ZM_V4L2
|
||||
#endif // ZM_HAS_V4L2/1
|
||||
#endif // ZM_HAS_V4L
|
||||
while (1)
|
||||
{
|
||||
int option_index = 0;
|
||||
|
@ -306,9 +308,11 @@ int main( int argc, char *argv[] )
|
|||
case 'A':
|
||||
auth = optarg;
|
||||
break;
|
||||
#if ZM_HAS_V4L
|
||||
case 'V':
|
||||
v4lVersion = (atoi(optarg)==1)?1:2;
|
||||
break;
|
||||
#endif // ZM_HAS_V4L
|
||||
case 'h':
|
||||
Usage( 0 );
|
||||
break;
|
||||
|
@ -658,10 +662,15 @@ int main( int argc, char *argv[] )
|
|||
{
|
||||
if ( function & ZMU_QUERY )
|
||||
{
|
||||
#if ZM_HAS_V4L
|
||||
char vidString[0x10000] = "";
|
||||
bool ok = LocalCamera::GetCurrentSettings( device, vidString, v4lVersion, verbose );
|
||||
printf( "%s", vidString );
|
||||
exit( ok?0:-1 );
|
||||
#else // ZM_HAS_V4L
|
||||
fprintf( stderr, "Error, video4linux is required for device querying\n" );
|
||||
exit( -1 );
|
||||
#endif // ZM_HAS_V4L
|
||||
}
|
||||
|
||||
if ( function & ZMU_LIST )
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -42,9 +42,11 @@ fclose( $cfg );
|
|||
define( "ZMU_PATH", ZM_PATH_BIN."/zmu" ); // Local path to the ZoneMinder Utility
|
||||
|
||||
//
|
||||
// If setup supports Video 4 Linux v2
|
||||
// If setup supports Video 4 Linux v2 and/or v1
|
||||
//
|
||||
define( "ZM_V4L2", "@ZM_V4L2@" ); // V4L2 support enabled
|
||||
define( "ZM_HAS_V4L2", "@ZM_HAS_V4L2@" ); // V4L2 support enabled
|
||||
define( "ZM_HAS_V4L1", "@ZM_HAS_V4L1@" ); // V4L1 support enabled
|
||||
define( "ZM_HAS_V4L", "@ZM_HAS_V4L@" ); // V4L support enabled
|
||||
|
||||
//
|
||||
// If PCRE dev libraries are installed
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -167,6 +167,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -174,7 +177,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -55,7 +55,7 @@ else
|
|||
'Function' => "Monitor",
|
||||
'Enabled' => true,
|
||||
'LinkedMonitors' => "",
|
||||
'Type' => "Local",
|
||||
'Type' => "",
|
||||
'Device' => "/dev/video",
|
||||
'Channel' => "0",
|
||||
'Format' => "",
|
||||
|
@ -157,7 +157,7 @@ if ( !empty($_REQUEST['probe']) )
|
|||
$newMonitor[$name] = $value;
|
||||
}
|
||||
}
|
||||
if ( $newMonitor['Type'] == 'Local' )
|
||||
if ( ZM_HAS_V4L && $newMonitor['Type'] == 'Local' )
|
||||
{
|
||||
$newMonitor['Palette'] = fourCC( substr($newMonitor['Palette'],0,1), substr($newMonitor['Palette'],1,1), substr($newMonitor['Palette'],2,1), substr($newMonitor['Palette'],3,1) );
|
||||
if ( $newMonitor['Format'] == 'PAL' )
|
||||
|
@ -175,13 +175,17 @@ $sourceTypes = array(
|
|||
'File' => $SLANG['File'],
|
||||
'Ffmpeg' => $SLANG['Ffmpeg'],
|
||||
);
|
||||
if ( !ZM_HAS_V4L )
|
||||
unset($sourceTypes['Local']);
|
||||
|
||||
$localMethods = array(
|
||||
'v4l2' => "Video For Linux version 2",
|
||||
'v4l1' => "Video For Linux version 1",
|
||||
);
|
||||
if ( !ZM_V4L2 )
|
||||
if ( !ZM_HAS_V4L2 )
|
||||
unset($localMethods['v4l2']);
|
||||
if ( !ZM_HAS_V4L1 )
|
||||
unset($localMethods['v4l1']);
|
||||
|
||||
$remoteProtocols = array(
|
||||
"http" => "HTTP",
|
||||
|
@ -205,36 +209,39 @@ if ( !ZM_PCRE )
|
|||
// Currently unsupported
|
||||
unset($httpMethods['jpegTags']);
|
||||
|
||||
$v4l1DeviceFormats = array(
|
||||
$SLANG['Undefined'] => '',
|
||||
"PAL" => 0,
|
||||
"NTSC" => 1,
|
||||
"SECAM" => 2,
|
||||
"AUTO" => 3,
|
||||
"FMT4" => 4,
|
||||
"FMT5" => 5,
|
||||
"FMT6" => 6,
|
||||
"FMT7" => 7
|
||||
);
|
||||
if ( ZM_HAS_V4L1 )
|
||||
{
|
||||
$v4l1DeviceFormats = array(
|
||||
$SLANG['Undefined'] => '',
|
||||
"PAL" => 0,
|
||||
"NTSC" => 1,
|
||||
"SECAM" => 2,
|
||||
"AUTO" => 3,
|
||||
"FMT4" => 4,
|
||||
"FMT5" => 5,
|
||||
"FMT6" => 6,
|
||||
"FMT7" => 7
|
||||
);
|
||||
|
||||
$v4l1MaxChannels = 15;
|
||||
$v4l1DeviceChannels = array();
|
||||
for ( $i = 0; $i <= $v4l1MaxChannels; $i++ )
|
||||
$v4l1DeviceChannels["$i"] = $i;
|
||||
$v4l1MaxChannels = 15;
|
||||
$v4l1DeviceChannels = array();
|
||||
for ( $i = 0; $i <= $v4l1MaxChannels; $i++ )
|
||||
$v4l1DeviceChannels["$i"] = $i;
|
||||
|
||||
$v4l1LocalPalettes = array(
|
||||
$SLANG['Undefined'] => '',
|
||||
$SLANG['Grey'] => 1,
|
||||
"RGB24" => 4,
|
||||
"RGB565" => 3,
|
||||
"RGB555" => 6,
|
||||
"YUV422" => 7,
|
||||
"YUYV" => 8,
|
||||
"YUV422P" => 13,
|
||||
"YUV420P" => 15
|
||||
);
|
||||
$v4l1LocalPalettes = array(
|
||||
$SLANG['Undefined'] => '',
|
||||
$SLANG['Grey'] => 1,
|
||||
"RGB24" => 4,
|
||||
"RGB565" => 3,
|
||||
"RGB555" => 6,
|
||||
"YUV422" => 7,
|
||||
"YUYV" => 8,
|
||||
"YUV422P" => 13,
|
||||
"YUV420P" => 15
|
||||
);
|
||||
}
|
||||
|
||||
if ( ZM_V4L2 )
|
||||
if ( ZM_HAS_V4L2 )
|
||||
{
|
||||
$v4l2DeviceFormats = array(
|
||||
$SLANG['Undefined'] => '',
|
||||
|
@ -422,7 +429,7 @@ if ( $tab != 'general' )
|
|||
}
|
||||
}
|
||||
}
|
||||
if ( $tab != 'source' || $newMonitor['Type'] != 'Local' )
|
||||
if ( ZM_HAS_V4L && ($tab != 'source' || $newMonitor['Type'] != 'Local') )
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="newMonitor[Device]" value="<?= validHtmlStr($newMonitor['Device']) ?>"/>
|
||||
|
@ -513,7 +520,7 @@ if ( $tab != 'misc' )
|
|||
<input type="hidden" name="newMonitor[WebColour]" value="<?= validHtmlStr($newMonitor['WebColour']) ?>"/>
|
||||
<?php
|
||||
}
|
||||
if ( $tab != 'misc' || $newMonitor['Type'] != 'Local' )
|
||||
if ( ZM_HAS_V4L && ($tab != 'misc' || $newMonitor['Type'] != 'Local') )
|
||||
{
|
||||
?>
|
||||
<input type="hidden" name="newMonitor[SignalCheckColour]" value="<?= validHtmlStr($newMonitor['SignalCheckColour']) ?>"/>
|
||||
|
@ -600,18 +607,18 @@ switch ( $tab )
|
|||
// Set up initial palette value
|
||||
if ( $newMonitor['Palette'] == '' )
|
||||
{
|
||||
if ( $newMonitor['Type'] == 'Local' )
|
||||
if ( ZM_HAS_V4L && $newMonitor['Type'] == 'Local' )
|
||||
$newMonitor['Palette'] = 4;
|
||||
else
|
||||
$newMonitor['Palette'] = 3;
|
||||
}
|
||||
if ( $newMonitor['Type'] == "Local" )
|
||||
if ( ZM_HAS_V4L && $newMonitor['Type'] == "Local" )
|
||||
{
|
||||
?>
|
||||
<tr><td><?= $SLANG['DevicePath'] ?></td><td><input type="text" name="newMonitor[Device]" value="<?= validHtmlStr($newMonitor['Device']) ?>" size="24"/></td></tr>
|
||||
<tr><td><?= $SLANG['CaptureMethod'] ?></td><td><?= buildSelect( "newMonitor[Method]", $localMethods, "submitTab( '$tab' )" ); ?></td></tr>
|
||||
<?php
|
||||
if ( !ZM_V4L2 || $newMonitor['Method'] == 'v4l1' )
|
||||
if ( ZM_HAS_V4L1 || $newMonitor['Method'] == 'v4l1' )
|
||||
{
|
||||
?>
|
||||
<tr><td><?= $SLANG['DeviceChannel'] ?></td><td><select name="newMonitor[Channel]"><?php foreach ( $v4l1DeviceChannels as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Channel'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
|
||||
|
@ -619,7 +626,7 @@ switch ( $tab )
|
|||
<tr><td><?= $SLANG['CapturePalette'] ?></td><td><select name="newMonitor[Palette]"><?php foreach ( $v4l1LocalPalettes as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Palette'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
else if ( ZM_HAS_V4L2 || $newMonitor['Method'] == 'v4l2' )
|
||||
{
|
||||
?>
|
||||
<tr><td><?= $SLANG['DeviceChannel'] ?></td><td><select name="newMonitor[Channel]"><?php foreach ( $v4l2DeviceChannels as $name => $value ) { ?><option value="<?= $value ?>"<?php if ( $value == $newMonitor['Channel'] ) { ?> selected="selected"<?php } ?>><?= $name ?></option><?php } ?></select></td></tr>
|
||||
|
@ -741,7 +748,7 @@ switch ( $tab )
|
|||
<tr><td><?= $SLANG['DefaultRate'] ?></td><td><?= buildSelect( "newMonitor[DefaultRate]", $rates ); ?></td></tr>
|
||||
<tr><td><?= $SLANG['DefaultScale'] ?></td><td><?= buildSelect( "newMonitor[DefaultScale]", $scales ); ?></td></tr>
|
||||
<?php
|
||||
if ( $newMonitor['Type'] == "Local" )
|
||||
if ( ZM_HAS_V4L && $newMonitor['Type'] == "Local" )
|
||||
{
|
||||
?>
|
||||
<tr><td><?= $SLANG['SignalCheckColour'] ?></td><td><input type="text" name="newMonitor[SignalCheckColour]" value="<?= validHtmlStr($newMonitor['SignalCheckColour']) ?>" size="10" onchange="$('SignalCheckSwatch').setStyle( 'backgroundColor', this.value )"/><span id="SignalCheckSwatch" class="swatch" style="background-color: <?= $newMonitor['SignalCheckColour'] ?>;"> </span></td></tr>
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -192,6 +192,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -199,7 +202,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -167,6 +167,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -174,7 +177,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
|
@ -152,6 +152,9 @@ ZM_DB_HOST = @ZM_DB_HOST@
|
|||
ZM_DB_NAME = @ZM_DB_NAME@
|
||||
ZM_DB_PASS = @ZM_DB_PASS@
|
||||
ZM_DB_USER = @ZM_DB_USER@
|
||||
ZM_HAS_V4L = @ZM_HAS_V4L@
|
||||
ZM_HAS_V4L1 = @ZM_HAS_V4L1@
|
||||
ZM_HAS_V4L2 = @ZM_HAS_V4L2@
|
||||
ZM_LOGDIR = @ZM_LOGDIR@
|
||||
ZM_MYSQL_ENGINE = @ZM_MYSQL_ENGINE@
|
||||
ZM_PCRE = @ZM_PCRE@
|
||||
|
@ -159,7 +162,6 @@ ZM_PID = @ZM_PID@
|
|||
ZM_RUNDIR = @ZM_RUNDIR@
|
||||
ZM_SSL_LIB = @ZM_SSL_LIB@
|
||||
ZM_TMPDIR = @ZM_TMPDIR@
|
||||
ZM_V4L2 = @ZM_V4L2@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
|
|
Loading…
Reference in New Issue