From 91a1e48a7c74a16d067549f95ae8cd63f8bd7fac Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Mon, 21 Oct 2019 08:16:19 +0300 Subject: [PATCH] refactoring; renamed X-UStreamer-*-Time to X-UStreamer-*-Timestamp --- src/device.c | 2 +- src/encoder.c | 4 +-- src/http/server.c | 74 +++++++++++++++++++++++------------------------ src/http/server.h | 8 ++--- src/picture.c | 6 ++-- src/picture.h | 6 ++-- src/stream.c | 8 ++--- 7 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/device.c b/src/device.c index 5b398c7..1f9cfff 100644 --- a/src/device.c +++ b/src/device.c @@ -286,7 +286,7 @@ int device_grab_buffer(struct device_t *dev) { dev->run->hw_buffers[buf_info.index].used = buf_info.bytesused; memcpy(&dev->run->hw_buffers[buf_info.index].buf_info, &buf_info, sizeof(struct v4l2_buffer)); - dev->run->pictures[buf_info.index]->grab_time = get_now_monotonic(); + dev->run->pictures[buf_info.index]->grab_ts = get_now_monotonic(); return buf_info.index; } diff --git a/src/encoder.c b/src/encoder.c index 4cdf8c8..12375dc 100644 --- a/src/encoder.c +++ b/src/encoder.c @@ -201,7 +201,7 @@ int encoder_compress_buffer(struct encoder_t *encoder, struct device_t *dev, uns assert(encoder->run->type != ENCODER_TYPE_UNKNOWN); - dev->run->pictures[buf_index]->encode_begin_time = get_now_monotonic(); + dev->run->pictures[buf_index]->encode_begin_ts = get_now_monotonic(); if (encoder->run->type == ENCODER_TYPE_CPU) { cpu_encoder_compress_buffer(dev, buf_index, encoder->run->quality); @@ -216,7 +216,7 @@ int encoder_compress_buffer(struct encoder_t *encoder, struct device_t *dev, uns } # endif - dev->run->pictures[buf_index]->encode_end_time = get_now_monotonic(); + dev->run->pictures[buf_index]->encode_end_ts = get_now_monotonic(); dev->run->pictures[buf_index]->width = dev->run->width; dev->run->pictures[buf_index]->height = dev->run->height; diff --git a/src/http/server.c b/src/http/server.c index 2ae4d44..4f78db9 100644 --- a/src/http/server.c +++ b/src/http/server.c @@ -172,9 +172,9 @@ int http_server_listen(struct http_server_t *server) { # define EXPOSED(_next) server->run->exposed->_next // See _expose_blank_picture() picture_copy(server->run->blank, EXPOSED(picture)); - EXPOSED(expose_begin_time) = get_now_monotonic(); - EXPOSED(expose_cmp_time) = EXPOSED(expose_begin_time); - EXPOSED(expose_end_time) = EXPOSED(expose_begin_time); + EXPOSED(expose_begin_ts) = get_now_monotonic(); + EXPOSED(expose_cmp_ts) = EXPOSED(expose_begin_ts); + EXPOSED(expose_end_ts) = EXPOSED(expose_begin_ts); # undef EXPOSED { @@ -446,17 +446,17 @@ static void _http_callback_snapshot(struct evhttp_request *request, void *v_serv ADD_TIME_HEADER("X-Timestamp", get_now_real()); - ADD_HEADER("X-UStreamer-Online", bool_to_string(EXPOSED(online))); - ADD_UNSIGNED_HEADER("X-UStreamer-Dropped", EXPOSED(dropped)); - ADD_UNSIGNED_HEADER("X-UStreamer-Width", EXPOSED(picture->width)); - ADD_UNSIGNED_HEADER("X-UStreamer-Height", EXPOSED(picture->height)); - ADD_TIME_HEADER("X-UStreamer-Grab-Time", EXPOSED(picture->grab_time)); - ADD_TIME_HEADER("X-UStreamer-Encode-Begin-Time", EXPOSED(picture->encode_begin_time)); - ADD_TIME_HEADER("X-UStreamer-Encode-End-Time", EXPOSED(picture->encode_end_time)); - ADD_TIME_HEADER("X-UStreamer-Expose-Begin-Time", EXPOSED(expose_begin_time)); - ADD_TIME_HEADER("X-UStreamer-Expose-Cmp-Time", EXPOSED(expose_cmp_time)); - ADD_TIME_HEADER("X-UStreamer-Expose-End-Time", EXPOSED(expose_end_time)); - ADD_TIME_HEADER("X-UStreamer-Send-Time", get_now_monotonic()); + ADD_HEADER("X-UStreamer-Online", bool_to_string(EXPOSED(online))); + ADD_UNSIGNED_HEADER("X-UStreamer-Dropped", EXPOSED(dropped)); + ADD_UNSIGNED_HEADER("X-UStreamer-Width", EXPOSED(picture->width)); + ADD_UNSIGNED_HEADER("X-UStreamer-Height", EXPOSED(picture->height)); + ADD_TIME_HEADER("X-UStreamer-Grab-Timestamp", EXPOSED(picture->grab_ts)); + ADD_TIME_HEADER("X-UStreamer-Encode-Begin-Timestamp", EXPOSED(picture->encode_begin_ts)); + ADD_TIME_HEADER("X-UStreamer-Encode-End-Timestamp", EXPOSED(picture->encode_end_ts)); + ADD_TIME_HEADER("X-UStreamer-Expose-Begin-Timestamp", EXPOSED(expose_begin_ts)); + ADD_TIME_HEADER("X-UStreamer-Expose-Cmp-Timestamp", EXPOSED(expose_cmp_ts)); + ADD_TIME_HEADER("X-UStreamer-Expose-End-Timestamp", EXPOSED(expose_end_ts)); + ADD_TIME_HEADER("X-UStreamer-Send-Timestamp", get_now_monotonic()); # undef ADD_UNSUGNED_HEADER # undef ADD_TIME_HEADER @@ -637,12 +637,12 @@ static void _http_callback_stream_write(struct bufferevent *buf_event, void *v_c EXPOSED(picture->width), EXPOSED(picture->height), client->fps, - EXPOSED(picture->grab_time), - EXPOSED(picture->encode_begin_time), - EXPOSED(picture->encode_end_time), - EXPOSED(expose_begin_time), - EXPOSED(expose_cmp_time), - EXPOSED(expose_end_time), + EXPOSED(picture->grab_ts), + EXPOSED(picture->encode_begin_ts), + EXPOSED(picture->encode_end_ts), + EXPOSED(expose_begin_ts), + EXPOSED(expose_cmp_ts), + EXPOSED(expose_end_ts), now )); } @@ -797,7 +797,7 @@ static bool _expose_new_picture_unsafe(struct http_server_t *server) { # define STREAM(_next) server->run->stream->_next EXPOSED(captured_fps) = STREAM(captured_fps); - EXPOSED(expose_begin_time) = get_now_monotonic(); + EXPOSED(expose_begin_ts) = get_now_monotonic(); if (server->drop_same_frames) { if ( @@ -805,16 +805,16 @@ static bool _expose_new_picture_unsafe(struct http_server_t *server) { && EXPOSED(dropped) < server->drop_same_frames && picture_compare(EXPOSED(picture), STREAM(picture)) ) { - EXPOSED(expose_cmp_time) = get_now_monotonic(); - EXPOSED(expose_end_time) = EXPOSED(expose_cmp_time); + EXPOSED(expose_cmp_ts) = get_now_monotonic(); + EXPOSED(expose_end_ts) = EXPOSED(expose_cmp_ts); LOG_VERBOSE("HTTP: Dropped same frame number %u; cmp_time=%.06Lf", - EXPOSED(dropped), EXPOSED(expose_cmp_time) - EXPOSED(expose_begin_time)); + EXPOSED(dropped), EXPOSED(expose_cmp_ts) - EXPOSED(expose_begin_ts)); EXPOSED(dropped) += 1; return false; // Not updated } else { - EXPOSED(expose_cmp_time) = get_now_monotonic(); + EXPOSED(expose_cmp_ts) = get_now_monotonic(); LOG_VERBOSE("HTTP: Passed same frame check (frames are differ); cmp_time=%.06Lf", - EXPOSED(expose_cmp_time) - EXPOSED(expose_begin_time)); + EXPOSED(expose_cmp_ts) - EXPOSED(expose_begin_ts)); } } @@ -824,11 +824,11 @@ static bool _expose_new_picture_unsafe(struct http_server_t *server) { EXPOSED(online) = true; EXPOSED(dropped) = 0; - EXPOSED(expose_cmp_time) = EXPOSED(expose_begin_time); - EXPOSED(expose_end_time) = get_now_monotonic(); + EXPOSED(expose_cmp_ts) = EXPOSED(expose_begin_ts); + EXPOSED(expose_end_ts) = get_now_monotonic(); LOG_VERBOSE("HTTP: Exposed new frame; full exposition time = %.06Lf", - EXPOSED(expose_end_time) - EXPOSED(expose_begin_time)); + EXPOSED(expose_end_ts) - EXPOSED(expose_begin_ts)); # undef EXPOSED return true; // Updated @@ -837,8 +837,8 @@ static bool _expose_new_picture_unsafe(struct http_server_t *server) { static bool _expose_blank_picture(struct http_server_t *server) { # define EXPOSED(_next) server->run->exposed->_next - EXPOSED(expose_begin_time) = get_now_monotonic(); - EXPOSED(expose_cmp_time) = EXPOSED(expose_begin_time); + EXPOSED(expose_begin_ts) = get_now_monotonic(); + EXPOSED(expose_cmp_ts) = EXPOSED(expose_begin_ts); # define EXPOSE_BLANK picture_copy(server->run->blank, EXPOSED(picture)) @@ -848,7 +848,7 @@ static bool _expose_blank_picture(struct http_server_t *server) { EXPOSE_BLANK; } else if (server->last_as_blank > 0) { // Если нужен таймер - запустим LOG_INFO("HTTP: Freezing last alive frame for %d seconds", server->last_as_blank); - EXPOSED(last_as_blank_time) = get_now_monotonic(); + EXPOSED(last_as_blank_ts) = get_now_monotonic(); } else { // last_as_blank == 0 - показываем последний фрейм вечно LOG_INFO("HTTP: Freezing last alive frame forever"); } @@ -857,12 +857,12 @@ static bool _expose_blank_picture(struct http_server_t *server) { if ( // Если уже оффлайн, включена фича last_as_blank с таймером и он запущен server->last_as_blank > 0 - && EXPOSED(last_as_blank_time) > 0 - && EXPOSED(last_as_blank_time) + server->last_as_blank < EXPOSED(expose_begin_time) + && EXPOSED(last_as_blank_ts) > 0 + && EXPOSED(last_as_blank_ts) + server->last_as_blank < EXPOSED(expose_begin_ts) ) { LOG_INFO("HTTP: Changed last alive frame to BLANK"); EXPOSE_BLANK; - EXPOSED(last_as_blank_time) = 0; // Останавливаем таймер + EXPOSED(last_as_blank_ts) = 0; // Останавливаем таймер goto updated; } @@ -871,7 +871,7 @@ static bool _expose_blank_picture(struct http_server_t *server) { if (EXPOSED(dropped) < server->run->drop_same_frames_blank) { LOG_PERF("HTTP: Dropped same frame (BLANK) number %u", EXPOSED(dropped)); EXPOSED(dropped) += 1; - EXPOSED(expose_end_time) = get_now_monotonic(); + EXPOSED(expose_end_ts) = get_now_monotonic(); return false; // Not updated } @@ -879,7 +879,7 @@ static bool _expose_blank_picture(struct http_server_t *server) { EXPOSED(captured_fps) = 0; EXPOSED(online) = false; EXPOSED(dropped) = 0; - EXPOSED(expose_end_time) = get_now_monotonic(); + EXPOSED(expose_end_ts) = get_now_monotonic(); return true; // Updated # undef EXPOSED diff --git a/src/http/server.h b/src/http/server.h index 8ca842b..5812e47 100644 --- a/src/http/server.h +++ b/src/http/server.h @@ -61,10 +61,10 @@ struct exposed_t { unsigned queued_fps; bool online; unsigned dropped; - long double expose_begin_time; - long double expose_cmp_time; - long double expose_end_time; - long double last_as_blank_time; + long double expose_begin_ts; + long double expose_cmp_ts; + long double expose_end_ts; + long double last_as_blank_ts; }; struct http_server_runtime_t { diff --git a/src/picture.c b/src/picture.c index 686f3f7..b3d5eb0 100644 --- a/src/picture.c +++ b/src/picture.c @@ -84,9 +84,9 @@ void picture_copy(const struct picture_t *src, struct picture_t *dest) { COPY(width); COPY(height); - COPY(grab_time); - COPY(encode_begin_time); - COPY(encode_end_time); + COPY(grab_ts); + COPY(encode_begin_ts); + COPY(encode_end_ts); # undef COPY } diff --git a/src/picture.h b/src/picture.h index 4e5c4e1..045ca40 100644 --- a/src/picture.h +++ b/src/picture.h @@ -32,9 +32,9 @@ struct picture_t { size_t allocated; unsigned width; unsigned height; - long double grab_time; - long double encode_begin_time; - long double encode_end_time; + long double grab_ts; + long double encode_begin_ts; + long double encode_end_ts; }; diff --git a/src/stream.c b/src/stream.c index fc82207..d269a55 100644 --- a/src/stream.c +++ b/src/stream.c @@ -55,7 +55,7 @@ struct _worker_t { atomic_bool has_job; bool job_timely; bool job_failed; - long double job_start_time; + long double job_start_ts; pthread_cond_t has_job_cond; pthread_mutex_t *free_workers_mutex; @@ -454,10 +454,10 @@ static void *_worker_thread(void *v_worker) { } if (device_release_buffer(worker->dev, worker->buf_index) == 0) { - worker->job_start_time = PICTURE(encode_begin_time); + worker->job_start_ts = PICTURE(encode_begin_ts); atomic_store(&worker->has_job, false); - worker->last_comp_time = PICTURE(encode_end_time) - worker->job_start_time; + worker->last_comp_time = PICTURE(encode_end_ts) - worker->job_start_ts; LOG_VERBOSE("Compressed new JPEG: size=%zu, time=%0.3Lf, worker=%u, buffer=%u", PICTURE(used), worker->last_comp_time, worker->number, worker->buf_index); @@ -498,7 +498,7 @@ static struct _worker_t *_workers_pool_wait(struct _workers_pool_t *pool) { if ( !atomic_load(&pool->workers[number].has_job) && ( ready_worker == NULL - || ready_worker->job_start_time < pool->workers[number].job_start_time + || ready_worker->job_start_ts < pool->workers[number].job_start_ts ) ) { ready_worker = &pool->workers[number];