WIP, rabbit hole too deep
This commit is contained in:
parent
0550e69224
commit
95fe689d58
|
@ -468,6 +468,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),
|
`Path` varchar(255),
|
||||||
|
`SecondPath` varchar(255),
|
||||||
`Options` varchar(255),
|
`Options` varchar(255),
|
||||||
`User` varchar(64),
|
`User` varchar(64),
|
||||||
`Pass` varchar(64),
|
`Pass` varchar(64),
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
--
|
||||||
|
-- Add SecondPath to Monitors
|
||||||
|
--
|
||||||
|
|
||||||
|
SET @s = (SELECT IF(
|
||||||
|
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
|
||||||
|
AND table_name = 'Monitors'
|
||||||
|
AND column_name = 'SecondPath'
|
||||||
|
) > 0,
|
||||||
|
"SELECT 'Column SecondPath already exists in Monitors'",
|
||||||
|
"ALTER TABLE `Monitors` ADD `SecondPath` VARCHAR(255) AFTER `Path`"
|
||||||
|
));
|
||||||
|
|
||||||
|
PREPARE stmt FROM @s;
|
||||||
|
EXECUTE stmt;
|
|
@ -93,6 +93,7 @@ static enum AVPixelFormat find_fmt_by_hw_type(const enum AVHWDeviceType type) {
|
||||||
FfmpegCamera::FfmpegCamera(
|
FfmpegCamera::FfmpegCamera(
|
||||||
const Monitor *monitor,
|
const Monitor *monitor,
|
||||||
const std::string &p_path,
|
const std::string &p_path,
|
||||||
|
const std::string &p_second_path,
|
||||||
const std::string &p_method,
|
const std::string &p_method,
|
||||||
const std::string &p_options,
|
const std::string &p_options,
|
||||||
int p_width,
|
int p_width,
|
||||||
|
@ -121,6 +122,7 @@ FfmpegCamera::FfmpegCamera(
|
||||||
p_record_audio
|
p_record_audio
|
||||||
),
|
),
|
||||||
mPath(p_path),
|
mPath(p_path),
|
||||||
|
mSecondPath(p_second_path),
|
||||||
mMethod(p_method),
|
mMethod(p_method),
|
||||||
mOptions(p_options),
|
mOptions(p_options),
|
||||||
hwaccel_name(p_hwaccel_name),
|
hwaccel_name(p_hwaccel_name),
|
||||||
|
|
|
@ -34,6 +34,7 @@ typedef struct DecodeContext {
|
||||||
class FfmpegCamera : public Camera {
|
class FfmpegCamera : public Camera {
|
||||||
protected:
|
protected:
|
||||||
std::string mPath;
|
std::string mPath;
|
||||||
|
std::string mSecondPath;
|
||||||
std::string mMethod;
|
std::string mMethod;
|
||||||
std::string mOptions;
|
std::string mOptions;
|
||||||
|
|
||||||
|
@ -42,7 +43,17 @@ class FfmpegCamera : public Camera {
|
||||||
std::string hwaccel_device;
|
std::string hwaccel_device;
|
||||||
|
|
||||||
int frameCount;
|
int frameCount;
|
||||||
|
|
||||||
|
#if HAVE_LIBAVFORMAT
|
||||||
|
AVFormatContext *mFormatContext[2];
|
||||||
|
int mFormats;
|
||||||
|
int mFormatIndex;
|
||||||
|
int mVideoStreamId;
|
||||||
|
int mAudioStreamId;
|
||||||
|
AVCodecContext *mVideoCodecContext;
|
||||||
|
AVCodecContext *mAudioCodecContext;
|
||||||
|
AVCodec *mVideoCodec;
|
||||||
|
AVCodec *mAudioCodec;
|
||||||
_AVPIXELFORMAT imagePixFormat;
|
_AVPIXELFORMAT imagePixFormat;
|
||||||
|
|
||||||
bool use_hwaccel; //will default to on if hwaccel specified, will get turned off if there is a failure
|
bool use_hwaccel; //will default to on if hwaccel specified, will get turned off if there is a failure
|
||||||
|
@ -69,6 +80,7 @@ class FfmpegCamera : public Camera {
|
||||||
FfmpegCamera(
|
FfmpegCamera(
|
||||||
const Monitor *monitor,
|
const Monitor *monitor,
|
||||||
const std::string &path,
|
const std::string &path,
|
||||||
|
const std::string &second_path,
|
||||||
const std::string &p_method,
|
const std::string &p_method,
|
||||||
const std::string &p_options,
|
const std::string &p_options,
|
||||||
int p_width,
|
int p_width,
|
||||||
|
|
|
@ -676,7 +676,10 @@ switch ( $name ) {
|
||||||
{
|
{
|
||||||
if ( ZM_HAS_V4L && $monitor->Type() == 'Local' ) {
|
if ( ZM_HAS_V4L && $monitor->Type() == 'Local' ) {
|
||||||
?>
|
?>
|
||||||
<tr><td class="text-right pr-3"><?php echo translate('DevicePath') ?></td><td><input type="text" name="newMonitor[Device]" value="<?php echo validHtmlStr($monitor->Device()) ?>"/></td></tr>
|
<tr>
|
||||||
|
<td class="text-right pr-3"><?php echo translate('DevicePath') ?></td>
|
||||||
|
<td><input type="text" name="newMonitor[Device]" value="<?php echo validHtmlStr($monitor->Device()) ?>"/></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo translate('CaptureMethod') ?></td>
|
<td><?php echo translate('CaptureMethod') ?></td>
|
||||||
<td><?php echo htmlSelect('newMonitor[Method]', $localMethods, $monitor->Method(), array('onchange'=>'submitTab', 'data-tab-name'=>$tab) ); ?></td>
|
<td><?php echo htmlSelect('newMonitor[Method]', $localMethods, $monitor->Method(), array('onchange'=>'submitTab', 'data-tab-name'=>$tab) ); ?></td>
|
||||||
|
@ -819,6 +822,10 @@ include('_monitor_source_nvsocket.php');
|
||||||
}
|
}
|
||||||
if ( $monitor->Type() == 'Ffmpeg' ) {
|
if ( $monitor->Type() == 'Ffmpeg' ) {
|
||||||
?>
|
?>
|
||||||
|
<tr class="SourceSecondPath">
|
||||||
|
<td><?php echo translate('SourceSecondPath') ?></td>
|
||||||
|
<td><input type="text" name="newMonitor[SecondPath]" value="<?php echo validHtmlStr($monitor->SecondPath()) ?>" /></td>
|
||||||
|
</tr>
|
||||||
<tr class="DecoderHWAccelName">
|
<tr class="DecoderHWAccelName">
|
||||||
<td class="text-right pr-3">
|
<td class="text-right pr-3">
|
||||||
<?php echo translate('DecoderHWAccelName'); echo makeHelpLink('OPTIONS_DECODERHWACCELNAME') ?>
|
<?php echo translate('DecoderHWAccelName'); echo makeHelpLink('OPTIONS_DECODERHWACCELNAME') ?>
|
||||||
|
|
Loading…
Reference in New Issue