From 809f86955d661407c130818277b06d48b1deeb80 Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Thu, 4 Oct 2018 01:29:38 +0300 Subject: [PATCH] refactoring --- src/encoder.c | 4 ++-- src/http.c | 24 ++++++++++++------------ src/logging.h | 4 ++-- src/omx/formatters.h | 2 +- src/stream.c | 4 ++-- src/tools.h | 12 ++++++------ 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/encoder.c b/src/encoder.c index e5ea97f..4eaa58b 100644 --- a/src/encoder.c +++ b/src/encoder.c @@ -131,7 +131,7 @@ void encoder_prepare_for_device(struct encoder_t *encoder, struct device_t *dev) int encoder_compress_buffer(struct encoder_t *encoder, struct device_t *dev, const unsigned index) { assert(encoder->type != ENCODER_TYPE_UNKNOWN); - dev->run->pictures[index].encode_begin_time = now_monotonic_ms(); + dev->run->pictures[index].encode_begin_time = get_now_monotonic(); if (encoder->type == ENCODER_TYPE_CPU) { jpeg_encoder_compress_buffer(dev, index, encoder->quality); @@ -144,7 +144,7 @@ int encoder_compress_buffer(struct encoder_t *encoder, struct device_t *dev, con } # endif - dev->run->pictures[index].encode_end_time = now_monotonic_ms(); + dev->run->pictures[index].encode_end_time = get_now_monotonic(); return 0; diff --git a/src/http.c b/src/http.c index 00f097b..51ab3a9 100644 --- a/src/http.c +++ b/src/http.c @@ -208,7 +208,7 @@ static void _http_callback_snapshot(struct evhttp_request *request, void *v_serv # define ADD_TIME_HEADER(_key, _value) \ { sprintf(time_buf, "%.06Lf", _value); ADD_HEADER(_key, time_buf); } - ADD_TIME_HEADER("X-Timestamp", now_real_ms()); + ADD_TIME_HEADER("X-Timestamp", get_now_real()); ADD_HEADER("X-UStreamer-Picture-Type", (EXPOSED(type) == PICTURE_TYPE_REAL ? "real" : "blank")); ADD_TIME_HEADER("X-UStreamer-Grab-Time", EXPOSED(picture.grab_time)); @@ -217,7 +217,7 @@ static void _http_callback_snapshot(struct evhttp_request *request, void *v_serv 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", now_monotonic_ms()); + ADD_TIME_HEADER("X-UStreamer-Send-Time", get_now_monotonic()); # undef ADD_TIME_HEADER @@ -314,7 +314,7 @@ static void _http_callback_stream_write(struct bufferevent *buf_event, void *v_c "X-Timestamp: %.06Lf" RN "%s", EXPOSED(picture.size) * sizeof(*EXPOSED(picture.data)), - now_real_ms(), (client->server->extra_stream_headers ? "" : RN) + get_now_real(), (client->server->extra_stream_headers ? "" : RN) )); if (client->server->extra_stream_headers) { assert(evbuffer_add_printf(buf, @@ -334,7 +334,7 @@ static void _http_callback_stream_write(struct bufferevent *buf_event, void *v_c EXPOSED(expose_begin_time), EXPOSED(expose_cmp_time), EXPOSED(expose_end_time), - now_monotonic_ms() + get_now_monotonic() )); } @@ -434,7 +434,7 @@ static void _http_exposed_refresh(UNUSED int fd, UNUSED short what, void *v_serv } if (queue_send) { - if ((now = ms_to_s(now_monotonic_ms())) != eps_second) { + if ((now = floor_ms(get_now_monotonic())) != eps_second) { server->run->exposed->eps = eps; eps = 0; eps_second = now; @@ -454,7 +454,7 @@ static bool _expose_new_picture(struct http_server_t *server) { assert(STREAM(picture.size) > 0); EXPOSED(fps) = STREAM(fps); - EXPOSED(expose_begin_time) = now_monotonic_ms(); + EXPOSED(expose_begin_time) = get_now_monotonic(); # define MEM_STREAM_TO_EXPOSED \ EXPOSED(picture.data), STREAM(picture.data), \ @@ -467,7 +467,7 @@ static bool _expose_new_picture(struct http_server_t *server) { && EXPOSED(picture.size) == STREAM(picture.size) && !memcmp(MEM_STREAM_TO_EXPOSED) ) { - EXPOSED(expose_cmp_time) = now_monotonic_ms(); + EXPOSED(expose_cmp_time) = get_now_monotonic(); EXPOSED(expose_end_time) = EXPOSED(expose_cmp_time); LOG_PERF( "HTTP: dropped same frame number %u; comparsion time = %.06Lf", @@ -476,7 +476,7 @@ static bool _expose_new_picture(struct http_server_t *server) { EXPOSED(dropped) += 1; return false; // Not updated } else { - EXPOSED(expose_cmp_time) = now_monotonic_ms(); + EXPOSED(expose_cmp_time) = get_now_monotonic(); LOG_PERF( "HTTP: passed same frame check (frames are differ); comparsion time = %.06Lf", EXPOSED(expose_cmp_time) - EXPOSED(expose_begin_time) @@ -505,7 +505,7 @@ static bool _expose_new_picture(struct http_server_t *server) { EXPOSED(online) = true; EXPOSED(dropped) = 0; EXPOSED(expose_cmp_time) = EXPOSED(expose_begin_time); - EXPOSED(expose_end_time) = now_monotonic_ms(); + EXPOSED(expose_end_time) = get_now_monotonic(); # undef STREAM # undef EXPOSED @@ -515,7 +515,7 @@ static bool _expose_new_picture(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) = now_monotonic_ms(); + EXPOSED(expose_begin_time) = get_now_monotonic(); EXPOSED(expose_cmp_time) = EXPOSED(expose_begin_time); if (EXPOSED(online) || EXPOSED(picture.size) == 0) { @@ -546,13 +546,13 @@ 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) = now_monotonic_ms(); + EXPOSED(expose_end_time) = get_now_monotonic(); return false; // Not updated } updated: EXPOSED(dropped) = 0; - EXPOSED(expose_end_time) = now_monotonic_ms(); + EXPOSED(expose_end_time) = get_now_monotonic(); return true; // Updated # undef EXPOSED diff --git a/src/logging.h b/src/logging.h index 4101f43..00745c3 100644 --- a/src/logging.h +++ b/src/logging.h @@ -71,7 +71,7 @@ pthread_mutex_t log_mutex; } #define LOG_PRINTF_NOLOCK(_label, _msg, ...) { \ - printf("-- " _label " [%.03Lf tid=%ld] -- " _msg "\n", now_monotonic_ms(), syscall(SYS_gettid), ##__VA_ARGS__); \ + printf("-- " _label " [%.03Lf tid=%ld] -- " _msg "\n", get_now_monotonic(), syscall(SYS_gettid), ##__VA_ARGS__); \ fflush(stdout); \ } @@ -85,7 +85,7 @@ pthread_mutex_t log_mutex; char _buf[1024] = ""; \ strerror_r(errno, _buf, 1024); \ LOGGING_LOCK; \ - printf("-- ERROR [%.03Lf tid=%ld] -- " _msg ": %s\n", now_monotonic_ms(), syscall(SYS_gettid), ##__VA_ARGS__, _buf); \ + printf("-- ERROR [%.03Lf tid=%ld] -- " _msg ": %s\n", get_now_monotonic(), syscall(SYS_gettid), ##__VA_ARGS__, _buf); \ fflush(stdout); \ LOGGING_UNLOCK; \ } diff --git a/src/omx/formatters.h b/src/omx/formatters.h index 3bcd873..f878be2 100644 --- a/src/omx/formatters.h +++ b/src/omx/formatters.h @@ -35,7 +35,7 @@ #define LOG_OMX_ERROR(_error, _msg, ...) { \ LOGGING_LOCK; \ - printf("-- ERROR [%.03Lf tid=%ld] -- " _msg ": %s\n", now_monotonic_ms(), \ + printf("-- ERROR [%.03Lf tid=%ld] -- " _msg ": %s\n", get_now_monotonic(), \ syscall(SYS_gettid), ##__VA_ARGS__, omx_error_to_string(_error)); \ LOGGING_UNLOCK; \ } diff --git a/src/stream.c b/src/stream.c index 3c67ff1..11252b7 100644 --- a/src/stream.c +++ b/src/stream.c @@ -162,8 +162,8 @@ void stream_loop(struct stream_t *stream) { LOG_DEBUG("Frame is ready"); struct v4l2_buffer buf_info; - long double now = now_monotonic_ms(); - long long now_second = ms_to_s(now); + long double now = get_now_monotonic(); + long long now_second = floor_ms(now); if (_stream_grab_buffer(stream->dev, &buf_info) < 0) { break; diff --git a/src/tools.h b/src/tools.h index db6308d..fa9e602 100644 --- a/src/tools.h +++ b/src/tools.h @@ -61,11 +61,11 @@ INLINE unsigned max_u(unsigned a, unsigned b) { return (a > b ? a : b); } -INLINE long long ms_to_s(long double now) { +INLINE long long floor_ms(long double now) { return (long long) now - (now < (long long) now); // floor() } -INLINE void now_ms(clockid_t clk_id, time_t *sec, long *msec) { +INLINE void get_now(clockid_t clk_id, time_t *sec, long *msec) { struct timespec spec; assert(!clock_gettime(clk_id, &spec)); @@ -78,18 +78,18 @@ INLINE void now_ms(clockid_t clk_id, time_t *sec, long *msec) { } } -INLINE long double now_monotonic_ms(void) { +INLINE long double get_now_monotonic(void) { time_t sec; long msec; - now_ms(CLOCK_MONOTONIC_RAW, &sec, &msec); + get_now(CLOCK_MONOTONIC_RAW, &sec, &msec); return (long double)sec + ((long double)msec) / 1000; } -INLINE long double now_real_ms(void) { +INLINE long double get_now_real(void) { time_t sec; long msec; - now_ms(CLOCK_REALTIME, &sec, &msec); + get_now(CLOCK_REALTIME, &sec, &msec); return (long double)sec + ((long double)msec) / 1000; }