Few minor code improvements
This commit is contained in:
parent
283f71625b
commit
8ae387e376
|
@ -216,6 +216,12 @@ protected:
|
||||||
unsigned int height; // Normally the same as the camera, but not if partly rotated
|
unsigned int height; // Normally the same as the camera, but not if partly rotated
|
||||||
Orientation orientation; // Whether the image has to be rotated at all
|
Orientation orientation; // Whether the image has to be rotated at all
|
||||||
unsigned int deinterlacing;
|
unsigned int deinterlacing;
|
||||||
|
|
||||||
|
int savejpegspref;
|
||||||
|
int videowriterpref;
|
||||||
|
std::string encoderparams;
|
||||||
|
std::vector<EncoderParameter_t> encoderparamsvec;
|
||||||
|
|
||||||
int brightness; // The statically saved brightness of the camera
|
int brightness; // The statically saved brightness of the camera
|
||||||
int contrast; // The statically saved contrast of the camera
|
int contrast; // The statically saved contrast of the camera
|
||||||
int hue; // The statically saved hue of the camera
|
int hue; // The statically saved hue of the camera
|
||||||
|
@ -239,11 +245,6 @@ protected:
|
||||||
bool track_motion; // Whether this monitor tries to track detected motion
|
bool track_motion; // Whether this monitor tries to track detected motion
|
||||||
Rgb signal_check_colour; // The colour that the camera will emit when no video signal detected
|
Rgb signal_check_colour; // The colour that the camera will emit when no video signal detected
|
||||||
|
|
||||||
int savejpegspref;
|
|
||||||
int videowriterpref;
|
|
||||||
std::string encoderparams;
|
|
||||||
std::vector<EncoderParameter_t> encoderparamsvec;
|
|
||||||
|
|
||||||
double fps;
|
double fps;
|
||||||
Image delta_image;
|
Image delta_image;
|
||||||
Image ref_image;
|
Image ref_image;
|
||||||
|
|
|
@ -38,10 +38,17 @@ VideoWriter::~VideoWriter() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int VideoWriter::Reset() {
|
int VideoWriter::Reset(const char* new_path) {
|
||||||
/* Common variables reset */
|
/* Common variables reset */
|
||||||
|
|
||||||
|
/* If there is a new path, use it */
|
||||||
|
if(new_path != NULL) {
|
||||||
|
path = new_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reset frame counter */
|
||||||
frame_count = 0;
|
frame_count = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,8 +98,6 @@ X264MP4Writer::~X264MP4Writer() {
|
||||||
if(bOpen)
|
if(bOpen)
|
||||||
Close();
|
Close();
|
||||||
|
|
||||||
//x264_picture_clean(&x264picout);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int X264MP4Writer::Open() {
|
int X264MP4Writer::Open() {
|
||||||
|
@ -184,9 +189,9 @@ int X264MP4Writer::Close() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int X264MP4Writer::Reset() {
|
int X264MP4Writer::Reset(const char* new_path) {
|
||||||
|
|
||||||
VideoWriter::Reset();
|
VideoWriter::Reset(new_path);
|
||||||
|
|
||||||
/* Close the encoder and file */
|
/* Close the encoder and file */
|
||||||
if(bOpen)
|
if(bOpen)
|
||||||
|
@ -345,6 +350,8 @@ void X264MP4Writer::x264encodeloop(bool bFlush) {
|
||||||
/* Handle the previous frame */
|
/* Handle the previous frame */
|
||||||
if(!bFirstFrame) {
|
if(!bFirstFrame) {
|
||||||
|
|
||||||
|
buffer.clear();
|
||||||
|
|
||||||
/* Process the NALs for the previous frame */
|
/* Process the NALs for the previous frame */
|
||||||
for(unsigned int i=0; i < prevnals.size(); i++) {
|
for(unsigned int i=0; i < prevnals.size(); i++) {
|
||||||
Debug(9,"Processing NAL: Type %d Size %d",prevnals[i].i_type,prevnals[i].i_payload);
|
Debug(9,"Processing NAL: Type %d Size %d",prevnals[i].i_type,prevnals[i].i_payload);
|
||||||
|
@ -393,10 +400,10 @@ void X264MP4Writer::x264encodeloop(bool bFlush) {
|
||||||
/* Update the payload pointers */
|
/* Update the payload pointers */
|
||||||
/* This is done in a separate loop because the previous loop might reallocate memory when appending,
|
/* This is done in a separate loop because the previous loop might reallocate memory when appending,
|
||||||
making the pointers invalid */
|
making the pointers invalid */
|
||||||
unsigned int payload_head = 0;
|
unsigned int payload_offset = 0;
|
||||||
for(unsigned int i=0;i<prevnals.size();i++) {
|
for(unsigned int i=0;i<prevnals.size();i++) {
|
||||||
prevnals[i].p_payload = prevpayload.head() + payload_head;
|
prevnals[i].p_payload = prevpayload.head() + payload_offset;
|
||||||
payload_head += nals[i].i_payload;
|
payload_offset += nals[i].i_payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We need this for the next frame */
|
/* We need this for the next frame */
|
||||||
|
@ -426,6 +433,8 @@ int ParseEncoderParameters(const char* str, std::vector<EncoderParameter_t>* vec
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec->clear();
|
||||||
|
|
||||||
if(str[0] == 0) {
|
if(str[0] == 0) {
|
||||||
/* Empty */
|
/* Empty */
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -438,8 +447,6 @@ int ParseEncoderParameters(const char* str, std::vector<EncoderParameter_t>* vec
|
||||||
unsigned int lineno = 0;
|
unsigned int lineno = 0;
|
||||||
EncoderParameter_t param;
|
EncoderParameter_t param;
|
||||||
|
|
||||||
vec->clear();
|
|
||||||
|
|
||||||
while(std::getline(ss, line) ) {
|
while(std::getline(ss, line) ) {
|
||||||
lineno++;
|
lineno++;
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ public:
|
||||||
virtual int Encode(const Image* img, const unsigned int frame_time) = 0;
|
virtual int Encode(const Image* img, const unsigned int frame_time) = 0;
|
||||||
virtual int Open() = 0;
|
virtual int Open() = 0;
|
||||||
virtual int Close() = 0;
|
virtual int Close() = 0;
|
||||||
virtual int Reset();
|
virtual int Reset(const char* new_path = NULL);
|
||||||
|
|
||||||
const char* GetContainer() const {
|
const char* GetContainer() const {
|
||||||
return container.c_str();
|
return container.c_str();
|
||||||
|
@ -166,7 +166,7 @@ public:
|
||||||
int Encode(const Image* img, const unsigned int frame_time);
|
int Encode(const Image* img, const unsigned int frame_time);
|
||||||
int Open();
|
int Open();
|
||||||
int Close();
|
int Close();
|
||||||
int Reset();
|
int Reset(const char* new_path = NULL);
|
||||||
|
|
||||||
};
|
};
|
||||||
#endif // HAVE_LIBX264 && HAVE_LIBMP4V2 && HAVE_LIBAVUTIL && HAVE_LIBSWSCALE
|
#endif // HAVE_LIBX264 && HAVE_LIBMP4V2 && HAVE_LIBAVUTIL && HAVE_LIBSWSCALE
|
||||||
|
|
|
@ -418,13 +418,13 @@ $savejpegopts = array(
|
||||||
"Disabled" => 0,
|
"Disabled" => 0,
|
||||||
"Frames only" => 1,
|
"Frames only" => 1,
|
||||||
"Analysis images only (if available)" => 2,
|
"Analysis images only (if available)" => 2,
|
||||||
"Frames + analysis images (if available)" => 3
|
"Frames + Analysis images (if available)" => 3
|
||||||
);
|
);
|
||||||
|
|
||||||
$videowriteropts = array(
|
$videowriteropts = array(
|
||||||
"Disabled" => 0,
|
"Disabled" => 0,
|
||||||
"X264 : MP4V2" => 1,
|
"X264 : MP4V2" => 1
|
||||||
"H264 Passthrough : MP4V2 (not implemented)" => 2
|
// "H264 Passthrough : MP4V2 (not implemented)" => 2
|
||||||
);
|
);
|
||||||
|
|
||||||
xhtmlHeaders(__FILE__, $SLANG['Monitor']." - ".validHtmlStr($monitor['Name']) );
|
xhtmlHeaders(__FILE__, $SLANG['Monitor']." - ".validHtmlStr($monitor['Name']) );
|
||||||
|
|
Loading…
Reference in New Issue