Merge branch 'master' into multistream
This commit is contained in:
commit
1f9d3c46aa
|
@ -1 +1 @@
|
||||||
Subproject commit 1b40f1661f93f50fd5805f239d1e466a3bcf888f
|
Subproject commit cd7fd49becad6010a1b8466bfebbd93999a39878
|
|
@ -3306,9 +3306,9 @@ void neon32_armv7_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* r
|
||||||
__attribute__((noinline)) void neon64_armv8_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
|
__attribute__((noinline)) void neon64_armv8_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
|
||||||
#if (defined(__aarch64__) && !defined(ZM_STRIP_NEON))
|
#if (defined(__aarch64__) && !defined(ZM_STRIP_NEON))
|
||||||
static double current_blendpercent = 0.0;
|
static double current_blendpercent = 0.0;
|
||||||
|
static int8_t divider = 0;
|
||||||
|
|
||||||
if (current_blendpercent != blendpercent) {
|
if (current_blendpercent != blendpercent) {
|
||||||
static int8_t divider = 0;
|
|
||||||
/* Attempt to match the blending percent to one of the possible values */
|
/* Attempt to match the blending percent to one of the possible values */
|
||||||
if(blendpercent < 2.34375) {
|
if(blendpercent < 2.34375) {
|
||||||
// 1.5625% blending
|
// 1.5625% blending
|
||||||
|
|
|
@ -2145,7 +2145,10 @@ bool Monitor::Analyse() {
|
||||||
name.c_str(), analysis_image_count, event->Id(), event->Frames(), event->AlarmFrames());
|
name.c_str(), analysis_image_count, event->Id(), event->Frames(), event->AlarmFrames());
|
||||||
//if ( function != MOCORD || event_close_mode == CLOSE_ALARM || event->Cause() == SIGNAL_CAUSE )
|
//if ( function != MOCORD || event_close_mode == CLOSE_ALARM || event->Cause() == SIGNAL_CAUSE )
|
||||||
if (event) {
|
if (event) {
|
||||||
if ((recording == RECORDING_ONMOTION) || (event_close_mode == CLOSE_ALARM) ) {
|
if ((recording == RECORDING_ONMOTION)
|
||||||
|
||
|
||||||
|
(event_close_mode == CLOSE_ALARM || event_close_mode==CLOSE_IDLE)
|
||||||
|
) {
|
||||||
shared_data->state = state = IDLE;
|
shared_data->state = state = IDLE;
|
||||||
Info("%s: %03d - Closing event %" PRIu64 ", alarm end%s",
|
Info("%s: %03d - Closing event %" PRIu64 ", alarm end%s",
|
||||||
name.c_str(), analysis_image_count, event->Id(), (function==MOCORD)?", section truncated":"" );
|
name.c_str(), analysis_image_count, event->Id(), (function==MOCORD)?", section truncated":"" );
|
||||||
|
|
|
@ -120,16 +120,18 @@ std::string Join(const StringVector &values, const std::string &delim) {
|
||||||
std::string stringtf(const char* format, ...) {
|
std::string stringtf(const char* format, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
int size = vsnprintf(nullptr, 0, format, args) + 1; // Extra space for '\0'
|
|
||||||
va_end(args);
|
|
||||||
|
|
||||||
if (size <= 0) {
|
|
||||||
throw std::runtime_error("Error during formatting.");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<char[]> buf(new char[size]);
|
|
||||||
va_list args2;
|
va_list args2;
|
||||||
va_copy(args2, args);
|
va_copy(args2, args);
|
||||||
|
int size = vsnprintf(nullptr, 0, format, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
if (size < 0) {
|
||||||
|
va_end(args2);
|
||||||
|
throw std::runtime_error("Error during formatting.");
|
||||||
|
}
|
||||||
|
size += 1; // Extra space for '\0'
|
||||||
|
|
||||||
|
std::unique_ptr<char[]> buf(new char[size]);
|
||||||
vsnprintf(buf.get(), size, format, args2);
|
vsnprintf(buf.get(), size, format, args2);
|
||||||
va_end(args2);
|
va_end(args2);
|
||||||
|
|
||||||
|
|
|
@ -501,8 +501,16 @@ bool VideoStore::open() {
|
||||||
Debug(1, "using movflags %s", movflags_entry->value);
|
Debug(1, "using movflags %s", movflags_entry->value);
|
||||||
}
|
}
|
||||||
if ((ret = avformat_write_header(oc, &opts)) < 0) {
|
if ((ret = avformat_write_header(oc, &opts)) < 0) {
|
||||||
Warning("Unable to set movflags trying with defaults.");
|
// we crash if we try again
|
||||||
ret = avformat_write_header(oc, nullptr);
|
if (ENOSPC != ret) {
|
||||||
|
Warning("Unable to set movflags trying with defaults.%d %s",
|
||||||
|
ret, av_make_error_string(ret).c_str());
|
||||||
|
|
||||||
|
ret = avformat_write_header(oc, nullptr);
|
||||||
|
Debug(1, "Done %d", ret);
|
||||||
|
} else {
|
||||||
|
Error("ENOSPC. fail");
|
||||||
|
}
|
||||||
} else if (av_dict_count(opts) != 0) {
|
} else if (av_dict_count(opts) != 0) {
|
||||||
Info("some options not used, turn on debugging for a list.");
|
Info("some options not used, turn on debugging for a list.");
|
||||||
AVDictionaryEntry *e = nullptr;
|
AVDictionaryEntry *e = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue