Merge pull request #3226 from Carbenium/log-format
Fix logging format string mismatches
This commit is contained in:
commit
6a1a94cece
|
@ -24,7 +24,8 @@ void AnalysisThread::Start() {
|
|||
void AnalysisThread::Run() {
|
||||
Microseconds analysis_rate = Microseconds(monitor_->GetAnalysisRate());
|
||||
Seconds analysis_update_delay = Seconds(monitor_->GetAnalysisUpdateDelay());
|
||||
Debug(2, "AnalysisThread::Run() have update delay %d", analysis_update_delay);
|
||||
Debug(2, "AnalysisThread::Run() has an update delay of %" PRId64 "s",
|
||||
static_cast<int64>(analysis_update_delay.count()));
|
||||
|
||||
monitor_->UpdateAdaptiveSkip();
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ void cURLCamera::Initialise() {
|
|||
/* cURL initialization */
|
||||
CURLcode cRet = (*curl_global_init_f)(CURL_GLOBAL_ALL);
|
||||
if(cRet != CURLE_OK) {
|
||||
Error("libcurl initialization failed: ", (*curl_easy_strerror_f)(cRet));
|
||||
Error("libcurl initialization failed: %s", (*curl_easy_strerror_f)(cRet));
|
||||
dlclose(curl_lib);
|
||||
return;
|
||||
}
|
||||
|
@ -432,7 +432,7 @@ void* cURLCamera::thread_func() {
|
|||
/* Set URL */
|
||||
cRet = (*curl_easy_setopt_f)(c, CURLOPT_URL, mPath.c_str());
|
||||
if(cRet != CURLE_OK) {
|
||||
Error("Failed setting libcurl URL: %s", *(curl_easy_strerror_f)(cRet));
|
||||
Error("Failed setting libcurl URL: %s", (*curl_easy_strerror_f)(cRet));
|
||||
tRet = -52;
|
||||
return (void*)tRet;
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ void* cURLCamera::thread_func() {
|
|||
/* Progress callback */
|
||||
cRet = (*curl_easy_setopt_f)(c, CURLOPT_NOPROGRESS, 0);
|
||||
if(cRet != CURLE_OK) {
|
||||
Error("Failed enabling libcurl progress callback function: %s", (*curl_easy_strerror_f)(cRet));
|
||||
Error("Failed enabling libcurl progress callback function: %s", (*curl_easy_strerror_f)(cRet));
|
||||
tRet = -57;
|
||||
return (void*)tRet;
|
||||
}
|
||||
|
|
|
@ -39,8 +39,6 @@ typedef std::uint32_t uint32;
|
|||
typedef std::uint16_t uint16;
|
||||
typedef std::uint8_t uint8;
|
||||
|
||||
#define SZFMTD "%" PRIuPTR
|
||||
|
||||
#ifndef FALLTHROUGH
|
||||
#if defined(__clang__)
|
||||
#define FALLTHROUGH [[clang::fallthrough]]
|
||||
|
|
|
@ -88,12 +88,10 @@ Event::Event(
|
|||
localtime_r(&now.tv_sec, &tm_info);
|
||||
strftime(buffer_now, 26, "%Y:%m:%d %H:%M:%S", &tm_info);
|
||||
|
||||
Error(
|
||||
"StartDateTime in the future starttime %ld.%06ld >? now %ld.%06ld difference %d\nstarttime: %s\nnow: %s",
|
||||
start_time.tv_sec, start_time.tv_usec, now.tv_sec, now.tv_usec,
|
||||
(now.tv_sec-start_time.tv_sec),
|
||||
buffer, buffer_now
|
||||
);
|
||||
Error("StartDateTime in the future starttime %ld.%06ld >? now %ld.%06ld difference %" PRIi64 "\nstarttime: %s\nnow: %s",
|
||||
start_time.tv_sec, start_time.tv_usec, now.tv_sec, now.tv_usec,
|
||||
static_cast<int64>(now.tv_sec - start_time.tv_sec),
|
||||
buffer, buffer_now);
|
||||
start_time = now;
|
||||
}
|
||||
|
||||
|
@ -241,7 +239,11 @@ Event::~Event() {
|
|||
}
|
||||
struct DeltaTimeval delta_time;
|
||||
DELTA_TIMEVAL(delta_time, end_time, start_time, DT_PREC_2);
|
||||
Debug(2, "start_time:%d.%d end_time%d.%d", start_time.tv_sec, start_time.tv_usec, end_time.tv_sec, end_time.tv_usec);
|
||||
Debug(2, "start_time: %" PRIi64 ".% " PRIi64 " end_time: %" PRIi64 ".%" PRIi64,
|
||||
static_cast<int64>(start_time.tv_sec),
|
||||
static_cast<int64>(start_time.tv_usec),
|
||||
static_cast<int64>(end_time.tv_sec),
|
||||
static_cast<int64>(end_time.tv_usec));
|
||||
|
||||
if (frame_data.size()) WriteDbFrames();
|
||||
|
||||
|
@ -360,7 +362,7 @@ void Event::updateNotes(const StringSetMap &newNoteSetMap) {
|
|||
std::string notes;
|
||||
createNotes(notes);
|
||||
|
||||
Debug(2, "Updating notes for event %d, '%s'", id, notes.c_str());
|
||||
Debug(2, "Updating notes for event %" PRIu64 ", '%s'", id, notes.c_str());
|
||||
#if USE_PREPARED_SQL
|
||||
static MYSQL_STMT *stmt = 0;
|
||||
|
||||
|
@ -447,7 +449,7 @@ void Event::WriteDbFrames() {
|
|||
"`Blobs`,`MinBlobSize`, `MaxBlobSize`, "
|
||||
"`MinX`, `MinY`, `MaxX`, `MaxY`,`Score`) VALUES ";
|
||||
|
||||
Debug(1, "Inserting %d frames", frame_data.size());
|
||||
Debug(1, "Inserting %zu frames", frame_data.size());
|
||||
while (frame_data.size()) {
|
||||
Frame *frame = frame_data.front();
|
||||
frame_data.pop();
|
||||
|
@ -460,7 +462,7 @@ void Event::WriteDbFrames() {
|
|||
frame->delta.fsec,
|
||||
frame->score);
|
||||
if (config.record_event_stats and frame->zone_stats.size()) {
|
||||
Debug(1, "ZOne stats size for frame %d: %d", frame->frame_id, frame->zone_stats.size());
|
||||
Debug(1, "Zone stats size for frame %d: %zu", frame->frame_id, frame->zone_stats.size());
|
||||
for (ZoneStats &stats : frame->zone_stats) {
|
||||
stats_insert_sql += stringtf("\n(%" PRIu64 ",%d,%u,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%u),",
|
||||
id, frame->frame_id,
|
||||
|
@ -574,12 +576,12 @@ void Event::AddFrame(
|
|||
|
||||
struct DeltaTimeval delta_time;
|
||||
DELTA_TIMEVAL(delta_time, timestamp, start_time, DT_PREC_2);
|
||||
Debug(1, "Frame delta is %d.%d - %d.%d = %d.%d, score %u zone_stats.size %u",
|
||||
start_time.tv_sec, start_time.tv_usec,
|
||||
timestamp.tv_sec, timestamp.tv_usec,
|
||||
delta_time.sec, delta_time.fsec,
|
||||
score,
|
||||
zone_stats.size());
|
||||
Debug(1, "Frame delta is %" PRIi64 ".%" PRIi64 " - %" PRIi64 ".%" PRIi64 " = %lu.%lu, score %u zone_stats.size %zu",
|
||||
static_cast<int64>(start_time.tv_sec), static_cast<int64>(start_time.tv_usec),
|
||||
static_cast<int64>(timestamp.tv_sec), static_cast<int64>(timestamp.tv_usec),
|
||||
delta_time.sec, delta_time.fsec,
|
||||
score,
|
||||
zone_stats.size());
|
||||
|
||||
// The idea is to write out 1/sec
|
||||
frame_data.push(new Frame(id, frames, frame_type, timestamp, delta_time, score, zone_stats));
|
||||
|
@ -592,8 +594,8 @@ void Event::AddFrame(
|
|||
or
|
||||
( fps and (frame_data.size() > fps) )
|
||||
) {
|
||||
Debug(1, "Adding %d frames to DB because write_to_db:%d or frames > analysis fps %f or BULK(%d)",
|
||||
frame_data.size(), write_to_db, fps, (frame_type==BULK));
|
||||
Debug(1, "Adding %zu frames to DB because write_to_db:%d or frames > analysis fps %f or BULK(%d)",
|
||||
frame_data.size(), write_to_db, fps, (frame_type == BULK));
|
||||
WriteDbFrames();
|
||||
last_db_frame = frames;
|
||||
|
||||
|
@ -611,8 +613,8 @@ void Event::AddFrame(
|
|||
);
|
||||
dbQueue.push(std::move(sql));
|
||||
} else {
|
||||
Debug(1, "Not Adding %d frames to DB because write_to_db:%d or frames > analysis fps %f or BULK",
|
||||
frame_data.size(), write_to_db, fps);
|
||||
Debug(1, "Not Adding %zu frames to DB because write_to_db:%d or frames > analysis fps %f or BULK",
|
||||
frame_data.size(), write_to_db, fps);
|
||||
} // end if frame_type == BULK
|
||||
} // end if db_frame
|
||||
|
||||
|
|
|
@ -71,14 +71,14 @@ bool EventStream::loadInitialEventData(int monitor_id, time_t event_time) {
|
|||
//Info( "eft %d > et %d", event_data->frames[i].timestamp, event_time );
|
||||
if ( event_data->frames[i].timestamp >= event_time ) {
|
||||
curr_frame_id = i+1;
|
||||
Debug(3, "Set curr_stream_time:%.2f, curr_frame_id:%d", curr_stream_time, curr_frame_id);
|
||||
Debug(3, "Set curr_stream_time:%.2f, curr_frame_id:%ld", curr_stream_time, curr_frame_id);
|
||||
break;
|
||||
}
|
||||
} // end foreach frame
|
||||
Debug(3, "Skipping %ld frames", event_data->frame_count);
|
||||
} else {
|
||||
Warning("Requested an event time less than the start of the event. event_time %.2f < start_time %.2f",
|
||||
event_time, event_data->start_time);
|
||||
Warning("Requested an event time less than the start of the event. event_time %" PRIi64 " < start_time %" PRIi64,
|
||||
static_cast<int64>(event_time), static_cast<int64>(event_data->start_time));
|
||||
}
|
||||
} // end if have a start time
|
||||
return true;
|
||||
|
@ -92,7 +92,7 @@ bool EventStream::loadInitialEventData(
|
|||
|
||||
if ( init_frame_id ) {
|
||||
if ( init_frame_id >= event_data->frame_count ) {
|
||||
Error("Invalid frame id specified. %d > %d", init_frame_id, event_data->frame_count);
|
||||
Error("Invalid frame id specified. %d > %lu", init_frame_id, event_data->frame_count);
|
||||
curr_stream_time = event_data->start_time;
|
||||
curr_frame_id = 1;
|
||||
} else {
|
||||
|
@ -119,7 +119,7 @@ bool EventStream::loadEventData(uint64_t event_id) {
|
|||
}
|
||||
|
||||
if ( !mysql_num_rows(result) ) {
|
||||
Fatal("Unable to load event %d, not found in DB", event_id);
|
||||
Fatal("Unable to load event %" PRIu64 ", not found in DB", event_id);
|
||||
}
|
||||
|
||||
MYSQL_ROW dbrow = mysql_fetch_row(result);
|
||||
|
@ -334,7 +334,10 @@ void EventStream::processCommand(const CmdMsg *msg) {
|
|||
curr_frame_id = 1;
|
||||
} else {
|
||||
Debug(1, "mode is %s, current frame is %ld, frame count is %ld, last frame id is %ld",
|
||||
StreamMode_Strings[(int)mode].c_str(), curr_frame_id, event_data->frame_count );
|
||||
StreamMode_Strings[(int) mode].c_str(),
|
||||
curr_frame_id,
|
||||
event_data->frame_count,
|
||||
event_data->last_frame_id);
|
||||
}
|
||||
|
||||
replay_rate = ZM_RATE_BASE;
|
||||
|
@ -389,7 +392,7 @@ void EventStream::processCommand(const CmdMsg *msg) {
|
|||
step = 1;
|
||||
if ( (unsigned int)curr_frame_id < event_data->last_frame_id )
|
||||
curr_frame_id += 1;
|
||||
Debug(1, "Got SLOWFWD command new frame id %d", curr_frame_id);
|
||||
Debug(1, "Got SLOWFWD command new frame id %ld", curr_frame_id);
|
||||
break;
|
||||
case CMD_SLOWREV :
|
||||
paused = true;
|
||||
|
@ -397,7 +400,7 @@ void EventStream::processCommand(const CmdMsg *msg) {
|
|||
step = -1;
|
||||
curr_frame_id -= 1;
|
||||
if ( curr_frame_id < 1 ) curr_frame_id = 1;
|
||||
Debug(1, "Got SLOWREV command new frame id %d", curr_frame_id);
|
||||
Debug(1, "Got SLOWREV command new frame id %ld", curr_frame_id);
|
||||
break;
|
||||
case CMD_FASTREV :
|
||||
Debug(1, "Got FAST REV command");
|
||||
|
@ -526,7 +529,7 @@ void EventStream::processCommand(const CmdMsg *msg) {
|
|||
}
|
||||
|
||||
curr_stream_time = event_data->frames[curr_frame_id-1].timestamp;
|
||||
Debug(1, "Got SEEK command, to %f (new current frame id: %d offset %f)",
|
||||
Debug(1, "Got SEEK command, to %f (new current frame id: %ld offset %f)",
|
||||
offset, curr_frame_id, event_data->frames[curr_frame_id-1].offset);
|
||||
send_frame = true;
|
||||
break;
|
||||
|
@ -569,7 +572,7 @@ void EventStream::processCommand(const CmdMsg *msg) {
|
|||
DataMsg status_msg;
|
||||
status_msg.msg_type = MSG_DATA_EVENT;
|
||||
memcpy(&status_msg.msg_data, &status_data, sizeof(status_data));
|
||||
Debug(1, "Size of msg %d", sizeof(status_data));
|
||||
Debug(1, "Size of msg %zu", sizeof(status_data));
|
||||
if ( sendto(sd, &status_msg, sizeof(status_msg), MSG_DONTWAIT, (sockaddr *)&rem_addr, sizeof(rem_addr)) < 0 ) {
|
||||
//if ( errno != EAGAIN )
|
||||
{
|
||||
|
@ -604,7 +607,7 @@ bool EventStream::checkEventLoaded() {
|
|||
event_data->monitor_id, event_data->event_id);
|
||||
} else {
|
||||
// No event change required
|
||||
Debug(3, "No event change required, as curr frame %d <=> event frames %d",
|
||||
Debug(3, "No event change required, as curr frame %ld <=> event frames %lu",
|
||||
curr_frame_id, event_data->frame_count);
|
||||
return false;
|
||||
}
|
||||
|
@ -638,7 +641,7 @@ bool EventStream::checkEventLoaded() {
|
|||
curr_frame_id = event_data->last_frame_id;
|
||||
else
|
||||
curr_frame_id = 1;
|
||||
Debug(2, "New frame id = %d", curr_frame_id);
|
||||
Debug(2, "New frame id = %ld", curr_frame_id);
|
||||
return true;
|
||||
} else {
|
||||
Debug(2, "No next event loaded using %s. Pausing", sql.c_str());
|
||||
|
@ -666,13 +669,13 @@ Image * EventStream::getImage( ) {
|
|||
static char filepath[PATH_MAX];
|
||||
|
||||
snprintf(filepath, sizeof(filepath), staticConfig.capture_file_format, event_data->path, curr_frame_id);
|
||||
Debug(2, "EventStream::getImage path(%s) from %s frame(%d) ", filepath, event_data->path, curr_frame_id);
|
||||
Debug(2, "EventStream::getImage path(%s) from %s frame(%ld) ", filepath, event_data->path, curr_frame_id);
|
||||
Image *image = new Image(filepath);
|
||||
return image;
|
||||
}
|
||||
|
||||
bool EventStream::sendFrame(int delta_us) {
|
||||
Debug(2, "Sending frame %d", curr_frame_id);
|
||||
Debug(2, "Sending frame %ld", curr_frame_id);
|
||||
|
||||
static char filepath[PATH_MAX];
|
||||
static struct stat filestat;
|
||||
|
@ -856,7 +859,7 @@ void EventStream::runStream() {
|
|||
|
||||
if ( !paused ) {
|
||||
// Figure out if we should send this frame
|
||||
Debug(3, "not paused at cur_frame_id (%d-1) mod frame_mod(%d)", curr_frame_id, frame_mod);
|
||||
Debug(3, "not paused at cur_frame_id (%ld-1) mod frame_mod(%d)", curr_frame_id, frame_mod);
|
||||
// If we are streaming and this frame is due to be sent
|
||||
// frame mod defaults to 1 and if we are going faster than max_fps will get multiplied by 2
|
||||
// so if it is 2, then we send every other frame, if is it 4 then every fourth frame, etc.
|
||||
|
@ -964,8 +967,8 @@ void EventStream::runStream() {
|
|||
// We assume that we are going forward and the next frame is in the future.
|
||||
delta_us = frame_data->offset * 1000000 - (now_usec-start_usec);
|
||||
// - (now_usec - start_usec);
|
||||
Debug(2, "New delta_us now %" PRIu64 " - start %" PRIu64 " = %d offset %" PRId64 " - elapsed = %dusec",
|
||||
now_usec, start_usec, now_usec-start_usec, frame_data->offset * 1000000, delta_us);
|
||||
Debug(2, "New delta_us now %" PRIu64 " - start %" PRIu64 " = %" PRIu64 " offset %f - elapsed = %dusec",
|
||||
now_usec, start_usec, static_cast<uint64>(now_usec - start_usec), frame_data->offset * 1000000, delta_us);
|
||||
} else {
|
||||
Debug(2, "No last frame_offset, no sleep");
|
||||
delta_us = 0;
|
||||
|
@ -1054,12 +1057,12 @@ bool EventStream::send_file(const char *filepath) {
|
|||
}
|
||||
if ( !filestat.st_size ) {
|
||||
fclose(fdj); /* Close the file handle */
|
||||
Info("File size is zero. Unable to send raw frame %u: %s", curr_frame_id);
|
||||
Info("File size is zero. Unable to send raw frame %ld: %s", curr_frame_id, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
if ( 0 > fprintf(stdout, "Content-Length: %d\r\n\r\n", (int)filestat.st_size) ) {
|
||||
fclose(fdj); /* Close the file handle */
|
||||
Info("Unable to send raw frame %u: %s", curr_frame_id, strerror(errno));
|
||||
Info("Unable to send raw frame %ld: %s", curr_frame_id, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
int rc = zm_sendfile(fileno(stdout), fileno(fdj), 0, (int)filestat.st_size);
|
||||
|
@ -1068,12 +1071,12 @@ bool EventStream::send_file(const char *filepath) {
|
|||
fclose(fdj); /* Close the file handle */
|
||||
return true;
|
||||
}
|
||||
Warning("Unable to send raw frame %u: %s rc %d", curr_frame_id, strerror(errno), rc);
|
||||
Warning("Unable to send raw frame %ld: %s rc %d", curr_frame_id, strerror(errno), rc);
|
||||
#endif
|
||||
img_buffer_size = fread(img_buffer, 1, sizeof(temp_img_buffer), fdj);
|
||||
fclose(fdj); /* Close the file handle */
|
||||
if ( !img_buffer_size ) {
|
||||
Info("Unable to read raw frame %u: %s", curr_frame_id, strerror(errno));
|
||||
Info("Unable to read raw frame %ld: %s", curr_frame_id, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1082,13 +1085,13 @@ bool EventStream::send_file(const char *filepath) {
|
|||
|
||||
bool EventStream::send_buffer(uint8_t* buffer, int size) {
|
||||
if ( 0 > fprintf(stdout, "Content-Length: %d\r\n\r\n", size) ) {
|
||||
Info("Unable to send raw frame %u: %s", curr_frame_id, strerror(errno));
|
||||
Info("Unable to send raw frame %ld: %s", curr_frame_id, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
int rc = fwrite(buffer, size, 1, stdout);
|
||||
|
||||
if ( 1 != rc ) {
|
||||
Error("Unable to send raw frame %u: %s %d", curr_frame_id, strerror(errno), rc);
|
||||
Error("Unable to send raw frame %ld: %s %d", curr_frame_id, strerror(errno), rc);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -66,7 +66,7 @@ void log_libav_callback(void *ptr, int level, const char *fmt, va_list vargs) {
|
|||
if (static_cast<size_t>(length) > sizeof(logString)-1) length = sizeof(logString)-1;
|
||||
// ffmpeg logs have a carriage return, so replace it with terminator
|
||||
logString[length-1] = 0;
|
||||
log->logPrint(false, __FILE__, __LINE__, log_level, logString);
|
||||
log->logPrint(false, __FILE__, __LINE__, log_level, "%s", logString);
|
||||
} else {
|
||||
log->logPrint(false, __FILE__, __LINE__, AV_LOG_ERROR, "Can't encode log from av. fmt was %s", fmt);
|
||||
}
|
||||
|
@ -636,8 +636,7 @@ int zm_resample_audio(
|
|||
av_make_error_string(ret).c_str());
|
||||
return 0;
|
||||
}
|
||||
Debug(3,"swr_get_delay %d",
|
||||
swr_get_delay(resample_ctx, out_frame->sample_rate));
|
||||
Debug(3, "swr_get_delay %" PRIi64, swr_get_delay(resample_ctx, out_frame->sample_rate));
|
||||
#else
|
||||
#if defined(HAVE_LIBAVRESAMPLE)
|
||||
if (!in_frame) {
|
||||
|
|
|
@ -308,15 +308,13 @@ void zm_dump_codec(const AVCodecContext *codec);
|
|||
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||
void zm_dump_codecpar(const AVCodecParameters *par);
|
||||
#endif
|
||||
#define zm_dump_frame(frame, text) Debug(1, "%s: format %d %s sample_rate %" PRIu32 " nb_samples %d channels %d" \
|
||||
" duration %" PRId64 \
|
||||
" layout %d pts %" PRId64, \
|
||||
#define zm_dump_frame(frame, text) Debug(1, "%s: format %d %s sample_rate %" PRIu32 " nb_samples %d" \
|
||||
" layout %" PRIu64 " pts %" PRId64, \
|
||||
text, \
|
||||
frame->format, \
|
||||
av_get_sample_fmt_name((AVSampleFormat)frame->format), \
|
||||
frame->sample_rate, \
|
||||
frame->nb_samples, \
|
||||
0, 0, \
|
||||
frame->channel_layout, \
|
||||
frame->pts \
|
||||
);
|
||||
|
|
|
@ -623,7 +623,9 @@ int FfmpegCamera::FfmpegInterruptCallback(void *ctx) {
|
|||
}
|
||||
time_t now = time(nullptr);
|
||||
if (now - start_read_time > 10) {
|
||||
Debug(1, "timeout in ffmpeg camera now %d - %d > 10", now, start_read_time);
|
||||
Debug(1, "timeout in ffmpeg camera now %" PRIi64 " - %" PRIi64 " > 10",
|
||||
static_cast<int64>(now),
|
||||
static_cast<int64>(start_read_time));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -647,7 +647,7 @@ void Image::AssignDirect(
|
|||
return;
|
||||
}
|
||||
|
||||
unsigned int new_buffer_size = p_width * p_height * p_colours;
|
||||
size_t new_buffer_size = p_width * p_height * p_colours;
|
||||
|
||||
if ( buffer_size < new_buffer_size ) {
|
||||
Error("Attempt to directly assign buffer from an undersized buffer of size: %zu, needed %dx%d*%d colours = %zu",
|
||||
|
|
|
@ -227,11 +227,11 @@ int LibvlcCamera::PrimeCapture() {
|
|||
|
||||
if ( opVect.size() > 0 ) {
|
||||
mOptArgV = new char*[opVect.size()];
|
||||
Debug(2, "Number of Options: %d",opVect.size());
|
||||
Debug(2, "Number of Options: %zu", 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());
|
||||
Debug(2, "set option %zu to '%s'", i, opVect[i].c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -319,9 +319,9 @@ void LibvlcCamera::log_callback(void *ptr, int level, const libvlc_log_t *ctx, c
|
|||
}
|
||||
|
||||
if ( log ) {
|
||||
char logString[8192];
|
||||
vsnprintf(logString, sizeof(logString)-1, fmt, vargs);
|
||||
log->logPrint(false, __FILE__, __LINE__, log_level, logString);
|
||||
char logString[8192];
|
||||
vsnprintf(logString, sizeof(logString) - 1, fmt, vargs);
|
||||
log->logPrint(false, __FILE__, __LINE__, log_level, "%s", logString);
|
||||
}
|
||||
}
|
||||
#endif // HAVE_LIBVLC
|
||||
|
|
|
@ -44,7 +44,7 @@ static void GotFrameBufferUpdateCallback(rfbClient *rfb, int x, int y, int w, in
|
|||
}
|
||||
|
||||
static char* GetPasswordCallback(rfbClient* cl) {
|
||||
Debug(1, "Getcredentials: %s", (*rfbClientGetClientData_f)(cl, &TAG_1));
|
||||
Debug(1, "Getcredentials: %s", static_cast<char *>((*rfbClientGetClientData_f)(cl, &TAG_1)));
|
||||
return strdup((const char *)(*rfbClientGetClientData_f)(cl, &TAG_1));
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,9 @@ static rfbCredential* GetCredentialsCallback(rfbClient* cl, int credentialType){
|
|||
}
|
||||
rfbCredential *c = (rfbCredential *)malloc(sizeof(rfbCredential));
|
||||
|
||||
Debug(1, "Getcredentials: %s:%s", (*rfbClientGetClientData_f)(cl, &TAG_1), (*rfbClientGetClientData_f)(cl, &TAG_2));
|
||||
Debug(1, "Getcredentials: %s:%s",
|
||||
static_cast<char *>((*rfbClientGetClientData_f)(cl, &TAG_1)),
|
||||
static_cast<char *>((*rfbClientGetClientData_f)(cl, &TAG_2)));
|
||||
c->userCredential.password = strdup((const char *)(*rfbClientGetClientData_f)(cl, &TAG_1));
|
||||
c->userCredential.username = strdup((const char *)(*rfbClientGetClientData_f)(cl, &TAG_2));
|
||||
return c;
|
||||
|
|
|
@ -665,7 +665,7 @@ LocalCamera::LocalCamera(
|
|||
unsigned int pSize = avpicture_get_size(imagePixFormat, width, height);
|
||||
#endif
|
||||
if ( pSize != imagesize ) {
|
||||
Fatal("Image size mismatch. Required: %d Available: %u", pSize, imagesize);
|
||||
Fatal("Image size mismatch. Required: %d Available: %llu", pSize, imagesize);
|
||||
}
|
||||
|
||||
imgConversionContext = sws_getContext(
|
||||
|
|
|
@ -415,7 +415,7 @@ void Logger::closeSyslog() {
|
|||
(void) closelog();
|
||||
}
|
||||
|
||||
void Logger::logPrint(bool hex, const char * const filepath, const int line, const int level, const char *fstring, ...) {
|
||||
void Logger::logPrint(bool hex, const char *filepath, int line, int level, const char *fstring, ...) {
|
||||
if (level > mEffectiveLevel) return;
|
||||
if (level < PANIC || level > DEBUG9)
|
||||
Panic("Invalid logger level %d", level);
|
||||
|
|
|
@ -173,8 +173,13 @@ private:
|
|||
void closeSyslog();
|
||||
void closeDatabase();
|
||||
|
||||
public:
|
||||
void logPrint(bool hex, const char * const filepath, const int line, const int level, const char *fstring, ...);
|
||||
public:
|
||||
void logPrint(bool hex,
|
||||
const char *filepath,
|
||||
int line,
|
||||
int level,
|
||||
const char *fstring,
|
||||
...) __attribute__((format(printf, 6, 7)));
|
||||
};
|
||||
|
||||
void logInit(const char *name, const Logger::Options &options=Logger::Options());
|
||||
|
|
|
@ -148,7 +148,7 @@ bool Monitor::MonitorLink::connect() {
|
|||
|
||||
mem_size = sizeof(SharedData) + sizeof(TriggerData);
|
||||
|
||||
Debug(1, "link.mem.size=%d", mem_size);
|
||||
Debug(1, "link.mem.size=%jd", mem_size);
|
||||
#if ZM_MEM_MAPPED
|
||||
map_fd = open(mem_file, O_RDWR, (mode_t)0600);
|
||||
if ( map_fd < 0 ) {
|
||||
|
@ -175,14 +175,14 @@ bool Monitor::MonitorLink::connect() {
|
|||
disconnect();
|
||||
return false;
|
||||
} else if ( map_stat.st_size < mem_size ) {
|
||||
Error("Got unexpected memory map file size %ld, expected %d", map_stat.st_size, mem_size);
|
||||
Error("Got unexpected memory map file size %ld, expected %jd", map_stat.st_size, mem_size);
|
||||
disconnect();
|
||||
return false;
|
||||
}
|
||||
|
||||
mem_ptr = (unsigned char *)mmap(nullptr, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, map_fd, 0);
|
||||
if ( mem_ptr == MAP_FAILED ) {
|
||||
Error("Can't map file %s (%d bytes) to memory: %s", mem_file, mem_size, strerror(errno));
|
||||
Error("Can't map file %s (%jd bytes) to memory: %s", mem_file, mem_size, strerror(errno));
|
||||
disconnect();
|
||||
return false;
|
||||
}
|
||||
|
@ -632,12 +632,17 @@ void Monitor::Load(MYSQL_ROW dbrow, bool load_zones=true, Purpose p = QUERY) {
|
|||
+ (image_buffer_count * image_size)
|
||||
+ 64; /* Padding used to permit aligning the images buffer to 64 byte boundary */
|
||||
|
||||
Debug(1, "mem.size(%d) SharedData=%d TriggerData=%d VideoStoreData=%d timestamps=%d images=%dx%d = %" PRId64 " total=%" PRId64,
|
||||
sizeof(mem_size),
|
||||
sizeof(SharedData), sizeof(TriggerData), sizeof(VideoStoreData),
|
||||
(image_buffer_count*sizeof(struct timeval)),
|
||||
image_buffer_count, image_size, (image_buffer_count*image_size),
|
||||
mem_size);
|
||||
Debug(1,
|
||||
"mem.size(%zu) SharedData=%zu TriggerData=%zu VideoStoreData=%zu timestamps=%zu images=%dx%" PRIi64 " = %" PRId64 " total=%jd",
|
||||
sizeof(mem_size),
|
||||
sizeof(SharedData),
|
||||
sizeof(TriggerData),
|
||||
sizeof(VideoStoreData),
|
||||
(image_buffer_count * sizeof(struct timeval)),
|
||||
image_buffer_count,
|
||||
image_size,
|
||||
(image_buffer_count * image_size),
|
||||
mem_size);
|
||||
|
||||
// Should maybe store this for later use
|
||||
std::string monitor_dir = stringtf("%s/%u", storage->Path(), id);
|
||||
|
@ -675,7 +680,7 @@ void Monitor::Load(MYSQL_ROW dbrow, bool load_zones=true, Purpose p = QUERY) {
|
|||
}
|
||||
} // end if purpose
|
||||
|
||||
Debug(1, "Loaded monitor %d(%s), %d zones", id, name.c_str(), zones.size());
|
||||
Debug(1, "Loaded monitor %d(%s), %zu zones", id, name.c_str(), zones.size());
|
||||
} // Monitor::Load(MYSQL_ROW dbrow, bool load_zones=true, Purpose p = QUERY)
|
||||
|
||||
void Monitor::LoadCamera() {
|
||||
|
@ -927,18 +932,18 @@ bool Monitor::connect() {
|
|||
if (purpose == CAPTURE) {
|
||||
// Allocate the size
|
||||
if (ftruncate(map_fd, mem_size) < 0) {
|
||||
Error("Can't extend memory map file %s to %d bytes: %s", mem_file, mem_size, strerror(errno));
|
||||
Error("Can't extend memory map file %s to %jd bytes: %s", mem_file, mem_size, strerror(errno));
|
||||
close(map_fd);
|
||||
map_fd = -1;
|
||||
return false;
|
||||
}
|
||||
} else if (map_stat.st_size == 0) {
|
||||
Error("Got empty memory map file size %ld, is the zmc process for this monitor running?", map_stat.st_size, mem_size);
|
||||
Error("Got empty memory map file size %ld, is the zmc process for this monitor running?", map_stat.st_size);
|
||||
close(map_fd);
|
||||
map_fd = -1;
|
||||
return false;
|
||||
} else {
|
||||
Error("Got unexpected memory map file size %ld, expected %d", map_stat.st_size, mem_size);
|
||||
Error("Got unexpected memory map file size %ld, expected %jd", map_stat.st_size, mem_size);
|
||||
close(map_fd);
|
||||
map_fd = -1;
|
||||
return false;
|
||||
|
@ -950,18 +955,18 @@ bool Monitor::connect() {
|
|||
mem_ptr = (unsigned char *)mmap(nullptr, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_LOCKED, map_fd, 0);
|
||||
if (mem_ptr == MAP_FAILED) {
|
||||
if (errno == EAGAIN) {
|
||||
Debug(1, "Unable to map file %s (%d bytes) to locked memory, trying unlocked", mem_file, mem_size);
|
||||
Debug(1, "Unable to map file %s (%jd bytes) to locked memory, trying unlocked", mem_file, mem_size);
|
||||
#endif
|
||||
mem_ptr = (unsigned char *)mmap(nullptr, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, map_fd, 0);
|
||||
Debug(1, "Mapped file %s (%d bytes) to unlocked memory", mem_file, mem_size);
|
||||
Debug(1, "Mapped file %s (%jd bytes) to unlocked memory", mem_file, mem_size);
|
||||
#ifdef MAP_LOCKED
|
||||
} else {
|
||||
Error("Unable to map file %s (%d bytes) to locked memory (%s)", mem_file, mem_size, strerror(errno));
|
||||
Error("Unable to map file %s (%jd bytes) to locked memory (%s)", mem_file, mem_size, strerror(errno));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if ((mem_ptr == MAP_FAILED) or (mem_ptr == nullptr)) {
|
||||
Error("Can't map file %s (%d bytes) to memory: %s(%d)", mem_file, mem_size, strerror(errno), errno);
|
||||
Error("Can't map file %s (%jd bytes) to memory: %s(%d)", mem_file, mem_size, strerror(errno), errno);
|
||||
close(map_fd);
|
||||
map_fd = -1;
|
||||
mem_ptr = nullptr;
|
||||
|
@ -1723,10 +1728,14 @@ void Monitor::UpdateAnalysisFPS() {
|
|||
gettimeofday(&now, nullptr);
|
||||
double now_double = (double)now.tv_sec + (0.000001f * now.tv_usec);
|
||||
double elapsed = now_double - last_analysis_fps_time;
|
||||
Debug(4, "%s: %d - now:%d.%d = %lf, last %lf, diff %lf", name.c_str(), analysis_image_count,
|
||||
now.tv_sec, now.tv_usec, now_double, last_analysis_fps_time,
|
||||
elapsed
|
||||
);
|
||||
Debug(4, "%s: %d - now:%" PRIi64 ".%" PRIi64 " = %lf, last %lf, diff %lf",
|
||||
name.c_str(),
|
||||
analysis_image_count,
|
||||
static_cast<int64>(now.tv_sec),
|
||||
static_cast<int64>(now.tv_usec),
|
||||
now_double,
|
||||
last_analysis_fps_time,
|
||||
elapsed);
|
||||
|
||||
if ( elapsed > 1.0 ) {
|
||||
double new_analysis_fps = double(motion_frame_count - last_motion_frame_count) / elapsed;
|
||||
|
@ -1970,12 +1979,14 @@ bool Monitor::Analyse() {
|
|||
|| ! ( timestamp->tv_sec % section_length )
|
||||
)
|
||||
) {
|
||||
Info("%s: %03d - Closing event %" PRIu64 ", section end forced %d - %d = %d >= %d",
|
||||
name.c_str(), image_count, event->Id(),
|
||||
timestamp->tv_sec, video_store_data->recording.tv_sec,
|
||||
timestamp->tv_sec - video_store_data->recording.tv_sec,
|
||||
section_length
|
||||
);
|
||||
Info("%s: %03d - Closing event %" PRIu64 ", section end forced %" PRIi64 " - %" PRIi64 " = %" PRIi64 " >= %d",
|
||||
name.c_str(),
|
||||
image_count,
|
||||
event->Id(),
|
||||
static_cast<int64>(timestamp->tv_sec),
|
||||
static_cast<int64>(video_store_data->recording.tv_sec),
|
||||
static_cast<int64>(timestamp->tv_sec - video_store_data->recording.tv_sec),
|
||||
section_length);
|
||||
closeEvent();
|
||||
} // end if section_length
|
||||
} // end if event
|
||||
|
@ -2062,10 +2073,13 @@ bool Monitor::Analyse() {
|
|||
closeEvent();
|
||||
} else if (event) {
|
||||
// This is so if we need more than 1 alarm frame before going into alarm, so it is basically if we have enough alarm frames
|
||||
Debug(3, "pre_alarm_count in event %d, event frames %d, alarm frames %d event length %d >=? %d min",
|
||||
Event::PreAlarmCount(), event->Frames(), event->AlarmFrames(),
|
||||
( timestamp->tv_sec - video_store_data->recording.tv_sec ), min_section_length
|
||||
);
|
||||
Debug(3,
|
||||
"pre_alarm_count in event %d, event frames %d, alarm frames %d event length %" PRIi64 " >=? %d min",
|
||||
Event::PreAlarmCount(),
|
||||
event->Frames(),
|
||||
event->AlarmFrames(),
|
||||
static_cast<int64>(timestamp->tv_sec - video_store_data->recording.tv_sec),
|
||||
min_section_length);
|
||||
}
|
||||
if ((!pre_event_count) || (Event::PreAlarmCount() >= alarm_frame_count-1)) {
|
||||
// lets construct alarm cause. It will contain cause + names of zones alarmed
|
||||
|
@ -2183,9 +2197,15 @@ bool Monitor::Analyse() {
|
|||
// Back to IDLE
|
||||
shared_data->state = state = ((function != MOCORD) ? IDLE : TAPE);
|
||||
} else {
|
||||
Debug(1, "State %s because image_count(%d)-last_alarm_count(%d) > post_event_count(%d) and timestamp.tv_sec(%d) - recording.tv_src(%d) >= min_section_length(%d)",
|
||||
State_Strings[state].c_str(), analysis_image_count, last_alarm_count, post_event_count,
|
||||
timestamp->tv_sec, video_store_data->recording.tv_sec, min_section_length);
|
||||
Debug(1,
|
||||
"State %s because image_count(%d)-last_alarm_count(%d) > post_event_count(%d) and timestamp.tv_sec(%" PRIi64 ") - recording.tv_src(%" PRIi64 ") >= min_section_length(%d)",
|
||||
State_Strings[state].c_str(),
|
||||
analysis_image_count,
|
||||
last_alarm_count,
|
||||
post_event_count,
|
||||
static_cast<int64>(timestamp->tv_sec),
|
||||
static_cast<int64>(video_store_data->recording.tv_sec),
|
||||
min_section_length);
|
||||
}
|
||||
if (Event::PreAlarmCount())
|
||||
Event::EmptyPreAlarmFrames();
|
||||
|
@ -2226,12 +2246,11 @@ bool Monitor::Analyse() {
|
|||
if ( section_length
|
||||
&& ( ( timestamp->tv_sec - video_store_data->recording.tv_sec ) >= section_length )
|
||||
) {
|
||||
Warning("%s: %03d - event %" PRIu64 ", has exceeded desired section length. %d - %d = %d >= %d",
|
||||
name.c_str(), analysis_image_count, event->Id(),
|
||||
timestamp->tv_sec, video_store_data->recording.tv_sec,
|
||||
timestamp->tv_sec - video_store_data->recording.tv_sec,
|
||||
section_length
|
||||
);
|
||||
Warning("%s: %03d - event %" PRIu64 ", has exceeded desired section length. %" PRIi64 " - %" PRIi64 " = %" PRIi64 " >= %d",
|
||||
name.c_str(), analysis_image_count, event->Id(),
|
||||
static_cast<int64>(timestamp->tv_sec), static_cast<int64>(video_store_data->recording.tv_sec),
|
||||
static_cast<int64>(timestamp->tv_sec - video_store_data->recording.tv_sec),
|
||||
section_length);
|
||||
closeEvent();
|
||||
event = new Event(this, *timestamp, cause, noteSetMap);
|
||||
shared_data->last_event_id = event->Id();
|
||||
|
@ -2324,9 +2343,9 @@ void Monitor::Reload() {
|
|||
} // end void Monitor::Reload()
|
||||
|
||||
void Monitor::ReloadZones() {
|
||||
Debug(3, "Reloading zones for monitor %s have %u", name.c_str(), zones.size());
|
||||
Debug(3, "Reloading zones for monitor %s have %zu", name.c_str(), zones.size());
|
||||
zones = Zone::Load(this);
|
||||
Debug(1, "Reloading zones for monitor %s have %u", name.c_str(), zones.size());
|
||||
Debug(1, "Reloading zones for monitor %s have %zu", name.c_str(), zones.size());
|
||||
this->AddPrivacyBitmask();
|
||||
//DumpZoneImage();
|
||||
} // end void Monitor::ReloadZones()
|
||||
|
@ -3144,8 +3163,8 @@ void Monitor::get_ref_image() {
|
|||
)
|
||||
and !zm_terminate) {
|
||||
|
||||
Debug(1, "Waiting for capture daemon lastwriteindex(%d) lastwritetime(%d)",
|
||||
shared_data->last_write_index, shared_data->last_write_time);
|
||||
Debug(1, "Waiting for capture daemon lastwriteindex(%d) lastwritetime(%" PRIi64 ")",
|
||||
shared_data->last_write_index, static_cast<int64>(shared_data->last_write_time));
|
||||
if ( snap_lock and ! snap_lock->packet_->image ) {
|
||||
delete snap_lock;
|
||||
// can't analyse it anyways, incremement
|
||||
|
|
|
@ -439,10 +439,14 @@ public:
|
|||
|
||||
inline int ShmValid() const {
|
||||
if ( shared_data && shared_data->valid ) {
|
||||
struct timeval now;
|
||||
timeval now = {};
|
||||
gettimeofday(&now, nullptr);
|
||||
Debug(3, "Shared data is valid, checking heartbeat %u - %u = %d < %f",
|
||||
now.tv_sec, shared_data->zmc_heartbeat_time, (now.tv_sec - shared_data->zmc_heartbeat_time), config.watch_max_delay);
|
||||
Debug(3, "Shared data is valid, checking heartbeat %" PRIi64 " - %" PRIi64 " = %" PRIi64" < %f",
|
||||
static_cast<int64>(now.tv_sec),
|
||||
static_cast<int64>(shared_data->zmc_heartbeat_time),
|
||||
static_cast<int64>(now.tv_sec - shared_data->zmc_heartbeat_time),
|
||||
config.watch_max_delay);
|
||||
|
||||
if ((now.tv_sec - shared_data->zmc_heartbeat_time) < config.watch_max_delay)
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -795,14 +795,17 @@ void MonitorStream::runStream() {
|
|||
if ( sleep_time > MonitorStream::MAX_SLEEP_USEC ) {
|
||||
// Shouldn't sleep for long because we need to check command queue, etc.
|
||||
sleep_time = MonitorStream::MAX_SLEEP_USEC;
|
||||
Debug(3, "Sleeping for MAX_SLEEP_USEC %dus", sleep_time);
|
||||
Debug(3, "Sleeping for MAX_SLEEP_USEC %luus", sleep_time);
|
||||
} else {
|
||||
Debug(3, "Sleeping for %dus", sleep_time);
|
||||
Debug(3, "Sleeping for %luus", sleep_time);
|
||||
}
|
||||
usleep(sleep_time);
|
||||
if ( ttl ) {
|
||||
if ( (now.tv_sec - stream_start_time) > ttl ) {
|
||||
Debug(2, "now(%d) - start(%d) > ttl(%d) break", now.tv_sec, stream_start_time, ttl);
|
||||
Debug(2, "now(%" PRIi64 ") - start(%" PRIi64 " ) > ttl(%" PRIi64 ") break",
|
||||
static_cast<int64>(now.tv_sec),
|
||||
static_cast<int64>(stream_start_time),
|
||||
static_cast<int64>(ttl));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ void VideoStream::SetupFormat( ) {
|
|||
ofc = s;
|
||||
#endif
|
||||
if ( !ofc ) {
|
||||
Fatal("avformat_alloc_..._context failed: %d", ofc);
|
||||
Fatal("avformat_alloc_..._context failed");
|
||||
}
|
||||
|
||||
of = ofc->oformat;
|
||||
|
|
|
@ -121,8 +121,14 @@ bool PacketQueue::queuePacket(ZMPacket* add_packet) {
|
|||
|
||||
pktQueue.pop_front();
|
||||
packet_counts[zm_packet->packet.stream_index] -= 1;
|
||||
Debug(1, "Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%d",
|
||||
zm_packet->packet.stream_index, zm_packet->image_index, zm_packet->keyframe, packet_counts[video_stream_id], max_video_packet_count, pktQueue.size());
|
||||
Debug(1,
|
||||
"Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%zu",
|
||||
zm_packet->packet.stream_index,
|
||||
zm_packet->image_index,
|
||||
zm_packet->keyframe,
|
||||
packet_counts[video_stream_id],
|
||||
max_video_packet_count,
|
||||
pktQueue.size());
|
||||
delete zm_packet;
|
||||
} // end while
|
||||
}
|
||||
|
@ -216,8 +222,14 @@ void PacketQueue::clearPackets(ZMPacket *add_packet) {
|
|||
|
||||
pktQueue.pop_front();
|
||||
packet_counts[zm_packet->packet.stream_index] -= 1;
|
||||
Debug(1, "Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%d",
|
||||
zm_packet->packet.stream_index, zm_packet->image_index, zm_packet->keyframe, packet_counts[video_stream_id], pre_event_video_packet_count, pktQueue.size());
|
||||
Debug(1,
|
||||
"Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%zu",
|
||||
zm_packet->packet.stream_index,
|
||||
zm_packet->image_index,
|
||||
zm_packet->keyframe,
|
||||
packet_counts[video_stream_id],
|
||||
pre_event_video_packet_count,
|
||||
pktQueue.size());
|
||||
delete zm_packet;
|
||||
} // end while
|
||||
return;
|
||||
|
@ -276,8 +288,14 @@ void PacketQueue::clearPackets(ZMPacket *add_packet) {
|
|||
continue;
|
||||
}
|
||||
|
||||
Debug(1, "Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%d",
|
||||
zm_packet->packet.stream_index, zm_packet->image_index, zm_packet->keyframe, packet_counts[video_stream_id], pre_event_video_packet_count, pktQueue.size());
|
||||
Debug(1,
|
||||
"Deleting a packet with stream index:%d image_index:%d with keyframe:%d, video frames in queue:%d max: %d, queuesize:%zu",
|
||||
zm_packet->packet.stream_index,
|
||||
zm_packet->image_index,
|
||||
zm_packet->keyframe,
|
||||
packet_counts[video_stream_id],
|
||||
pre_event_video_packet_count,
|
||||
pktQueue.size());
|
||||
pktQueue.pop_front();
|
||||
packet_counts[zm_packet->packet.stream_index] -= 1;
|
||||
delete zm_packet;
|
||||
|
@ -289,7 +307,7 @@ void PacketQueue::clearPackets(ZMPacket *add_packet) {
|
|||
} // end voidPacketQueue::clearPackets(ZMPacket* zm_packet)
|
||||
|
||||
ZMLockedPacket* PacketQueue::popPacket( ) {
|
||||
Debug(4, "pktQueue size %d", pktQueue.size());
|
||||
Debug(4, "pktQueue size %zu", pktQueue.size());
|
||||
if ( pktQueue.empty() ) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -328,7 +346,7 @@ ZMLockedPacket* PacketQueue::popPacket( ) {
|
|||
*/
|
||||
|
||||
unsigned int PacketQueue::clear(unsigned int frames_to_keep, int stream_id) {
|
||||
Debug(3, "Clearing all but %d frames, queue has %d", frames_to_keep, pktQueue.size());
|
||||
Debug(3, "Clearing all but %d frames, queue has %zu", frames_to_keep, pktQueue.size());
|
||||
|
||||
if ( pktQueue.empty() ) {
|
||||
return 0;
|
||||
|
@ -372,8 +390,8 @@ unsigned int PacketQueue::clear(unsigned int frames_to_keep, int stream_id) {
|
|||
|
||||
// Else not at beginning, are pointing at packet before the last video packet
|
||||
while ( pktQueue.begin() != it ) {
|
||||
Debug(4, "Deleting a packet from the front, count is (%d), queue size is %d",
|
||||
delete_count, pktQueue.size());
|
||||
Debug(4, "Deleting a packet from the front, count is (%d), queue size is %zu",
|
||||
delete_count, pktQueue.size());
|
||||
zm_packet = pktQueue.front();
|
||||
for (
|
||||
std::list<packetqueue_iterator *>::iterator iterators_it = iterators.begin();
|
||||
|
@ -394,7 +412,7 @@ unsigned int PacketQueue::clear(unsigned int frames_to_keep, int stream_id) {
|
|||
|
||||
delete_count += 1;
|
||||
} // while our iterator is not the first packet
|
||||
Debug(3, "Deleted %d packets, %d remaining", delete_count, pktQueue.size());
|
||||
Debug(3, "Deleted %d packets, %zu remaining", delete_count, pktQueue.size());
|
||||
return delete_count;
|
||||
} // end unsigned int PacketQueue::clear( unsigned int frames_to_keep, int stream_id )
|
||||
|
||||
|
@ -446,7 +464,7 @@ unsigned int PacketQueue::clear(struct timeval *duration, int streamId) {
|
|||
timersub(t, duration, &keep_from);
|
||||
++it;
|
||||
|
||||
Debug(3, "Looking for frame before queue keep time with stream id (%d), queue has %d packets",
|
||||
Debug(3, "Looking for frame before queue keep time with stream id (%d), queue has %zu packets",
|
||||
streamId, pktQueue.size());
|
||||
for ( ; it != pktQueue.rend(); ++it) {
|
||||
ZMPacket *zm_packet = *it;
|
||||
|
@ -456,10 +474,10 @@ unsigned int PacketQueue::clear(struct timeval *duration, int streamId) {
|
|||
and
|
||||
timercmp(zm_packet->timestamp, &keep_from, <=)
|
||||
) {
|
||||
Debug(3, "Found frame before keep time with stream index %d at %d.%d",
|
||||
av_packet->stream_index,
|
||||
zm_packet->timestamp->tv_sec,
|
||||
zm_packet->timestamp->tv_usec);
|
||||
Debug(3, "Found frame before keep time with stream index %d at %" PRIi64 ".%" PRIi64,
|
||||
av_packet->stream_index,
|
||||
static_cast<int64>(zm_packet->timestamp->tv_sec),
|
||||
static_cast<int64>(zm_packet->timestamp->tv_usec));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -479,10 +497,10 @@ unsigned int PacketQueue::clear(struct timeval *duration, int streamId) {
|
|||
and
|
||||
(av_packet->stream_index == streamId)
|
||||
) {
|
||||
Debug(3, "Found keyframe before start with stream index %d at %d.%d",
|
||||
av_packet->stream_index,
|
||||
zm_packet->timestamp->tv_sec,
|
||||
zm_packet->timestamp->tv_usec );
|
||||
Debug(3, "Found keyframe before start with stream index %d at %" PRIi64 ".%" PRIi64,
|
||||
av_packet->stream_index,
|
||||
static_cast<int64>(zm_packet->timestamp->tv_sec),
|
||||
static_cast<int64>(zm_packet->timestamp->tv_usec));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -535,7 +553,7 @@ ZMLockedPacket *PacketQueue::get_packet(packetqueue_iterator *it) {
|
|||
return nullptr;
|
||||
|
||||
Debug(4, "Locking in get_packet using it %p queue end? %d, packet %p",
|
||||
*it, (*it == pktQueue.end()), *(*it));
|
||||
std::addressof(*it), (*it == pktQueue.end()), *(*it));
|
||||
std::unique_lock<std::mutex> lck(mutex);
|
||||
Debug(4, "Have Lock in get_packet");
|
||||
|
||||
|
@ -544,7 +562,7 @@ ZMLockedPacket *PacketQueue::get_packet(packetqueue_iterator *it) {
|
|||
while (*it == pktQueue.end()) {
|
||||
if (deleting or zm_terminate)
|
||||
return nullptr;
|
||||
Debug(2, "waiting. Queue size %d it == end? %d", pktQueue.size(), (*it == pktQueue.end()));
|
||||
Debug(2, "waiting. Queue size %zu it == end? %d", pktQueue.size(), (*it == pktQueue.end()));
|
||||
condition.wait(lck);
|
||||
}
|
||||
if (deleting or zm_terminate)
|
||||
|
@ -556,7 +574,7 @@ ZMLockedPacket *PacketQueue::get_packet(packetqueue_iterator *it) {
|
|||
return nullptr;
|
||||
}
|
||||
Debug(4, "get_packet using it %p locking index %d, packet %p",
|
||||
*it, p->image_index, p);
|
||||
std::addressof(*it), p->image_index, p);
|
||||
// Packets are only deleted by packetqueue, so lock must be held.
|
||||
// We shouldn't have to trylock. Someone else might hold the lock but not for long
|
||||
|
||||
|
@ -579,14 +597,14 @@ void PacketQueue::unlock(ZMLockedPacket *lp) {
|
|||
}
|
||||
|
||||
bool PacketQueue::increment_it(packetqueue_iterator *it) {
|
||||
Debug(2, "Incrementing %p, queue size %d, end? %d", it, pktQueue.size(), ((*it) == pktQueue.end()));
|
||||
Debug(2, "Incrementing %p, queue size %zu, end? %d", it, pktQueue.size(), ((*it) == pktQueue.end()));
|
||||
if ((*it) == pktQueue.end() or deleting) {
|
||||
return false;
|
||||
}
|
||||
std::unique_lock<std::mutex> lck(mutex);
|
||||
++(*it);
|
||||
if (*it != pktQueue.end()) {
|
||||
Debug(2, "Incrementing %p, %p still not at end %p, so returning true", it, *it, pktQueue.end());
|
||||
Debug(2, "Incrementing %p, %p still not at end, so returning true", it, std::addressof(*it));
|
||||
return true;
|
||||
}
|
||||
Debug(2, "At end");
|
||||
|
@ -595,7 +613,7 @@ bool PacketQueue::increment_it(packetqueue_iterator *it) {
|
|||
|
||||
// Increment it only considering packets for a given stream
|
||||
bool PacketQueue::increment_it(packetqueue_iterator *it, int stream_id) {
|
||||
Debug(2, "Incrementing %p, queue size %d, end? %d", it, pktQueue.size(), (*it == pktQueue.end()));
|
||||
Debug(2, "Incrementing %p, queue size %zu, end? %d", it, pktQueue.size(), (*it == pktQueue.end()));
|
||||
if ( *it == pktQueue.end() ) {
|
||||
return false;
|
||||
}
|
||||
|
@ -696,7 +714,7 @@ packetqueue_iterator * PacketQueue::get_video_it(bool wait) {
|
|||
|
||||
if ( wait ) {
|
||||
while ( ((! pktQueue.size()) or (*it == pktQueue.end())) and !zm_terminate and !deleting ) {
|
||||
Debug(2, "waiting for packets in queue. Queue size %d it == end? %d", pktQueue.size(), ( *it == pktQueue.end() ) );
|
||||
Debug(2, "waiting for packets in queue. Queue size %zu it == end? %d", pktQueue.size(), (*it == pktQueue.end()));
|
||||
condition.wait(lck);
|
||||
*it = pktQueue.begin();
|
||||
}
|
||||
|
@ -749,7 +767,7 @@ bool PacketQueue::is_there_an_iterator_pointing_to_packet(ZMPacket *zm_packet) {
|
|||
if ( *iterator_it == pktQueue.end() ) {
|
||||
continue;
|
||||
}
|
||||
Debug(4, "Checking iterator %p == packet ? %d", (*iterator_it), ( *(*iterator_it) == zm_packet ));
|
||||
Debug(4, "Checking iterator %p == packet ? %d", std::addressof(*iterator_it), ( *(*iterator_it) == zm_packet ));
|
||||
// Have to check each iterator and make sure it doesn't point to the packet we are about to delete
|
||||
if ( *(*iterator_it) == zm_packet ) {
|
||||
return true;
|
||||
|
|
|
@ -211,7 +211,9 @@ int RemoteCameraHttp::ReadData(Buffer &buffer, unsigned int bytes_expected) {
|
|||
|
||||
int n_found = select(sd+1, &rfds, nullptr, nullptr, &temp_timeout);
|
||||
if (n_found == 0) {
|
||||
Debug(1, "Select timed out timeout was %d secs %d usecs", temp_timeout.tv_sec, temp_timeout.tv_usec);
|
||||
Debug(1, "Select timed out timeout was %" PRIi64 " secs %" PRIi64" usecs",
|
||||
static_cast<int64>(temp_timeout.tv_sec),
|
||||
static_cast<int64>(temp_timeout.tv_usec));
|
||||
int error = 0;
|
||||
socklen_t len = sizeof(error);
|
||||
int retval = getsockopt(sd, SOL_SOCKET, SO_ERROR, &error, &len);
|
||||
|
|
|
@ -202,7 +202,7 @@ int RemoteCameraRtsp::PrimeCapture() {
|
|||
#endif
|
||||
|
||||
if ( (unsigned int)pSize != imagesize ) {
|
||||
Fatal("Image size mismatch. Required: %d Available: %d", pSize, imagesize);
|
||||
Fatal("Image size mismatch. Required: %d Available: %llu", pSize, imagesize);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
|
|
@ -289,15 +289,14 @@ void RtpCtrlThread::Run() {
|
|||
unsigned char *bufferPtr = buffer;
|
||||
bufferPtr += generateRr( bufferPtr, sizeof(buffer)-(bufferPtr-buffer) );
|
||||
bufferPtr += generateSdes( bufferPtr, sizeof(buffer)-(bufferPtr-buffer) );
|
||||
Debug( 3, "Preventing timeout by sending %zd bytes on sd %d. Time since last receive: %d",
|
||||
bufferPtr-buffer, rtpCtrlServer.getWriteDesc(), ( now-last_receive) );
|
||||
Debug(3, "Preventing timeout by sending %zd bytes on sd %d. Time since last receive: %" PRIi64,
|
||||
bufferPtr - buffer, rtpCtrlServer.getWriteDesc(), static_cast<int64>(now - last_receive));
|
||||
if ( (nBytes = rtpCtrlServer.send(buffer, bufferPtr-buffer)) < 0 )
|
||||
Error("Unable to send: %s", strerror(errno));
|
||||
timeout = true;
|
||||
continue;
|
||||
} else {
|
||||
//Error( "RTCP timed out" );
|
||||
Debug(1, "RTCP timed out. Time since last receive: %d", ( now-last_receive) );
|
||||
Debug(1, "RTCP timed out. Time since last receive: %" PRIi64, static_cast<int64>(now - last_receive));
|
||||
continue;
|
||||
//break;
|
||||
}
|
||||
|
|
|
@ -165,14 +165,12 @@ void RtpSource::updateJitter( const RtpDataHeader *header ) {
|
|||
uint32_t localTimeRtp = mBaseTimeRtp + uint32_t(tvDiffSec(mBaseTimeReal) * mRtpFactor);
|
||||
uint32_t packetTransit = localTimeRtp - ntohl(header->timestampN);
|
||||
|
||||
Debug(5, "Delta rtp = %.6f\n"
|
||||
"Local RTP time = %x",
|
||||
"Packet RTP time = %x",
|
||||
"Packet transit RTP time = %x",
|
||||
tvDiffSec(mBaseTimeReal),
|
||||
localTimeRtp,
|
||||
ntohl(header->timestampN),
|
||||
packetTransit);
|
||||
Debug(5,
|
||||
"Delta rtp = %.6f\n Local RTP time = %x Packet RTP time = %x Packet transit RTP time = %x",
|
||||
tvDiffSec(mBaseTimeReal),
|
||||
localTimeRtp,
|
||||
ntohl(header->timestampN),
|
||||
packetTransit);
|
||||
|
||||
if ( mTransit > 0 ) {
|
||||
// Jitter
|
||||
|
@ -239,19 +237,13 @@ void RtpSource::updateRtcpStats() {
|
|||
mLostFraction = (lostInterval << 8) / expectedInterval;
|
||||
|
||||
Debug(5,
|
||||
"Expected packets = %d\n",
|
||||
"Lost packets = %d\n",
|
||||
"Expected interval = %d\n",
|
||||
"Received interval = %d\n",
|
||||
"Lost interval = %d\n",
|
||||
"Lost fraction = %d\n",
|
||||
|
||||
mExpectedPackets,
|
||||
mLostPackets,
|
||||
expectedInterval,
|
||||
receivedInterval,
|
||||
lostInterval,
|
||||
mLostFraction);
|
||||
"Expected packets = %d\n Lost packets = %d\n Expected interval = %d\n Received interval = %d\n Lost interval = %d\n Lost fraction = %d\n",
|
||||
mExpectedPackets,
|
||||
mLostPackets,
|
||||
expectedInterval,
|
||||
receivedInterval,
|
||||
lostInterval,
|
||||
mLostFraction);
|
||||
}
|
||||
|
||||
bool RtpSource::handlePacket(const unsigned char *packet, size_t packetLen) {
|
||||
|
|
|
@ -173,7 +173,7 @@ RtspThread::RtspThread(
|
|||
|
||||
mNeedAuth = false;
|
||||
StringVector parts = Split(auth, ":");
|
||||
Debug(2, "# of auth parts %d", parts.size());
|
||||
Debug(2, "# of auth parts %zu", parts.size());
|
||||
if ( parts.size() > 1 )
|
||||
mAuthenticator = new zm::Authenticator(parts[0], parts[1]);
|
||||
else
|
||||
|
@ -372,7 +372,7 @@ void RtspThread::Run() {
|
|||
mSessDesc = new SessionDescriptor( mUrl, sdp );
|
||||
mFormatContext = mSessDesc->generateFormatContext();
|
||||
} catch ( const Exception &e ) {
|
||||
Error(e.getMessage().c_str());
|
||||
Error("%s", e.getMessage().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -589,8 +589,12 @@ void RtspThread::Run() {
|
|||
while (!mTerminate) {
|
||||
now = time(nullptr);
|
||||
// Send a keepalive message if the server supports this feature and we are close to the timeout expiration
|
||||
Debug(5, "sendkeepalive %d, timeout %d, now: %d last: %d since: %d",
|
||||
sendKeepalive, timeout, now, lastKeepalive, (now-lastKeepalive) );
|
||||
Debug(5, "sendkeepalive %d, timeout %d, now: %" PRIi64 " last: %" PRIi64 " since: %" PRIi64,
|
||||
sendKeepalive,
|
||||
timeout,
|
||||
static_cast<int64>(now),
|
||||
static_cast<int64>(lastKeepalive),
|
||||
static_cast<int64>(now - lastKeepalive));
|
||||
if ( sendKeepalive && (timeout > 0) && ((now-lastKeepalive) > (timeout-5)) ) {
|
||||
if ( !sendCommand( message ) )
|
||||
return;
|
||||
|
@ -709,7 +713,12 @@ void RtspThread::Run() {
|
|||
// FIXME: Is this really necessary when using tcp ?
|
||||
now = time(nullptr);
|
||||
// Send a keepalive message if the server supports this feature and we are close to the timeout expiration
|
||||
Debug(5, "sendkeepalive %d, timeout %d, now: %d last: %d since: %d", sendKeepalive, timeout, now, lastKeepalive, (now-lastKeepalive) );
|
||||
Debug(5, "sendkeepalive %d, timeout %d, now: %" PRIi64 " last: %" PRIi64 " since: %" PRIi64,
|
||||
sendKeepalive,
|
||||
timeout,
|
||||
static_cast<int64>(now),
|
||||
static_cast<int64>(lastKeepalive),
|
||||
static_cast<int64>(now - lastKeepalive));
|
||||
if ( sendKeepalive && (timeout > 0) && ((now-lastKeepalive) > (timeout-5)) )
|
||||
{
|
||||
if ( !sendCommand( message ) )
|
||||
|
|
|
@ -205,7 +205,7 @@ void Authenticator::checkAuthResponse(const std::string &response) {
|
|||
|
||||
if ( strncasecmp(lines[i].c_str(), authenticate_match, authenticate_match_len) == 0 ) {
|
||||
authLine = lines[i];
|
||||
Debug(2, "Found auth line at %d:", i);
|
||||
Debug(2, "Found auth line at %zu:", i);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -196,7 +196,7 @@ unsigned char * H26X_ZoneMinderFifoSource::findMarker(
|
|||
// extract a frame
|
||||
unsigned char* H26X_ZoneMinderFifoSource::extractFrame(unsigned char* frame, size_t& size, size_t& outsize) {
|
||||
unsigned char *outFrame = nullptr;
|
||||
Debug(4, "ExtractFrame: %p %d", frame, size);
|
||||
Debug(4, "ExtractFrame: %p %zu", frame, size);
|
||||
outsize = 0;
|
||||
size_t markerLength = 0;
|
||||
size_t endMarkerLength = 0;
|
||||
|
@ -205,7 +205,7 @@ unsigned char* H26X_ZoneMinderFifoSource::extractFrame(unsigned char* frame, si
|
|||
if ( size >= 3 )
|
||||
startFrame = this->findMarker(frame, size, markerLength);
|
||||
if ( startFrame != nullptr ) {
|
||||
Debug(4, "startFrame: %p marker Length %d", startFrame, markerLength);
|
||||
Debug(4, "startFrame: %p marker Length %zu", startFrame, markerLength);
|
||||
m_frameType = startFrame[markerLength];
|
||||
|
||||
int remainingSize = size-(startFrame-frame+markerLength);
|
||||
|
@ -213,7 +213,7 @@ unsigned char* H26X_ZoneMinderFifoSource::extractFrame(unsigned char* frame, si
|
|||
if ( remainingSize > 3 ) {
|
||||
endFrame = this->findMarker(startFrame+markerLength, remainingSize, endMarkerLength);
|
||||
}
|
||||
Debug(4, "endFrame: %p marker Length %d, remaining size %d", endFrame, endMarkerLength, remainingSize);
|
||||
Debug(4, "endFrame: %p marker Length %zu, remaining size %d", endFrame, endMarkerLength, remainingSize);
|
||||
|
||||
if ( m_keepMarker ) {
|
||||
size -= startFrame-frame;
|
||||
|
@ -229,9 +229,9 @@ unsigned char* H26X_ZoneMinderFifoSource::extractFrame(unsigned char* frame, si
|
|||
outsize = size;
|
||||
}
|
||||
size -= outsize;
|
||||
Debug(4, "Have frame type: %d size %d, keepmarker %d", m_frameType, outsize, m_keepMarker);
|
||||
Debug(4, "Have frame type: %d size %zu, keepmarker %d", m_frameType, outsize, m_keepMarker);
|
||||
} else if ( size >= sizeof(H264shortmarker) ) {
|
||||
Info("No marker found size %d", size);
|
||||
Info("No marker found size %zu", size);
|
||||
}
|
||||
|
||||
return outFrame;
|
||||
|
|
|
@ -78,7 +78,7 @@ void ZoneMinderFifoSource::WriteRun() {
|
|||
|
||||
if (nal) {
|
||||
if (1 and (nal->size() > maxNalSize)) {
|
||||
Debug(1, "SPlitting NAL %d", nal->size());
|
||||
Debug(1, "Splitting NAL %zu", nal->size());
|
||||
size_t nalRemaining = nal->size();
|
||||
u_int8_t *nalSrc = nal->buffer();
|
||||
|
||||
|
@ -123,9 +123,9 @@ void ZoneMinderFifoSource::WriteRun() {
|
|||
nalSrc += fuNalSize;
|
||||
nal_count += 1;
|
||||
}
|
||||
Debug(1, "Sending %d NALs @ %d and 1 @ %d", nal_count, maxNalSize, fuNal.size());
|
||||
Debug(1, "Sending %d NALs @ %zu and 1 @ %zu", nal_count, maxNalSize, fuNal.size());
|
||||
} else {
|
||||
Debug(3, "Pushing nal of size %d at %" PRId64, nal->size(), nal->pts());
|
||||
Debug(3, "Pushing nal of size %zu at %" PRId64, nal->size(), nal->pts());
|
||||
PushFrame(nal->buffer(), nal->size(), nal->pts());
|
||||
}
|
||||
delete nal;
|
||||
|
@ -214,8 +214,8 @@ int ZoneMinderFifoSource::getNextFrame() {
|
|||
return 0;
|
||||
}
|
||||
if (header_start != m_buffer) {
|
||||
Debug(4, "ZM Packet didn't start at beginning of buffer %u. %c%c",
|
||||
header_start-m_buffer.head(), m_buffer[0], m_buffer[1]);
|
||||
Debug(4, "ZM Packet didn't start at beginning of buffer %ld. %c%c",
|
||||
header_start - m_buffer.head(), m_buffer[0], m_buffer[1]);
|
||||
}
|
||||
|
||||
// read_into may invalidate packet_start
|
||||
|
@ -244,7 +244,10 @@ int ZoneMinderFifoSource::getNextFrame() {
|
|||
size_t bytes_remaining = data_size;
|
||||
std::list< std::pair<unsigned char*, size_t> > framesList = this->splitFrames(packet_start, bytes_remaining);
|
||||
m_buffer.consume(data_size+header_size);
|
||||
Debug(3, "Got %d frames, consuming %d bytes, remaining %d", framesList.size(), data_size+header_size, bytes_remaining);
|
||||
Debug(3, "Got %zu frames, consuming %d bytes, remaining %zu",
|
||||
framesList.size(),
|
||||
data_size + header_size,
|
||||
bytes_remaining);
|
||||
|
||||
{
|
||||
std::unique_lock<std::mutex> lck(mutex_);
|
||||
|
|
|
@ -53,15 +53,16 @@ class NAL_Frame {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void debug() {
|
||||
if ( m_size <= 4 ) {
|
||||
Debug(1, "NAL: %d: %.2x %.2x %.2x %.2x", m_size,
|
||||
m_buffer[0], m_buffer[1], m_buffer[2], m_buffer[3]);
|
||||
if (m_size <= 4) {
|
||||
Debug(1, "NAL: %zu: %.2x %.2x %.2x %.2x", m_size,
|
||||
m_buffer[0], m_buffer[1], m_buffer[2], m_buffer[3]);
|
||||
} else {
|
||||
Debug(1, "NAL: %d: %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x ", m_size,
|
||||
m_buffer[0], m_buffer[1], m_buffer[2], m_buffer[3],
|
||||
m_buffer[4], m_buffer[5], m_buffer[6], m_buffer[7]
|
||||
);
|
||||
Debug(1, "NAL: %zu: %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x ", m_size,
|
||||
m_buffer[0], m_buffer[1], m_buffer[2], m_buffer[3],
|
||||
m_buffer[4], m_buffer[5], m_buffer[6], m_buffer[7]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -104,8 +104,7 @@ RETSIGTYPE zm_die_handler(int signal)
|
|||
}
|
||||
free(messages);
|
||||
|
||||
Info("Backtrace complete, please execute the following command for more information");
|
||||
Info(cmd);
|
||||
Info("Backtrace complete, please execute the following command for more information: %s", cmd);
|
||||
#endif // ( !defined(ZM_NO_CRASHTRACE) && HAVE_DECL_BACKTRACE && HAVE_DECL_BACKTRACE_SYMBOLS )
|
||||
#endif // (defined(__i386__) || defined(__x86_64__)
|
||||
exit(signal);
|
||||
|
|
|
@ -359,7 +359,7 @@ void StreamBase::openComms() {
|
|||
// Unlink before bind, in case it already exists
|
||||
unlink(loc_sock_path);
|
||||
if ( sizeof(loc_addr.sun_path) < length ) {
|
||||
Error("Not enough space %d in loc_addr.sun_path for socket file %s", sizeof(loc_addr.sun_path), loc_sock_path);
|
||||
Error("Not enough space %zu in loc_addr.sun_path for socket file %s", sizeof(loc_addr.sun_path), loc_sock_path);
|
||||
}
|
||||
|
||||
strncpy(loc_addr.sun_path, loc_sock_path, sizeof(loc_addr.sun_path));
|
||||
|
|
|
@ -124,7 +124,7 @@ int SWScale::Convert(
|
|||
unsigned int new_width,
|
||||
unsigned int new_height
|
||||
) {
|
||||
Debug(1, "Convert: in_buffer %p in_buffer_size %d out_buffer %p size %d width %d height %d width %d height %d %d %d",
|
||||
Debug(1, "Convert: in_buffer %p in_buffer_size %zu out_buffer %p size %zu width %d height %d width %d height %d %d %d",
|
||||
in_buffer, in_buffer_size, out_buffer, out_buffer_size, width, height, new_width, new_height,
|
||||
in_pf, out_pf);
|
||||
/* Parameter checking */
|
||||
|
@ -163,12 +163,19 @@ int SWScale::Convert(
|
|||
/* Check the buffer sizes */
|
||||
size_t needed_insize = GetBufferSize(in_pf, width, height);
|
||||
if ( needed_insize > in_buffer_size ) {
|
||||
Debug(1, "The input buffer size does not match the expected size for the input format. Required: %d for %dx%d %d Available: %d",
|
||||
needed_insize, width, height, in_pf, in_buffer_size);
|
||||
Debug(1,
|
||||
"The input buffer size does not match the expected size for the input format. Required: %zu for %dx%d %d Available: %zu",
|
||||
needed_insize,
|
||||
width,
|
||||
height,
|
||||
in_pf,
|
||||
in_buffer_size);
|
||||
}
|
||||
size_t needed_outsize = GetBufferSize(out_pf, new_width, new_height);
|
||||
if ( needed_outsize > out_buffer_size ) {
|
||||
Error("The output buffer is undersized for the output format. Required: %d Available: %d", needed_outsize, out_buffer_size);
|
||||
Error("The output buffer is undersized for the output format. Required: %zu Available: %zu",
|
||||
needed_outsize,
|
||||
out_buffer_size);
|
||||
return -5;
|
||||
}
|
||||
|
||||
|
|
|
@ -232,7 +232,7 @@ User *zmLoadAuthUser(const char *auth, bool use_remote_addr) {
|
|||
Warning("No value set for ZM_AUTH_HASH_TTL. Defaulting to 2.");
|
||||
hours = 2;
|
||||
} else {
|
||||
Debug(1, "AUTH_HASH_TTL is %d, time is %d", hours, now);
|
||||
Debug(1, "AUTH_HASH_TTL is %d, time is %" PRIi64, hours, static_cast<int64>(now));
|
||||
}
|
||||
char auth_key[512] = "";
|
||||
char auth_md5[32+1] = "";
|
||||
|
|
|
@ -670,9 +670,7 @@ VideoStore::~VideoStore() {
|
|||
|
||||
bool VideoStore::setup_resampler() {
|
||||
#if !defined(HAVE_LIBSWRESAMPLE) && !defined(HAVE_LIBAVRESAMPLE)
|
||||
Error(
|
||||
"Not built with resample library. "
|
||||
"Cannot do audio conversion to AAC");
|
||||
Error("%s", "Not built with resample library. Cannot do audio conversion to AAC");
|
||||
return false;
|
||||
#else
|
||||
int ret;
|
||||
|
@ -727,7 +725,7 @@ bool VideoStore::setup_resampler() {
|
|||
audio_out_ctx->sample_fmt = audio_in_ctx->sample_fmt;
|
||||
#if LIBAVCODEC_VERSION_CHECK(56, 8, 0, 60, 100)
|
||||
if ( !audio_out_ctx->channel_layout ) {
|
||||
Debug(3, "Correcting channel layout from (%d) to (%d)",
|
||||
Debug(3, "Correcting channel layout from (%" PRIi64 ") to (%" PRIi64 ")",
|
||||
audio_out_ctx->channel_layout,
|
||||
av_get_default_channel_layout(audio_out_ctx->channels)
|
||||
);
|
||||
|
@ -800,29 +798,26 @@ bool VideoStore::setup_resampler() {
|
|||
audio_out_ctx->time_base.num, audio_out_ctx->time_base.den);
|
||||
|
||||
Debug(1,
|
||||
"Audio in bit_rate (%d) sample_rate(%d) channels(%d) fmt(%d) "
|
||||
"layout(%d) frame_size(%d)",
|
||||
"Audio in bit_rate (%" AV_PACKET_DURATION_FMT ") sample_rate(%d) channels(%d) fmt(%d) layout(%" PRIi64 ") frame_size(%d)",
|
||||
audio_in_ctx->bit_rate, audio_in_ctx->sample_rate,
|
||||
audio_in_ctx->channels, audio_in_ctx->sample_fmt,
|
||||
audio_in_ctx->channel_layout, audio_in_ctx->frame_size);
|
||||
Debug(1,
|
||||
"Audio out context bit_rate (%d) sample_rate(%d) channels(%d) fmt(%d) "
|
||||
"layout(%d) frame_size(%d)",
|
||||
audio_out_ctx->bit_rate, audio_out_ctx->sample_rate,
|
||||
audio_out_ctx->channels, audio_out_ctx->sample_fmt,
|
||||
audio_out_ctx->channel_layout, audio_out_ctx->frame_size);
|
||||
"Audio out context bit_rate (%" AV_PACKET_DURATION_FMT ") sample_rate(%d) channels(%d) fmt(%d) layout(% " PRIi64 ") frame_size(%d)",
|
||||
audio_out_ctx->bit_rate, audio_out_ctx->sample_rate,
|
||||
audio_out_ctx->channels, audio_out_ctx->sample_fmt,
|
||||
audio_out_ctx->channel_layout, audio_out_ctx->frame_size);
|
||||
|
||||
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||
Debug(1,
|
||||
"Audio out stream bit_rate (%d) sample_rate(%d) channels(%d) fmt(%d) "
|
||||
"layout(%d) frame_size(%d)",
|
||||
audio_out_stream->codecpar->bit_rate, audio_out_stream->codecpar->sample_rate,
|
||||
audio_out_stream->codecpar->channels, audio_out_stream->codecpar->format,
|
||||
audio_out_stream->codecpar->channel_layout, audio_out_stream->codecpar->frame_size);
|
||||
"Audio out stream bit_rate (%" PRIi64 ") sample_rate(%d) channels(%d) fmt(%d) layout(%" PRIi64 ") frame_size(%d)",
|
||||
audio_out_stream->codecpar->bit_rate, audio_out_stream->codecpar->sample_rate,
|
||||
audio_out_stream->codecpar->channels, audio_out_stream->codecpar->format,
|
||||
audio_out_stream->codecpar->channel_layout, audio_out_stream->codecpar->frame_size);
|
||||
#else
|
||||
Debug(1,
|
||||
"Audio out bit_rate (%d) sample_rate(%d) channels(%d) fmt(%d) "
|
||||
"layout(%d) frame_size(%d)",
|
||||
"layout(%" PRIi64 ") frame_size(%d)",
|
||||
audio_out_stream->codec->bit_rate, audio_out_stream->codec->sample_rate,
|
||||
audio_out_stream->codec->channels, audio_out_stream->codec->sample_fmt,
|
||||
audio_out_stream->codec->channel_layout, audio_out_stream->codec->frame_size);
|
||||
|
@ -1021,17 +1016,24 @@ int VideoStore::writeVideoFramePacket(ZMPacket *zm_packet) {
|
|||
int64_t in_pts = zm_packet->timestamp->tv_sec * (uint64_t)1000000 + zm_packet->timestamp->tv_usec;
|
||||
if ( !video_first_pts ) {
|
||||
video_first_pts = in_pts;
|
||||
Debug(2, "No video_first_pts, set to (%" PRId64 ") secs(%d) usecs(%d)",
|
||||
video_first_pts, zm_packet->timestamp->tv_sec, zm_packet->timestamp->tv_usec);
|
||||
Debug(2, "No video_first_pts, set to (%" PRId64 ") secs(%" PRIi64 ") usecs(%" PRIi64 ")",
|
||||
video_first_pts,
|
||||
static_cast<int64>(zm_packet->timestamp->tv_sec),
|
||||
static_cast<int64>(zm_packet->timestamp->tv_usec));
|
||||
zm_packet->out_frame->pts = 0;
|
||||
} else {
|
||||
uint64_t useconds = in_pts - video_first_pts;
|
||||
zm_packet->out_frame->pts = av_rescale_q(useconds, AV_TIME_BASE_Q, video_out_ctx->time_base);
|
||||
Debug(2, " Setting pts for frame(%d) to (%" PRId64 ") from (start %" PRIu64 " - %" PRIu64 " - secs(%d) usecs(%d) @ %d/%d",
|
||||
frame_count, zm_packet->out_frame->pts, video_first_pts, useconds, zm_packet->timestamp->tv_sec, zm_packet->timestamp->tv_usec,
|
||||
video_out_ctx->time_base.num,
|
||||
video_out_ctx->time_base.den
|
||||
);
|
||||
Debug(2,
|
||||
"Setting pts for frame(%d) to (%" PRId64 ") from (start %" PRIu64 " - %" PRIu64 " - secs(%" PRIi64 ") usecs(%" PRIi64 ") @ %d/%d",
|
||||
frame_count,
|
||||
zm_packet->out_frame->pts,
|
||||
video_first_pts,
|
||||
useconds,
|
||||
static_cast<int64>(zm_packet->timestamp->tv_sec),
|
||||
static_cast<int64>(zm_packet->timestamp->tv_usec),
|
||||
video_out_ctx->time_base.num,
|
||||
video_out_ctx->time_base.den);
|
||||
}
|
||||
|
||||
av_init_packet(&opkt);
|
||||
|
|
30
src/zmc.cpp
30
src/zmc.cpp
|
@ -214,7 +214,7 @@ int main(int argc, char *argv[]) {
|
|||
Error("No monitors found");
|
||||
exit(-1);
|
||||
} else {
|
||||
Debug(2, "%d monitors loaded", monitors.size());
|
||||
Debug(2, "%zu monitors loaded", monitors.size());
|
||||
}
|
||||
|
||||
Info("Starting Capture version %s", ZM_VERSION);
|
||||
|
@ -294,20 +294,20 @@ int main(int argc, char *argv[]) {
|
|||
monitors[i]->CheckAction();
|
||||
|
||||
if (monitors[i]->PreCapture() < 0) {
|
||||
Error("Failed to pre-capture monitor %d %d (%d/" SZFMTD ")",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i+1, monitors.size());
|
||||
Error("Failed to pre-capture monitor %d %s (%zu/%zu)",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i + 1, monitors.size());
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
if (monitors[i]->Capture() < 0) {
|
||||
Error("Failed to capture image from monitor %d %s (%d/" SZFMTD ")",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i+1, monitors.size());
|
||||
Error("Failed to capture image from monitor %d %s (%zu/%zu)",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i + 1, monitors.size());
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
if (monitors[i]->PostCapture() < 0) {
|
||||
Error("Failed to post-capture monitor %d %s (%d/" SZFMTD ")",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i+1, monitors.size());
|
||||
Error("Failed to post-capture monitor %d %s (%zu/%zu)",
|
||||
monitors[i]->Id(), monitors[i]->Name(), i + 1, monitors.size());
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
|
@ -322,13 +322,15 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
// You have to add back in the previous sleep time
|
||||
sleep_time = delay - (delta_time.delta - sleep_time);
|
||||
Debug(4, "Sleep time is %d from now:%d.%d last:%d.%d delta %d delay: %d",
|
||||
sleep_time,
|
||||
now.tv_sec, now.tv_usec,
|
||||
last_capture_times[i].tv_sec, last_capture_times[i].tv_usec,
|
||||
delta_time.delta,
|
||||
delay
|
||||
);
|
||||
Debug(4,
|
||||
"Sleep time is %d from now: %" PRIi64 ".%" PRIi64" last: %" PRIi64 ".% " PRIi64 " delta %lu delay: %d",
|
||||
sleep_time,
|
||||
static_cast<int64>(now.tv_sec),
|
||||
static_cast<int64>(now.tv_usec),
|
||||
static_cast<int64>(last_capture_times[i].tv_sec),
|
||||
static_cast<int64>(last_capture_times[i].tv_usec),
|
||||
delta_time.delta,
|
||||
delay);
|
||||
|
||||
if (sleep_time > 0) {
|
||||
Debug(4, "usleeping (%d)", sleep_time);
|
||||
|
|
|
@ -734,7 +734,7 @@ int main(int argc, char *argv[]) {
|
|||
if (!result) {
|
||||
exit_zmu(-1);
|
||||
}
|
||||
Debug(1, "Got %d monitors", mysql_num_rows(result));
|
||||
Debug(1, "Got %" PRIu64 " monitors", static_cast<uint64>(mysql_num_rows(result)));
|
||||
|
||||
printf("%4s%5s%6s%9s%14s%6s%6s%8s%8s\n", "Id", "Func", "State", "TrgState", "LastImgTim", "RdIdx", "WrIdx", "LastEvt", "FrmRate");
|
||||
for ( int i = 0; MYSQL_ROW dbrow = mysql_fetch_row(result); i++ ) {
|
||||
|
|
|
@ -147,7 +147,7 @@ TEST_CASE("ZmFont: load font file") {
|
|||
SECTION("valid file") {
|
||||
REQUIRE(font.LoadFontFile("data/fonts/04_valid.zmfnt") == FontLoadError::kOk);
|
||||
|
||||
uint8 var_idx = GENERATE(range(static_cast<decltype(kNumFontSizes)>(0), kNumFontSizes));
|
||||
uint8 var_idx = GENERATE(range(static_cast<std::remove_cv<decltype(kNumFontSizes)>::type>(0), kNumFontSizes));
|
||||
FontVariant variant = font.GetFontVariant(var_idx);
|
||||
REQUIRE(variant.GetCharHeight() == 10 + var_idx);
|
||||
REQUIRE(variant.GetCharWidth() == 10 + var_idx);
|
||||
|
|
Loading…
Reference in New Issue