Merging master again
commit
17d7404c93
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
cmake_minimum_required (VERSION 2.6)
|
cmake_minimum_required (VERSION 2.6)
|
||||||
project (zoneminder)
|
project (zoneminder)
|
||||||
set(zoneminder_VERSION "1.27")
|
set(zoneminder_VERSION "1.27.1")
|
||||||
|
|
||||||
# CMake does not allow out-of-source build if CMakeCache.exists in the source folder. Abort and notify the user to save him from headache why it doesn't work.
|
# CMake does not allow out-of-source build if CMakeCache.exists in the source folder. Abort and notify the user to save him from headache why it doesn't work.
|
||||||
if((NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)) AND (EXISTS "${CMAKE_SOURCE_DIR}/CMakeCache.txt"))
|
if((NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)) AND (EXISTS "${CMAKE_SOURCE_DIR}/CMakeCache.txt"))
|
||||||
|
|
28
README.md
28
README.md
|
@ -1,6 +1,6 @@
|
||||||
ZoneMinder H264 Patch
|
ZoneMinder H264 Patch
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/ZoneMinder/ZoneMinder.png?branch=feature-h264-videostorage)](https://travis-ci.org/ZoneMinder/ZoneMinder)
|
[![Build Status](https://travis-ci.org/ZoneMinder/ZoneMinder.png?branch=feature-h264-videostorage)](https://travis-ci.org/ZoneMinder/ZoneMinder) [![Bountysource](https://api.bountysource.com/badge/team?team_id=204&style=bounties_received)](https://www.bountysource.com/teams/zoneminder/issues?utm_source=ZoneMinder&utm_medium=shield&utm_campaign=bounties_received)
|
||||||
|
|
||||||
##Information about this branch
|
##Information about this branch
|
||||||
This branch aims to support direct recording of H264 cameras into MP4 format as well as allowing analogue or remote cameras to be transcoded into H264 video on the fly. This branch tracks the modern branch as the new WebUI is where all the viewing functionality will sit. If you encounter any issues, please open an issue on GitHub and attach it to the H264 Milestone. @chriswiggins is leading this project and welcomes all help!
|
This branch aims to support direct recording of H264 cameras into MP4 format as well as allowing analogue or remote cameras to be transcoded into H264 video on the fly. This branch tracks the modern branch as the new WebUI is where all the viewing functionality will sit. If you encounter any issues, please open an issue on GitHub and attach it to the H264 Milestone. @chriswiggins is leading this project and welcomes all help!
|
||||||
|
@ -136,5 +136,31 @@ perl-TimeDate perl-YAML-Syck php php-cli php-mysql x264 vlc-devel vlc-core libcu
|
||||||
This release of ZoneMinder has been tested on and works with ffmpeg version N-55540-g93f4277.
|
This release of ZoneMinder has been tested on and works with ffmpeg version N-55540-g93f4277.
|
||||||
|
|
||||||
|
|
||||||
|
## Contribution Model and Development
|
||||||
|
|
||||||
|
* Source hosted at [GitHub](https://github.com/ZoneMinder/ZoneMinder/)
|
||||||
|
* Report issues/questions/feature requests on [GitHub Issues](https://github.com/ZoneMinder/ZoneMinder/issues)
|
||||||
|
|
||||||
|
Pull requests are very welcome! If you would like to contribute,
|
||||||
|
please follow the following steps. Also please create a feature branch
|
||||||
|
for what you are working on.
|
||||||
|
|
||||||
|
1. Fork the repo
|
||||||
|
2. Open an issue at our [GitHub Issues](https://github.com/ZoneMinder/ZoneMinder/issues) page and jot down the issue number (e.g. 456)
|
||||||
|
3. Create your feature branch (`git checkout -b 456-my-new-feature`)
|
||||||
|
4. Commit your changes (`git commit -am 'Added some feature'`)
|
||||||
|
5. Push to the branch (`git push origin 456-my-new-feature`)
|
||||||
|
6. Create new Pull Request
|
||||||
|
7. The team will then review your changes
|
||||||
|
|
||||||
|
If you are instead working on a bug - not a feature - please do the following:
|
||||||
|
|
||||||
|
1. Fork the repo
|
||||||
|
2. Open an issue at our [GitHub Issues](https://github.com/ZoneMinder/ZoneMinder/issues) page and jot down the issue number (e.g. 123)
|
||||||
|
3. Create your feature branch (`git checkout -b 123-short-description `)
|
||||||
|
4. Commit your changes (`git commit -am 'Added some feature. Fixes #123'`)
|
||||||
|
5. Push to the branch (`git push origin 123-short-description`)
|
||||||
|
6. Create new Pull Request
|
||||||
|
7. The team will then review your changes
|
||||||
|
|
||||||
[![Analytics](https://ga-beacon.appspot.com/UA-15147273-6/ZoneMinder/README.md)](https://github.com/igrigorik/ga-beacon)
|
[![Analytics](https://ga-beacon.appspot.com/UA-15147273-6/ZoneMinder/README.md)](https://github.com/igrigorik/ga-beacon)
|
||||||
|
|
30
configure.ac
30
configure.ac
|
@ -1,5 +1,5 @@
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT(zm,1.27,[http://www.zoneminder.com/forums/ - Please check FAQ first],zoneminder,http://www.zoneminder.com/downloads.html)
|
AC_INIT(zm,1.27.1,[http://www.zoneminder.com/forums/ - Please check FAQ first],zoneminder,http://www.zoneminder.com/downloads.html)
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
AC_CONFIG_SRCDIR(src/zm.h)
|
AC_CONFIG_SRCDIR(src/zm.h)
|
||||||
AC_CONFIG_HEADERS(config.h)
|
AC_CONFIG_HEADERS(config.h)
|
||||||
|
@ -386,6 +386,34 @@ fi
|
||||||
AC_SUBST(PERL_MM_PARMS)
|
AC_SUBST(PERL_MM_PARMS)
|
||||||
AC_SUBST(EXTRA_PERL_LIB)
|
AC_SUBST(EXTRA_PERL_LIB)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Platform specific setup
|
||||||
|
#
|
||||||
|
#############################
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
# Check for which host we are on and setup a few things
|
||||||
|
# specifically based on the host
|
||||||
|
case $host_os in
|
||||||
|
darwin* )
|
||||||
|
# Do something specific for mac
|
||||||
|
HOST_OS='darwin'
|
||||||
|
;;
|
||||||
|
linux*)
|
||||||
|
# Do something specific for linux
|
||||||
|
HOST_OS='linux'
|
||||||
|
;;
|
||||||
|
*BSD*)
|
||||||
|
# Do something specific for BSD
|
||||||
|
HOST_OS='BSD'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
#Default Case
|
||||||
|
AC_MSG_ERROR([Your platform is not currently supported])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(HOST_OS)
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/css/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile web/skins/flat/Makefile web/skins/flat/ajax/Makefile web/skins/flat/css/Makefile web/skins/flat/graphics/Makefile web/skins/flat/includes/Makefile web/skins/flat/js/Makefile web/skins/flat/lang/Makefile web/skins/flat/views/Makefile web/skins/flat/views/css/Makefile web/skins/flat/views/js/Makefile])
|
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/css/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile web/skins/flat/Makefile web/skins/flat/ajax/Makefile web/skins/flat/css/Makefile web/skins/flat/graphics/Makefile web/skins/flat/includes/Makefile web/skins/flat/js/Makefile web/skins/flat/lang/Makefile web/skins/flat/views/Makefile web/skins/flat/views/css/Makefile web/skins/flat/views/js/Makefile])
|
||||||
|
|
||||||
# Create the definitions for compilation and defaults for the database
|
# Create the definitions for compilation and defaults for the database
|
||||||
|
|
|
@ -329,6 +329,7 @@ CREATE TABLE `Monitors` (
|
||||||
`Port` varchar(8) NOT NULL default '',
|
`Port` varchar(8) NOT NULL default '',
|
||||||
`SubPath` varchar(64) NOT NULL default '',
|
`SubPath` varchar(64) NOT NULL default '',
|
||||||
`Path` varchar(255) NOT NULL default '',
|
`Path` varchar(255) NOT NULL default '',
|
||||||
|
`Options` varchar(255) not null default '',
|
||||||
`User` varchar(64) NOT NULL default '',
|
`User` varchar(64) NOT NULL default '',
|
||||||
`Pass` varchar(64) NOT NULL default '',
|
`Pass` varchar(64) NOT NULL default '',
|
||||||
`Width` smallint(5) unsigned NOT NULL default '0',
|
`Width` smallint(5) unsigned NOT NULL default '0',
|
||||||
|
|
|
@ -13,11 +13,37 @@ ALTER TABLE Monitors modify column Type enum('Local','Remote','File','Ffmpeg','L
|
||||||
--
|
--
|
||||||
-- Add required fields for cURL authenication
|
-- Add required fields for cURL authenication
|
||||||
--
|
--
|
||||||
ALTER TABLE `Monitors` ADD `User` VARCHAR(32) NOT NULL AFTER `SubPath`;
|
|
||||||
ALTER TABLE `Monitors` ADD `Pass` VARCHAR(32) NOT NULL AFTER `User`;
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'User'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column User exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `User` VARCHAR(32) NOT NULL AFTER `SubPath`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'Pass'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column Pass exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `Pass` VARCHAR(32) NOT NULL AFTER `User`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Add default zone preset
|
-- Add default zone preset
|
||||||
--
|
--
|
||||||
INSERT INTO ZonePresets VALUES (NULL,'Default','Active','Percent','Blobs',25,NULL,3,75,3,3,3,75,2,NULL,1,NULL,0);
|
|
||||||
|
|
||||||
|
INSERT INTO ZonePresets VALUES (NULL,'Default','Active','Percent','Blobs',25,NULL,3,75,3,3,3,75,2,NULL,1,NULL,0,0);
|
||||||
|
|
|
@ -155,3 +155,21 @@ SET @s = (SELECT IF(
|
||||||
|
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Add Monitor Options field; used for specifying Ffmpeg AVoptions like rtsp_transport http or libVLC options
|
||||||
|
--
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*)
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE table_name = 'Monitors'
|
||||||
|
AND table_schema = DATABASE()
|
||||||
|
AND column_name = 'Options'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column Options already exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `Options` varchar(255) not null default '' AFTER `Path`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ Standards-Version: 3.9.2
|
||||||
|
|
||||||
Package: zoneminder
|
Package: zoneminder
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5, php5, php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-lite-perl, mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl
|
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5, php5, php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-lite-perl, mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl
|
||||||
Recommends: mysql-server
|
Recommends: mysql-server
|
||||||
Description: A video camera security and surveillance solution
|
Description: A video camera security and surveillance solution
|
||||||
ZoneMinder is intended for use in single or multi-camera video security
|
ZoneMinder is intended for use in single or multi-camera video security
|
||||||
|
|
|
@ -2,12 +2,12 @@ Source: zoneminder
|
||||||
Section: net
|
Section: net
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Isaac Connor <iconnor@connortechnology.com>
|
Maintainer: Isaac Connor <iconnor@connortechnology.com>
|
||||||
Build-Depends: debhelper (>= 7.0.50), autoconf, automake, dpatch, libphp-serialization-perl, libgnutls-dev, libmysqlclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libtool, libsys-mmap-perl, ffmpeg, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libpcre3, libarchive-zip-perl, libmime-lite-perl, libjpeg8, dh-autoreconf
|
Build-Depends: debhelper (>= 7.0.50), autoconf, automake, dpatch, libphp-serialization-perl, libgnutls-dev, libmysqlclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libtool, libsys-mmap-perl, ffmpeg | libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libpcre3, libarchive-zip-perl, libmime-lite-perl, libjpeg8, dh-autoreconf
|
||||||
Standards-Version: 3.9.2
|
Standards-Version: 3.9.2
|
||||||
|
|
||||||
Package: zoneminder
|
Package: zoneminder
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5, php5, php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-lite-perl, mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl
|
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5, php5, php5-mysql, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-lite-perl, mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg | libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice53, libjpeg8, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl
|
||||||
SUggests: mysql-server
|
SUggests: mysql-server
|
||||||
Description: A video camera security and surveillance solution
|
Description: A video camera security and surveillance solution
|
||||||
ZoneMinder is intended for use in single or multi-camera video security
|
ZoneMinder is intended for use in single or multi-camera video security
|
||||||
|
|
|
@ -782,16 +782,22 @@ sub killAll
|
||||||
{
|
{
|
||||||
my $delay = shift;
|
my $delay = shift;
|
||||||
sleep( $delay );
|
sleep( $delay );
|
||||||
|
my $killall;
|
||||||
|
if ( '@HOST_OS@' eq 'BSD' ) {
|
||||||
|
$killall = 'killall -';
|
||||||
|
} else {
|
||||||
|
$killall = 'killall -q -s ';
|
||||||
|
}
|
||||||
|
foreach my $daemon ( @daemons ) {
|
||||||
|
|
||||||
|
my $cmd = $killall ."TERM $daemon";
|
||||||
|
Debug( $cmd );
|
||||||
|
qx( $cmd );
|
||||||
|
}
|
||||||
|
sleep( $delay );
|
||||||
foreach my $daemon ( @daemons )
|
foreach my $daemon ( @daemons )
|
||||||
{
|
{
|
||||||
my $cmd = "killall --quiet --signal TERM $daemon";
|
my $cmd = $killall."KILL $daemon";
|
||||||
Debug( $cmd );
|
|
||||||
qx( $cmd );
|
|
||||||
}
|
|
||||||
sleep( $delay );
|
|
||||||
foreach my $daemon ( @daemons )
|
|
||||||
{
|
|
||||||
my $cmd = "killall --quiet --signal KILL $daemon";
|
|
||||||
Debug( $cmd );
|
Debug( $cmd );
|
||||||
qx( $cmd );
|
qx( $cmd );
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,7 +123,6 @@ int cURLCamera::PreCapture()
|
||||||
int cURLCamera::Capture( Image &image )
|
int cURLCamera::Capture( Image &image )
|
||||||
{
|
{
|
||||||
bool frameComplete = false;
|
bool frameComplete = false;
|
||||||
uint8_t* directbuffer;
|
|
||||||
|
|
||||||
/* MODE_STREAM specific variables */
|
/* MODE_STREAM specific variables */
|
||||||
bool SubHeadersParsingComplete = false;
|
bool SubHeadersParsingComplete = false;
|
||||||
|
@ -131,13 +130,6 @@ int cURLCamera::Capture( Image &image )
|
||||||
std::string frame_content_type;
|
std::string frame_content_type;
|
||||||
bool need_more_data = false;
|
bool need_more_data = false;
|
||||||
|
|
||||||
/* Request a writeable buffer of the target image */
|
|
||||||
directbuffer = image.WriteBuffer(width, height, colours, subpixelorder);
|
|
||||||
if(directbuffer == NULL) {
|
|
||||||
Error("Failed requesting writeable buffer for the captured image");
|
|
||||||
return (-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grab the mutex to ensure exclusive access to the shared data */
|
/* Grab the mutex to ensure exclusive access to the shared data */
|
||||||
lock();
|
lock();
|
||||||
|
|
||||||
|
@ -384,7 +376,7 @@ size_t cURLCamera::header_callback( void *buffer, size_t size, size_t nmemb, voi
|
||||||
|
|
||||||
void* cURLCamera::thread_func()
|
void* cURLCamera::thread_func()
|
||||||
{
|
{
|
||||||
int tRet;
|
long tRet;
|
||||||
double dSize;
|
double dSize;
|
||||||
|
|
||||||
c = curl_easy_init();
|
c = curl_easy_init();
|
||||||
|
|
|
@ -27,9 +27,11 @@ extern "C"{
|
||||||
#include "libavutil/time.h"
|
#include "libavutil/time.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
FfmpegCamera::FfmpegCamera( int p_id, const std::string &p_path, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture ) :
|
FfmpegCamera::FfmpegCamera( int p_id, const std::string &p_path, const std::string &p_method, const std::string &p_options, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture ) :
|
||||||
Camera( p_id, FFMPEG_SRC, p_width, p_height, p_colours, ZM_SUBPIX_ORDER_DEFAULT_FOR_COLOUR(p_colours), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
Camera( p_id, FFMPEG_SRC, p_width, p_height, p_colours, ZM_SUBPIX_ORDER_DEFAULT_FOR_COLOUR(p_colours), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
||||||
mPath( p_path )
|
mPath( p_path ),
|
||||||
|
mMethod( p_method ),
|
||||||
|
mOptions( p_options )
|
||||||
{
|
{
|
||||||
if ( capture )
|
if ( capture )
|
||||||
{
|
{
|
||||||
|
@ -132,6 +134,36 @@ int FfmpegCamera::PrimeCapture()
|
||||||
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(53, 4, 0)
|
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(53, 4, 0)
|
||||||
if ( av_open_input_file( &mFormatContext, mPath.c_str(), NULL, 0, NULL ) !=0 )
|
if ( av_open_input_file( &mFormatContext, mPath.c_str(), NULL, 0, NULL ) !=0 )
|
||||||
#else
|
#else
|
||||||
|
// Handle options
|
||||||
|
AVDictionary *opts = 0;
|
||||||
|
StringVector opVect = split(Options(), ",");
|
||||||
|
|
||||||
|
// Set transport method as specified by method field, rtpUni is default
|
||||||
|
if ( Method() == "rtpMulti" )
|
||||||
|
opVect.push_back("rtsp_transport=udp_multicast");
|
||||||
|
else if ( Method() == "rtpRtsp" )
|
||||||
|
opVect.push_back("rtsp_transport=tcp");
|
||||||
|
else if ( Method() == "rtpRtspHttp" )
|
||||||
|
opVect.push_back("rtsp_transport=http");
|
||||||
|
|
||||||
|
Debug(2, "Number of Options: %d",opVect.size());
|
||||||
|
for (size_t i=0; i<opVect.size(); i++)
|
||||||
|
{
|
||||||
|
StringVector parts = split(opVect[i],"=");
|
||||||
|
if (parts.size() > 1) {
|
||||||
|
parts[0] = trimSpaces(parts[0]);
|
||||||
|
parts[1] = trimSpaces(parts[1]);
|
||||||
|
if ( av_dict_set(&opts, parts[0].c_str(), parts[1].c_str(), 0) == 0 ) {
|
||||||
|
Debug(2, "set option %d '%s' to '%s'", i, parts[0].c_str(), parts[1].c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Warning( "Error trying to set option %d '%s' to '%s'", i, parts[0].c_str(), parts[1].c_str() );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( avformat_open_input( &mFormatContext, mPath.c_str(), NULL, &opts ) !=0 )
|
if ( avformat_open_input( &mFormatContext, mPath.c_str(), NULL, &opts ) !=0 )
|
||||||
#endif
|
#endif
|
||||||
Fatal( "Unable to open input %s due to: %s", mPath.c_str(), strerror(errno) );
|
Fatal( "Unable to open input %s due to: %s", mPath.c_str(), strerror(errno) );
|
||||||
|
|
|
@ -35,6 +35,8 @@ class FfmpegCamera : public Camera
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
std::string mPath;
|
std::string mPath;
|
||||||
|
std::string mMethod;
|
||||||
|
std::string mOptions;
|
||||||
|
|
||||||
int frameCount;
|
int frameCount;
|
||||||
|
|
||||||
|
@ -61,10 +63,12 @@ protected:
|
||||||
int64_t startTime;
|
int64_t startTime;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FfmpegCamera( int p_id, const std::string &path, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture );
|
FfmpegCamera( int p_id, const std::string &path, const std::string &p_method, const std::string &p_options, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture );
|
||||||
~FfmpegCamera();
|
~FfmpegCamera();
|
||||||
|
|
||||||
const std::string &Path() const { return( mPath ); }
|
const std::string &Path() const { return( mPath ); }
|
||||||
|
const std::string &Options() const { return( mOptions ); }
|
||||||
|
const std::string &Method() const { return( mMethod ); }
|
||||||
|
|
||||||
void Initialise();
|
void Initialise();
|
||||||
void Terminate();
|
void Terminate();
|
||||||
|
|
|
@ -61,9 +61,11 @@ void LibvlcUnlockBuffer(void* opaque, void* picture, void *const *planes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LibvlcCamera::LibvlcCamera( int p_id, const std::string &p_path, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture ) :
|
LibvlcCamera::LibvlcCamera( int p_id, const std::string &p_path, const std::string &p_method, const std::string &p_options, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture ) :
|
||||||
Camera( p_id, LIBVLC_SRC, p_width, p_height, p_colours, ZM_SUBPIX_ORDER_DEFAULT_FOR_COLOUR(p_colours), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
Camera( p_id, LIBVLC_SRC, p_width, p_height, p_colours, ZM_SUBPIX_ORDER_DEFAULT_FOR_COLOUR(p_colours), p_brightness, p_contrast, p_hue, p_colour, p_capture ),
|
||||||
mPath( p_path )
|
mPath( p_path ),
|
||||||
|
mMethod( p_method ),
|
||||||
|
mOptions( p_options )
|
||||||
{
|
{
|
||||||
mLibvlcInstance = NULL;
|
mLibvlcInstance = NULL;
|
||||||
mLibvlcMedia = NULL;
|
mLibvlcMedia = NULL;
|
||||||
|
@ -115,6 +117,10 @@ LibvlcCamera::~LibvlcCamera()
|
||||||
libvlc_release(mLibvlcInstance);
|
libvlc_release(mLibvlcInstance);
|
||||||
mLibvlcInstance = NULL;
|
mLibvlcInstance = NULL;
|
||||||
}
|
}
|
||||||
|
if (mOptArgV != NULL)
|
||||||
|
{
|
||||||
|
delete[] mOptArgV;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LibvlcCamera::Initialise()
|
void LibvlcCamera::Initialise()
|
||||||
|
@ -138,7 +144,28 @@ int LibvlcCamera::PrimeCapture()
|
||||||
{
|
{
|
||||||
Info("Priming capture from %s", mPath.c_str());
|
Info("Priming capture from %s", mPath.c_str());
|
||||||
|
|
||||||
mLibvlcInstance = libvlc_new (0, NULL);
|
StringVector opVect = split(Options(), ",");
|
||||||
|
|
||||||
|
// Set transport method as specified by method field, rtpUni is default
|
||||||
|
if ( Method() == "rtpMulti" )
|
||||||
|
opVect.push_back("--rtsp-mcast");
|
||||||
|
else if ( Method() == "rtpRtsp" )
|
||||||
|
opVect.push_back("--rtsp-tcp");
|
||||||
|
else if ( Method() == "rtpRtspHttp" )
|
||||||
|
opVect.push_back("--rtsp-http");
|
||||||
|
|
||||||
|
if (opVect.size() > 0)
|
||||||
|
{
|
||||||
|
mOptArgV = new char*[opVect.size()];
|
||||||
|
Debug(2, "Number of Options: %d",opVect.size());
|
||||||
|
for (size_t i=0; i< opVect.size(); i++) {
|
||||||
|
opVect[i] = trimSpaces(opVect[i]);
|
||||||
|
mOptArgV[i] = (char *)opVect[i].c_str();
|
||||||
|
Debug(2, "set option %d to '%s'", i, opVect[i].c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mLibvlcInstance = libvlc_new (opVect.size(), (const char* const*)mOptArgV);
|
||||||
if(mLibvlcInstance == NULL)
|
if(mLibvlcInstance == NULL)
|
||||||
Fatal("Unable to create libvlc instance due to: %s", libvlc_errmsg());
|
Fatal("Unable to create libvlc instance due to: %s", libvlc_errmsg());
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,9 @@ class LibvlcCamera : public Camera
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
std::string mPath;
|
std::string mPath;
|
||||||
|
std::string mMethod;
|
||||||
|
std::string mOptions;
|
||||||
|
char **mOptArgV;
|
||||||
LibvlcPrivateData mLibvlcData;
|
LibvlcPrivateData mLibvlcData;
|
||||||
std::string mTargetChroma;
|
std::string mTargetChroma;
|
||||||
uint8_t mBpp;
|
uint8_t mBpp;
|
||||||
|
@ -55,10 +57,12 @@ protected:
|
||||||
libvlc_media_player_t *mLibvlcMediaPlayer;
|
libvlc_media_player_t *mLibvlcMediaPlayer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LibvlcCamera( int p_id, const std::string &path, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture );
|
LibvlcCamera( int p_id, const std::string &path, const std::string &p_method, const std::string &p_options, int p_width, int p_height, int p_colours, int p_brightness, int p_contrast, int p_hue, int p_colour, bool p_capture );
|
||||||
~LibvlcCamera();
|
~LibvlcCamera();
|
||||||
|
|
||||||
const std::string &Path() const { return( mPath ); }
|
const std::string &Path() const { return( mPath ); }
|
||||||
|
const std::string &Options() const { return( mOptions ); }
|
||||||
|
const std::string &Method() const { return( mMethod ); }
|
||||||
|
|
||||||
void Initialise();
|
void Initialise();
|
||||||
void Terminate();
|
void Terminate();
|
||||||
|
|
|
@ -56,21 +56,6 @@
|
||||||
#endif // ZM_MEM_MAPPED
|
#endif // ZM_MEM_MAPPED
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
std::string trimSpaces(std::string str)
|
|
||||||
{
|
|
||||||
// Trim Both leading and trailing spaces
|
|
||||||
size_t startpos = str.find_first_not_of(" \t"); // Find the first character position after excluding leading blank spaces
|
|
||||||
size_t endpos = str.find_last_not_of(" \t"); // Find the first character position from reverse af
|
|
||||||
|
|
||||||
// if all spaces or empty return an empty string
|
|
||||||
if(( std::string::npos == startpos ) || ( std::string::npos == endpos))
|
|
||||||
{
|
|
||||||
return std::string("");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return str.substr( startpos, endpos-startpos+1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<std::string> split(const std::string &s, char delim) {
|
std::vector<std::string> split(const std::string &s, char delim) {
|
||||||
std::vector<std::string> elems;
|
std::vector<std::string> elems;
|
||||||
std::stringstream ss(s);
|
std::stringstream ss(s);
|
||||||
|
@ -2310,11 +2295,11 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
||||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||||
if ( !file[0] )
|
if ( !file[0] )
|
||||||
{
|
{
|
||||||
strncpy( sql, "select Id, Name, Function+0, Enabled, LinkedMonitors, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Ffmpeg'", sizeof(sql) );
|
strncpy( sql, "select Id, Name, Function+0, Enabled, LinkedMonitors, Path, Method, Options, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Ffmpeg'", sizeof(sql) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
snprintf( sql, sizeof(sql), "select Id, Name, Function+0, Enabled, LinkedMonitors, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Ffmpeg' and Path = '%s'", file );
|
snprintf( sql, sizeof(sql), "select Id, Name, Function+0, Enabled, LinkedMonitors, Path, Method, Options, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Ffmpeg' and Path = '%s'", file );
|
||||||
}
|
}
|
||||||
if ( mysql_query( &dbconn, sql ) )
|
if ( mysql_query( &dbconn, sql ) )
|
||||||
{
|
{
|
||||||
|
@ -2343,6 +2328,8 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
||||||
const char *linked_monitors = dbrow[col]; col++;
|
const char *linked_monitors = dbrow[col]; col++;
|
||||||
|
|
||||||
const char *path = dbrow[col]; col++;
|
const char *path = dbrow[col]; col++;
|
||||||
|
const char *method = dbrow[col]; col++;
|
||||||
|
const char *options = dbrow[col]; col++;
|
||||||
|
|
||||||
int width = atoi(dbrow[col]); col++;
|
int width = atoi(dbrow[col]); col++;
|
||||||
int height = atoi(dbrow[col]); col++;
|
int height = atoi(dbrow[col]); col++;
|
||||||
|
@ -2383,6 +2370,8 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
||||||
Camera *camera = new FfmpegCamera(
|
Camera *camera = new FfmpegCamera(
|
||||||
id,
|
id,
|
||||||
path, // File
|
path, // File
|
||||||
|
method,
|
||||||
|
options,
|
||||||
cam_width,
|
cam_width,
|
||||||
cam_height,
|
cam_height,
|
||||||
colours,
|
colours,
|
||||||
|
@ -2445,7 +2434,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
||||||
Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
||||||
{
|
{
|
||||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||||
snprintf( sql, sizeof(sql), "select Id, Name, Type, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, Protocol, Method, Host, Port, Path, User, Pass, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Id = %d", id );
|
snprintf( sql, sizeof(sql), "select Id, Name, Type, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, Protocol, Method, Host, Port, Path, Options, User, Pass, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Id = %d", id );
|
||||||
if ( mysql_query( &dbconn, sql ) )
|
if ( mysql_query( &dbconn, sql ) )
|
||||||
{
|
{
|
||||||
Error( "Can't run query: %s", mysql_error( &dbconn ) );
|
Error( "Can't run query: %s", mysql_error( &dbconn ) );
|
||||||
|
@ -2481,6 +2470,7 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
||||||
std::string host = dbrow[col]; col++;
|
std::string host = dbrow[col]; col++;
|
||||||
std::string port = dbrow[col]; col++;
|
std::string port = dbrow[col]; col++;
|
||||||
std::string path = dbrow[col]; col++;
|
std::string path = dbrow[col]; col++;
|
||||||
|
std::string options = dbrow[col]; col++;
|
||||||
std::string user = dbrow[col]; col++;
|
std::string user = dbrow[col]; col++;
|
||||||
std::string pass = dbrow[col]; col++;
|
std::string pass = dbrow[col]; col++;
|
||||||
|
|
||||||
|
@ -2621,6 +2611,8 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
||||||
camera = new FfmpegCamera(
|
camera = new FfmpegCamera(
|
||||||
id,
|
id,
|
||||||
path.c_str(),
|
path.c_str(),
|
||||||
|
method,
|
||||||
|
options,
|
||||||
cam_width,
|
cam_width,
|
||||||
cam_height,
|
cam_height,
|
||||||
colours,
|
colours,
|
||||||
|
@ -2640,6 +2632,8 @@ Monitor *Monitor::Load( int id, bool load_zones, Purpose purpose )
|
||||||
camera = new LibvlcCamera(
|
camera = new LibvlcCamera(
|
||||||
id,
|
id,
|
||||||
path.c_str(),
|
path.c_str(),
|
||||||
|
method,
|
||||||
|
options,
|
||||||
cam_width,
|
cam_width,
|
||||||
cam_height,
|
cam_height,
|
||||||
colours,
|
colours,
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "zm_zone.h"
|
#include "zm_zone.h"
|
||||||
#include "zm_event.h"
|
#include "zm_event.h"
|
||||||
#include "zm_camera.h"
|
#include "zm_camera.h"
|
||||||
|
#include "zm_utils.h"
|
||||||
|
|
||||||
#include "zm_image_analyser.h"
|
#include "zm_image_analyser.h"
|
||||||
|
|
||||||
|
|
|
@ -97,17 +97,21 @@ bool User::canAccess( int monitor_id )
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to load a user from username and password
|
// Function to load a user from username and password
|
||||||
|
// Please note that in auth relay mode = none, password is NULL
|
||||||
User *zmLoadUser( const char *username, const char *password )
|
User *zmLoadUser( const char *username, const char *password )
|
||||||
{
|
{
|
||||||
char sql[ZM_SQL_SML_BUFSIZ] = "";
|
char sql[ZM_SQL_SML_BUFSIZ] = "";
|
||||||
|
char safer_username[65]; // current db username size is 32
|
||||||
|
char safer_password[129]; // current db password size is 64
|
||||||
|
|
||||||
if ( password )
|
// According to docs, size of safer_whatever must be 2*length+1 due to unicode conversions + null terminator.
|
||||||
{
|
mysql_real_escape_string(&dbconn, safer_username, username, strlen( username ) );
|
||||||
snprintf( sql, sizeof(sql), "select Username, Password, Enabled, Stream+0, Events+0, Control+0, Monitors+0, System+0, MonitorIds from Users where Username = '%s' and Password = password('%s') and Enabled = 1", username, password );
|
|
||||||
}
|
if ( password ) {
|
||||||
else
|
mysql_real_escape_string(&dbconn, safer_password, password, strlen( password ) );
|
||||||
{
|
snprintf( sql, sizeof(sql), "select Username, Password, Enabled, Stream+0, Events+0, Control+0, Monitors+0, System+0, MonitorIds from Users where Username = '%s' and Password = password('%s') and Enabled = 1", safer_username, safer_password );
|
||||||
snprintf( sql, sizeof(sql), "select Username, Password, Enabled, Stream+0, Events+0, Control+0, Monitors+0, System+0, MonitorIds from Users where Username = '%s' and Enabled = 1", username );
|
} else {
|
||||||
|
snprintf( sql, sizeof(sql), "select Username, Password, Enabled, Stream+0, Events+0, Control+0, Monitors+0, System+0, MonitorIds from Users where Username = '%s' and Enabled = 1", safer_username );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mysql_query( &dbconn, sql ) )
|
if ( mysql_query( &dbconn, sql ) )
|
||||||
|
|
|
@ -27,6 +27,36 @@
|
||||||
|
|
||||||
unsigned int sseversion = 0;
|
unsigned int sseversion = 0;
|
||||||
|
|
||||||
|
std::string trimSet(std::string str, std::string trimset) {
|
||||||
|
// Trim Both leading and trailing sets
|
||||||
|
size_t startpos = str.find_first_not_of(trimset); // Find the first character position after excluding leading blank spaces
|
||||||
|
size_t endpos = str.find_last_not_of(trimset); // Find the first character position from reverse af
|
||||||
|
|
||||||
|
// if all spaces or empty return an empty string
|
||||||
|
if(( std::string::npos == startpos ) || ( std::string::npos == endpos))
|
||||||
|
{
|
||||||
|
return std::string("");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return str.substr( startpos, endpos-startpos+1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string trimSpaces(std::string str)
|
||||||
|
{
|
||||||
|
return trimSet(str, " \t");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string replaceAll(std::string str, std::string from, std::string to) {
|
||||||
|
if(from.empty())
|
||||||
|
return str;
|
||||||
|
size_t start_pos = 0;
|
||||||
|
while((start_pos = str.find(from, start_pos)) != std::string::npos) {
|
||||||
|
str.replace(start_pos, from.length(), to);
|
||||||
|
start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx'
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string stringtf( const char *format, ... )
|
const std::string stringtf( const char *format, ... )
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
|
|
||||||
typedef std::vector<std::string> StringVector;
|
typedef std::vector<std::string> StringVector;
|
||||||
|
|
||||||
|
std::string trimSpaces(std::string str);
|
||||||
|
std::string trimSet(std::string str, std::string trimset);
|
||||||
|
std::string replaceAll(std::string str, std::string from, std::string to);
|
||||||
|
|
||||||
const std::string stringtf( const char *format, ... );
|
const std::string stringtf( const char *format, ... );
|
||||||
const std::string stringtf( const std::string &format, ... );
|
const std::string stringtf( const std::string &format, ... );
|
||||||
|
|
||||||
|
|
|
@ -212,10 +212,17 @@ if ( !empty($action) )
|
||||||
}
|
}
|
||||||
elseif ( $action == "settings" )
|
elseif ( $action == "settings" )
|
||||||
{
|
{
|
||||||
$zmuCommand = getZmuCommand( " -m ".$mid." -B".$_REQUEST['newBrightness']." -C".$_REQUEST['newContrast']." -H".$_REQUEST['newHue']." -O".$_REQUEST['newColour'] );
|
$args = " -m " . escapeshellarg($mid);
|
||||||
$zmuOutput = exec( escapeshellcmd( $zmuCommand ) );
|
$args .= " -B" . escapeshellarg($_REQUEST['newBrightness']);
|
||||||
|
$args .= " -C" . escapeshellarg($_REQUEST['newContrast']);
|
||||||
|
$args .= " -H" . escapeshellarg($_REQUEST['newHue']);
|
||||||
|
$args .= " -O" . escapeshellarg($_REQUEST['newColour']);
|
||||||
|
|
||||||
|
$zmuCommand = getZmuCommand( $args );
|
||||||
|
|
||||||
|
$zmuOutput = exec( $zmuCommand );
|
||||||
list( $brightness, $contrast, $hue, $colour ) = explode( ' ', $zmuOutput );
|
list( $brightness, $contrast, $hue, $colour ) = explode( ' ', $zmuOutput );
|
||||||
dbQuery( "update Monitors set Brightness = '".$brightness."', Contrast = '".$contrast."', Hue = '".$hue."', Colour = '".$colour."' where Id = '".$mid."'" );
|
dbQuery( "update Monitors set Brightness = ?, Contrast = ?, Hue = ?, Colour = ? where Id = ?", array($brightness, $contrast, $hue, $colour, $mid));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -462,7 +469,9 @@ if ( !empty($action) )
|
||||||
dbQuery( "update Monitors set ".implode( ", ", $changes )." where Id =?", array($mid) );
|
dbQuery( "update Monitors set ".implode( ", ", $changes )." where Id =?", array($mid) );
|
||||||
if ( isset($changes['Name']) )
|
if ( isset($changes['Name']) )
|
||||||
{
|
{
|
||||||
exec( escapeshellcmd( "mv ".ZM_DIR_EVENTS."/".$monitor['Name']." ".ZM_DIR_EVENTS."/".$_REQUEST['newMonitor']['Name'] ) );
|
$saferOldName = basename( $monitor['Name'] );
|
||||||
|
$saferNewName = basename( $_REQUEST['newMonitor']['Name'] );
|
||||||
|
rename( ZM_DIR_EVENTS."/".$saferOldName, ZM_DIR_EVENTS."/".$saferNewName);
|
||||||
}
|
}
|
||||||
if ( isset($changes['Width']) || isset($changes['Height']) )
|
if ( isset($changes['Width']) || isset($changes['Height']) )
|
||||||
{
|
{
|
||||||
|
@ -513,7 +522,8 @@ if ( !empty($action) )
|
||||||
dbQuery( "insert into Zones set MonitorId = ?, Name = 'All', Type = 'Active', Units = 'Percent', NumCoords = 4, Coords = ?, Area=?, AlarmRGB = 0xff0000, CheckMethod = 'Blobs', MinPixelThreshold = 25, MinAlarmPixels=?, MaxAlarmPixels=?, FilterX = 3, FilterY = 3, MinFilterPixels=?, MaxFilterPixels=?, MinBlobPixels=?, MinBlobs = 1", array( $mid, sprintf( "%d,%d %d,%d %d,%d %d,%d", 0, 0, $_REQUEST['newMonitor']['Width']-1, 0, $_REQUEST['newMonitor']['Width']-1, $_REQUEST['newMonitor']['Height']-1, 0, $_REQUEST['newMonitor']['Height']-1 ), $zoneArea, intval(($zoneArea*3)/100), intval(($zoneArea*75)/100), intval(($zoneArea*3)/100), intval(($zoneArea*75)/100), intval(($zoneArea*2)/100) ) );
|
dbQuery( "insert into Zones set MonitorId = ?, Name = 'All', Type = 'Active', Units = 'Percent', NumCoords = 4, Coords = ?, Area=?, AlarmRGB = 0xff0000, CheckMethod = 'Blobs', MinPixelThreshold = 25, MinAlarmPixels=?, MaxAlarmPixels=?, FilterX = 3, FilterY = 3, MinFilterPixels=?, MaxFilterPixels=?, MinBlobPixels=?, MinBlobs = 1", array( $mid, sprintf( "%d,%d %d,%d %d,%d %d,%d", 0, 0, $_REQUEST['newMonitor']['Width']-1, 0, $_REQUEST['newMonitor']['Width']-1, $_REQUEST['newMonitor']['Height']-1, 0, $_REQUEST['newMonitor']['Height']-1 ), $zoneArea, intval(($zoneArea*3)/100), intval(($zoneArea*75)/100), intval(($zoneArea*3)/100), intval(($zoneArea*75)/100), intval(($zoneArea*2)/100) ) );
|
||||||
//$view = 'none';
|
//$view = 'none';
|
||||||
mkdir( ZM_DIR_EVENTS.'/'.$mid, 0755 );
|
mkdir( ZM_DIR_EVENTS.'/'.$mid, 0755 );
|
||||||
symlink( $mid, ZM_DIR_EVENTS.'/'.$_REQUEST['newMonitor']['Name'] );
|
$saferName = basename($_REQUEST['newMonitor']['Name']);
|
||||||
|
symlink( $mid, ZM_DIR_EVENTS.'/'.$saferName );
|
||||||
if ( isset($_COOKIE['zmGroup']) )
|
if ( isset($_COOKIE['zmGroup']) )
|
||||||
{
|
{
|
||||||
dbQuery( "UPDATE Groups SET MonitorIds = concat(MonitorIds,',".$mid."') WHERE Id=?", array($_COOKIE['zmGroup']) );
|
dbQuery( "UPDATE Groups SET MonitorIds = concat(MonitorIds,',".$mid."') WHERE Id=?", array($_COOKIE['zmGroup']) );
|
||||||
|
@ -597,8 +607,8 @@ if ( !empty($action) )
|
||||||
foreach( $markEids as $markEid )
|
foreach( $markEids as $markEid )
|
||||||
deleteEvent( $markEid );
|
deleteEvent( $markEid );
|
||||||
|
|
||||||
deletePath( ZM_DIR_EVENTS."/".$monitor['Name'] );
|
deletePath( ZM_DIR_EVENTS."/".basename($monitor['Name']) );
|
||||||
deletePath( ZM_DIR_EVENTS."/".$monitor['Id'] );
|
deletePath( ZM_DIR_EVENTS."/".$monitor['Id'] ); // I'm trusting the Id.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -438,6 +438,7 @@ function outputControlStill( $src, $width, $height, $monitor, $scale, $target )
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Incoming args are shell-escaped. This function must escape any further arguments it cannot guarantee.
|
||||||
function getZmuCommand( $args )
|
function getZmuCommand( $args )
|
||||||
{
|
{
|
||||||
$zmuCommand = ZMU_PATH;
|
$zmuCommand = ZMU_PATH;
|
||||||
|
@ -450,11 +451,11 @@ function getZmuCommand( $args )
|
||||||
}
|
}
|
||||||
elseif ( ZM_AUTH_RELAY == "plain" )
|
elseif ( ZM_AUTH_RELAY == "plain" )
|
||||||
{
|
{
|
||||||
$zmuCommand .= " -U ".$_SESSION['username']." -P ".$_SESSION['password'];
|
$zmuCommand .= " -U " .escapeshellarg($_SESSION['username'])." -P ".escapeshellarg($_SESSION['password']);
|
||||||
}
|
}
|
||||||
elseif ( ZM_AUTH_RELAY == "none" )
|
elseif ( ZM_AUTH_RELAY == "none" )
|
||||||
{
|
{
|
||||||
$zmuCommand .= " -U ".$_SESSION['username'];
|
$zmuCommand .= " -U ".escapeshellarg($_SESSION['username']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -383,6 +383,7 @@ $SLANG = array(
|
||||||
'Last' => 'Last',
|
'Last' => 'Last',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -863,6 +864,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => '最后',
|
'Last' => '最后',
|
||||||
'Layout' => '布局',
|
'Layout' => '布局',
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => '个结果', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => '个结果', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => '仅限于开始', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => '仅限于开始', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -858,6 +859,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'Poslední',
|
'Last' => 'Poslední',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'výsledkù', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'výsledkù', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Zobrazit pouze prvních', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Zobrazit pouze prvních', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -859,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'Letztes',
|
'Last' => 'Letztes',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'Ergebnisse;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'Ergebnisse;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Begrenze nur auf die ersten', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Begrenze nur auf die ersten', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -859,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -380,6 +380,7 @@ $SLANG = array(
|
||||||
'Last' => 'Sidste',
|
'Last' => 'Sidste',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -860,6 +861,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -860,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -330,6 +330,7 @@ $SLANG = array(
|
||||||
'Last' => 'Ultimo',
|
'Last' => 'Ultimo',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'Resultados;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'Resultados;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Solo los primeros', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Solo los primeros', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -716,6 +717,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
}
|
}
|
||||||
|
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -376,6 +376,7 @@ $SLANG = array(
|
||||||
'Last' => 'Último',
|
'Last' => 'Último',
|
||||||
'Layout' => 'Diseño',
|
'Layout' => 'Diseño',
|
||||||
'Level' => 'Nivel',
|
'Level' => 'Nivel',
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'Sólo resultados', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'Sólo resultados', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limitar al primero', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limitar al primero', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Línea',
|
'Line' => 'Línea',
|
||||||
|
@ -760,6 +761,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
|
|
||||||
|
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -374,6 +374,7 @@ $SLANG = array(
|
||||||
'Last' => 'Viimane',
|
'Last' => 'Viimane',
|
||||||
'Layout' => 'Layout',
|
'Layout' => 'Layout',
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -852,6 +853,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'Dernier',
|
'Last' => 'Dernier',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -859,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'àçøåï',
|
'Last' => 'àçøåï',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'úåöàåú áìáã;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'úåöàåú áìáã;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'äâáì ìøàùåï', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'äâáì ìøàùåï', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -859,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -419,6 +419,7 @@ $SLANG = array(
|
||||||
'Last' => 'Utolsó',
|
'Last' => 'Utolsó',
|
||||||
'Layout' => 'Elrendezés',
|
'Layout' => 'Elrendezés',
|
||||||
'Level' => 'Szint',
|
'Level' => 'Szint',
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'találatra', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'találatra', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Csak az első', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Csak az első', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Sor',
|
'Line' => 'Sor',
|
||||||
|
@ -897,6 +898,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -384,6 +384,7 @@ $SLANG = array(
|
||||||
'Last' => 'Ultimo',
|
'Last' => 'Ultimo',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'risultati;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'risultati;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limita ai primi', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limita ai primi', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -864,6 +865,21 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => '<27>Å<EFBFBD>I',
|
'Last' => '<27>Å<EFBFBD>I',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -859,6 +860,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -376,6 +376,7 @@ $SLANG = array(
|
||||||
'Last' => 'Laatste',
|
'Last' => 'Laatste',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Nivo', // Added - 2011-06-16
|
'Level' => 'Nivo', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'resultaten;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'resultaten;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'beperk tot eerste', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'beperk tot eerste', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Lijn', // Added - 2011-06-16
|
'Line' => 'Lijn', // Added - 2011-06-16
|
||||||
|
@ -853,6 +854,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'Ostatni',
|
'Last' => 'Ostatni',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'wyników;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'wyników;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Ogranicz do pocz±tkowych', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Ogranicz do pocz±tkowych', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -838,6 +839,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -319,6 +319,7 @@ $SLANG = array(
|
||||||
'Last' => 'Último',
|
'Last' => 'Último',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'resultados somente;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'resultados somente;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limitar aos primeiros', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limitar aos primeiros', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -799,6 +800,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -350,6 +350,7 @@ $SLANG = array(
|
||||||
'Last' => 'Ultim',
|
'Last' => 'Ultim',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'rezultate',
|
'LimitResultsPost' => 'rezultate',
|
||||||
'LimitResultsPre' => 'Limitează la primele',
|
'LimitResultsPre' => 'Limitează la primele',
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -1296,6 +1297,23 @@ $OLANG = array(
|
||||||
'Prompt' => "Cât de des (în secunde) se vor schimba imaginile în ciclul de monitorizare.",
|
'Prompt' => "Cât de des (în secunde) se vor schimba imaginile în ciclul de monitorizare.",
|
||||||
'Help' => "Ciclul de monitorizare este metoda de schimbare continuă a imaginilor monitoarelor. Această opţiune determină cât de des va fi actulizat cu o nouă imagine."
|
'Help' => "Ciclul de monitorizare este metoda de schimbare continuă a imaginilor monitoarelor. Această opţiune determină cât de des va fi actulizat cu o nouă imagine."
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// Options on Monitor view
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
// End of Phone Bandwidth tab
|
// End of Phone Bandwidth tab
|
||||||
//
|
//
|
||||||
);
|
);
|
||||||
|
|
|
@ -379,6 +379,7 @@ $SLANG = array(
|
||||||
'Last' => 'ðÏÓÌÅÄÎÉÊ',
|
'Last' => 'ðÏÓÌÅÄÎÉÊ',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'results only;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Limit to first', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -858,6 +859,20 @@ function zmVlang( $langVarArray, $count )
|
||||||
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
// These overrides are in the form show below where the array key represents the option name minus the initial ZM_
|
||||||
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
// So for example, to override the help text for ZM_LANG_DEFAULT do
|
||||||
$OLANG = array(
|
$OLANG = array(
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
// 'LANG_DEFAULT' => array(
|
// 'LANG_DEFAULT' => array(
|
||||||
// 'Prompt' => "This is a new prompt for this option",
|
// 'Prompt' => "This is a new prompt for this option",
|
||||||
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
// 'Help' => "This is some new help for this option which will be displayed in the popup window when the ? is clicked"
|
||||||
|
|
|
@ -380,6 +380,7 @@ $SLANG = array(
|
||||||
'Last' => 'Sist',
|
'Last' => 'Sist',
|
||||||
'Layout' => 'Layout', // Added - 2009-02-08
|
'Layout' => 'Layout', // Added - 2009-02-08
|
||||||
'Level' => 'Level', // Added - 2011-06-16
|
'Level' => 'Level', // Added - 2011-06-16
|
||||||
|
'Libvlc' => 'Libvlc',
|
||||||
'LimitResultsPost' => 'resultaten;', // This is used at the end of the phrase 'Limit to first N results only'
|
'LimitResultsPost' => 'resultaten;', // This is used at the end of the phrase 'Limit to first N results only'
|
||||||
'LimitResultsPre' => 'Begränsa till första', // This is used at the beginning of the phrase 'Limit to first N results only'
|
'LimitResultsPre' => 'Begränsa till första', // This is used at the beginning of the phrase 'Limit to first N results only'
|
||||||
'Line' => 'Line', // Added - 2011-06-16
|
'Line' => 'Line', // Added - 2011-06-16
|
||||||
|
@ -863,6 +864,20 @@ $OLANG = array(
|
||||||
'Prompt' => "Välj språk för ZoneMinder",
|
'Prompt' => "Välj språk för ZoneMinder",
|
||||||
'Help' => "ZoneMinder kan använda annat språk än engelska i menyer och texter. Välj här det språk du vill använda till ZoneMinder."
|
'Help' => "ZoneMinder kan använda annat språk än engelska i menyer och texter. Välj här det språk du vill använda till ZoneMinder."
|
||||||
),
|
),
|
||||||
|
'OPTIONS_FFMPEG' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to FFmpeg. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"allowed_media_types=video\" Set datatype to request fromcam (audio, video, data)~~~~".
|
||||||
|
"\"reorder_queue_size=nnn\" Set number of packets to buffer for handling of reordered packets~~~~".
|
||||||
|
"\"loglevel=debug\" Set verbosiy of FFmpeg (quiet, panic, fatal, error, warning, info, verbose, debug)"
|
||||||
|
),
|
||||||
|
'OPTIONS_LIBVLC' => array(
|
||||||
|
'Help' => "Parameters in this field are passwd on to libVLC. Multiple parameters can be separated by ,~~ ".
|
||||||
|
"Examples (do not enter quotes)~~~~".
|
||||||
|
"\"--rtp-client-port=nnn\" Set local port to use for rtp data~~~~".
|
||||||
|
"\"--verbose=2\" Set verbosity of libVLC"
|
||||||
|
),
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -232,7 +232,7 @@ function parseFilterToTree( $filter )
|
||||||
$value = "'$value'";
|
$value = "'$value'";
|
||||||
break;
|
break;
|
||||||
case 'DateTime':
|
case 'DateTime':
|
||||||
$value = strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) );
|
$value = "'".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."'";
|
||||||
break;
|
break;
|
||||||
case 'Date':
|
case 'Date':
|
||||||
$value = "to_days( '".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."' )";
|
$value = "to_days( '".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."' )";
|
||||||
|
|
|
@ -63,6 +63,7 @@ else
|
||||||
'Method' => "",
|
'Method' => "",
|
||||||
'Host' => "",
|
'Host' => "",
|
||||||
'Path' => "",
|
'Path' => "",
|
||||||
|
'Options' => "",
|
||||||
'Port' => "80",
|
'Port' => "80",
|
||||||
'User' => "",
|
'User' => "",
|
||||||
'Pass' => "",
|
'Pass' => "",
|
||||||
|
@ -500,12 +501,18 @@ if ( $tab != 'source' || $newMonitor['Type'] != 'Remote' )
|
||||||
<input type="hidden" name="newMonitor[Port]" value="<?= validHtmlStr($newMonitor['Port']) ?>"/>
|
<input type="hidden" name="newMonitor[Port]" value="<?= validHtmlStr($newMonitor['Port']) ?>"/>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
if ( $tab != 'source' || ($newMonitor['Type'] != 'Local' && $newMonitor['Type'] != 'Remote') )
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Local' && $newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc') )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="newMonitor[Method]" value="<?= validHtmlStr($newMonitor['Method']) ?>"/>
|
<input type="hidden" name="newMonitor[Method]" value="<?= validHtmlStr($newMonitor['Method']) ?>"/>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' ))
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<input type="hidden" name="newMonitor[Options]" value="<?= validHtmlStr($newMonitor['Options']) ?>"/>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
if ( $tab != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' && $newMonitor['Type'] != 'cURL') )
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' && $newMonitor['Type'] != 'cURL') )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
|
@ -722,7 +729,7 @@ switch ( $tab )
|
||||||
<tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
elseif ( $newMonitor['Type'] == "File" || $newMonitor['Type'] == "Ffmpeg" || $newMonitor['Type'] == "Libvlc" )
|
elseif ( $newMonitor['Type'] == "File" )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
|
@ -734,6 +741,14 @@ switch ( $tab )
|
||||||
<tr><td><?= "URL" ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= "URL" ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
<tr><td><?= "Username" ?></td><td><input type="text" name="newMonitor[User]" value="<?= validHtmlStr($newMonitor['User']) ?>" size="12"/></td></tr>
|
<tr><td><?= "Username" ?></td><td><input type="text" name="newMonitor[User]" value="<?= validHtmlStr($newMonitor['User']) ?>" size="12"/></td></tr>
|
||||||
<tr><td><?= "Password" ?></td><td><input type="text" name="newMonitor[Pass]" value="<?= validHtmlStr($newMonitor['Pass']) ?>" size="12"/></td></tr>
|
<tr><td><?= "Password" ?></td><td><input type="text" name="newMonitor[Pass]" value="<?= validHtmlStr($newMonitor['Pass']) ?>" size="12"/></td></tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
elseif ( $newMonitor['Type'] == "Ffmpeg" || $newMonitor['Type'] == "Libvlc")
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
|
<tr><td><?= $SLANG['RemoteMethod'] ?></td><td><?= buildSelect( "newMonitor[Method]", $rtspMethods ); ?></td></tr>
|
||||||
|
<tr><td><?= $SLANG['Options'] ?> (<?= makePopupLink( '?view=optionhelp&option=OPTIONS_'.strtoupper($newMonitor['Type']), 'zmOptionHelp', 'optionhelp', '?' ) ?>)</td><td><input type="text" name="newMonitor[Options]" value="<?= validHtmlStr($newMonitor['Options']) ?>" size="36"/></td></tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
$optionHelpIndex = preg_replace( '/^ZM_/', '', $_REQUEST['option'] );
|
$optionHelpIndex = preg_replace( '/^ZM_/', '', $_REQUEST['option'] );
|
||||||
$optionHelpText = !empty($OLANG[$optionHelpIndex])?$OLANG[$optionHelpIndex]:$config[$_REQUEST['option']]['Help'];
|
$optionHelpText = !empty($OLANG[$optionHelpIndex])?$OLANG[$optionHelpIndex]['Help']:$config[$_REQUEST['option']]['Help'];
|
||||||
$optionHelpText = validHtmlStr($optionHelpText);
|
$optionHelpText = validHtmlStr($optionHelpText);
|
||||||
$optionHelpText = preg_replace( "/~~/", "<br/>", $optionHelpText );
|
$optionHelpText = preg_replace( "/~~/", "<br/>", $optionHelpText );
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,7 @@ $tabs['medband'] = $SLANG['MediumBW'];
|
||||||
$tabs['lowband'] = $SLANG['LowBW'];
|
$tabs['lowband'] = $SLANG['LowBW'];
|
||||||
$tabs['phoneband'] = $SLANG['PhoneBW'];
|
$tabs['phoneband'] = $SLANG['PhoneBW'];
|
||||||
$tabs['eyeZm'] = "eyeZm";
|
$tabs['eyeZm'] = "eyeZm";
|
||||||
if ( ZM_OPT_USE_AUTH )
|
$tabs['users'] = $SLANG['Users'];
|
||||||
$tabs['users'] = $SLANG['Users'];
|
|
||||||
|
|
||||||
if ( isset($_REQUEST['tab']) )
|
if ( isset($_REQUEST['tab']) )
|
||||||
$tab = validHtmlStr($_REQUEST['tab']);
|
$tab = validHtmlStr($_REQUEST['tab']);
|
||||||
|
@ -210,7 +209,7 @@ else
|
||||||
foreach ( $configCat as $name=>$value )
|
foreach ( $configCat as $name=>$value )
|
||||||
{
|
{
|
||||||
$shortName = preg_replace( '/^ZM_/', '', $name );
|
$shortName = preg_replace( '/^ZM_/', '', $name );
|
||||||
$optionPromptText = !empty($OLANG[$shortName])?$OLANG[$shortName]:$value['Prompt'];
|
$optionPromptText = !empty($OLANG[$shortName])?$OLANG[$shortName]['Prompt']:$value['Prompt'];
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $shortName ?></td>
|
<td><?= $shortName ?></td>
|
||||||
|
|
|
@ -25,7 +25,7 @@ if ( !canEdit( 'System' ) && !$selfEdit )
|
||||||
$view = "error";
|
$view = "error";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( !($newUser = dbFetchOne( 'SELECT * FROM Users WHERE Id = ?', NULL, $_REQUEST['uid']) ) ); {
|
if ( !($newUser = dbFetchOne( 'SELECT * FROM Users WHERE Id = ?', NULL, ARRAY($_REQUEST['uid'])) ) ); {
|
||||||
$newUser = array();
|
$newUser = array();
|
||||||
$newUser['Username'] = $SLANG['NewUser'];
|
$newUser['Username'] = $SLANG['NewUser'];
|
||||||
$newUser['Enabled'] = 1;
|
$newUser['Enabled'] = 1;
|
||||||
|
|
|
@ -232,7 +232,7 @@ function parseFilterToTree( $filter )
|
||||||
$value = "'$value'";
|
$value = "'$value'";
|
||||||
break;
|
break;
|
||||||
case 'DateTime':
|
case 'DateTime':
|
||||||
$value = strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) );
|
$value = "'".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."'";
|
||||||
break;
|
break;
|
||||||
case 'Date':
|
case 'Date':
|
||||||
$value = "to_days( '".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."' )";
|
$value = "to_days( '".strftime( STRF_FMT_DATETIME_DB, strtotime( $value ) )."' )";
|
||||||
|
|
|
@ -63,6 +63,7 @@ else
|
||||||
'Method' => "",
|
'Method' => "",
|
||||||
'Host' => "",
|
'Host' => "",
|
||||||
'Path' => "",
|
'Path' => "",
|
||||||
|
'Options' => "",
|
||||||
'Port' => "80",
|
'Port' => "80",
|
||||||
'User' => "",
|
'User' => "",
|
||||||
'Pass' => "",
|
'Pass' => "",
|
||||||
|
@ -501,12 +502,18 @@ if ( $tab != 'source' || $newMonitor['Type'] != 'Remote' )
|
||||||
<input type="hidden" name="newMonitor[Port]" value="<?= validHtmlStr($newMonitor['Port']) ?>"/>
|
<input type="hidden" name="newMonitor[Port]" value="<?= validHtmlStr($newMonitor['Port']) ?>"/>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
if ( $tab != 'source' || ($newMonitor['Type'] != 'Local' && $newMonitor['Type'] != 'Remote') )
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Local' && $newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc') )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="newMonitor[Method]" value="<?= validHtmlStr($newMonitor['Method']) ?>"/>
|
<input type="hidden" name="newMonitor[Method]" value="<?= validHtmlStr($newMonitor['Method']) ?>"/>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' ))
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<input type="hidden" name="newMonitor[Options]" value="<?= validHtmlStr($newMonitor['Options']) ?>"/>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
if ( $tab != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' && $newMonitor['Type'] != 'cURL') )
|
if ( $tab != 'source' || ($newMonitor['Type'] != 'Remote' && $newMonitor['Type'] != 'File' && $newMonitor['Type'] != 'Ffmpeg' && $newMonitor['Type'] != 'Libvlc' && $newMonitor['Type'] != 'cURL') )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
|
@ -723,7 +730,7 @@ switch ( $tab )
|
||||||
<tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= $SLANG['RemoteHostPath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
elseif ( $newMonitor['Type'] == "File" || $newMonitor['Type'] == "Ffmpeg" || $newMonitor['Type'] == "Libvlc" )
|
elseif ( $newMonitor['Type'] == "File" )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
|
@ -735,6 +742,14 @@ switch ( $tab )
|
||||||
<tr><td><?= "URL" ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
<tr><td><?= "URL" ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
<tr><td><?= "Username" ?></td><td><input type="text" name="newMonitor[User]" value="<?= validHtmlStr($newMonitor['User']) ?>" size="12"/></td></tr>
|
<tr><td><?= "Username" ?></td><td><input type="text" name="newMonitor[User]" value="<?= validHtmlStr($newMonitor['User']) ?>" size="12"/></td></tr>
|
||||||
<tr><td><?= "Password" ?></td><td><input type="text" name="newMonitor[Pass]" value="<?= validHtmlStr($newMonitor['Pass']) ?>" size="12"/></td></tr>
|
<tr><td><?= "Password" ?></td><td><input type="text" name="newMonitor[Pass]" value="<?= validHtmlStr($newMonitor['Pass']) ?>" size="12"/></td></tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
elseif ( $newMonitor['Type'] == "Ffmpeg" || $newMonitor['Type'] == "Libvlc")
|
||||||
|
{
|
||||||
|
?>
|
||||||
|
<tr><td><?= $SLANG['SourcePath'] ?></td><td><input type="text" name="newMonitor[Path]" value="<?= validHtmlStr($newMonitor['Path']) ?>" size="36"/></td></tr>
|
||||||
|
<tr><td><?= $SLANG['RemoteMethod'] ?></td><td><?= buildSelect( "newMonitor[Method]", $rtspMethods ); ?></td></tr>
|
||||||
|
<tr><td><?= $SLANG['Options'] ?> (<?= makePopupLink( '?view=optionhelp&option=OPTIONS_'.strtoupper($newMonitor['Type']), 'zmOptionHelp', 'optionhelp', '?' ) ?>)</td><td><input type="text" name="newMonitor[Options]" value="<?= validHtmlStr($newMonitor['Options']) ?>" size="36"/></td></tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
$optionHelpIndex = preg_replace( '/^ZM_/', '', $_REQUEST['option'] );
|
$optionHelpIndex = preg_replace( '/^ZM_/', '', $_REQUEST['option'] );
|
||||||
$optionHelpText = !empty($OLANG[$optionHelpIndex])?$OLANG[$optionHelpIndex]:$config[$_REQUEST['option']]['Help'];
|
$optionHelpText = !empty($OLANG[$optionHelpIndex])?$OLANG[$optionHelpIndex]['Help']:$config[$_REQUEST['option']]['Help'];
|
||||||
$optionHelpText = validHtmlStr($optionHelpText);
|
$optionHelpText = validHtmlStr($optionHelpText);
|
||||||
$optionHelpText = preg_replace( "/~~/", "<br/>", $optionHelpText );
|
$optionHelpText = preg_replace( "/~~/", "<br/>", $optionHelpText );
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,7 @@ $tabs['medband'] = $SLANG['MediumBW'];
|
||||||
$tabs['lowband'] = $SLANG['LowBW'];
|
$tabs['lowband'] = $SLANG['LowBW'];
|
||||||
$tabs['phoneband'] = $SLANG['PhoneBW'];
|
$tabs['phoneband'] = $SLANG['PhoneBW'];
|
||||||
$tabs['eyeZm'] = "eyeZm";
|
$tabs['eyeZm'] = "eyeZm";
|
||||||
if ( ZM_OPT_USE_AUTH )
|
$tabs['users'] = $SLANG['Users'];
|
||||||
$tabs['users'] = $SLANG['Users'];
|
|
||||||
|
|
||||||
if ( isset($_REQUEST['tab']) )
|
if ( isset($_REQUEST['tab']) )
|
||||||
$tab = validHtmlStr($_REQUEST['tab']);
|
$tab = validHtmlStr($_REQUEST['tab']);
|
||||||
|
@ -210,7 +209,7 @@ else
|
||||||
foreach ( $configCat as $name=>$value )
|
foreach ( $configCat as $name=>$value )
|
||||||
{
|
{
|
||||||
$shortName = preg_replace( '/^ZM_/', '', $name );
|
$shortName = preg_replace( '/^ZM_/', '', $name );
|
||||||
$optionPromptText = !empty($OLANG[$shortName])?$OLANG[$shortName]:$value['Prompt'];
|
$optionPromptText = !empty($OLANG[$shortName])?$OLANG[$shortName]['Prompt']:$value['Prompt'];
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $shortName ?></td>
|
<td><?= $shortName ?></td>
|
||||||
|
|
|
@ -25,7 +25,7 @@ if ( !canEdit( 'System' ) && !$selfEdit )
|
||||||
$view = "error";
|
$view = "error";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( !($newUser = dbFetchOne( 'SELECT * FROM Users WHERE Id = ?', NULL, $_REQUEST['uid']) ) ); {
|
if ( !($newUser = dbFetchOne( 'SELECT * FROM Users WHERE Id = ?', NULL, ARRAY($_REQUEST['uid'])) ) ); {
|
||||||
$newUser = array();
|
$newUser = array();
|
||||||
$newUser['Username'] = $SLANG['NewUser'];
|
$newUser['Username'] = $SLANG['NewUser'];
|
||||||
$newUser['Enabled'] = 1;
|
$newUser['Enabled'] = 1;
|
||||||
|
|
Loading…
Reference in New Issue