From dd86e8cb42a6fc009a4618b010c26de89743b26a Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Tue, 8 Dec 2020 10:38:42 +0300 Subject: [PATCH] refactoring --- src/ustreamer/encoder.c | 7 +++++++ src/ustreamer/encoder.h | 1 + src/ustreamer/http/server.c | 15 +++++---------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/ustreamer/encoder.c b/src/ustreamer/encoder.c index 880c130..bb86ccb 100644 --- a/src/ustreamer/encoder.c +++ b/src/ustreamer/encoder.c @@ -191,6 +191,13 @@ void encoder_prepare(struct encoder_t *encoder, struct device_t *dev) { A_MUTEX_UNLOCK(&ER(mutex)); } +void encoder_get_runtime_params(struct encoder_t *encoder, enum encoder_type_t *type, unsigned *quality) { + A_MUTEX_LOCK(&ER(mutex)); + *type = ER(type); + *quality = ER(quality); + A_MUTEX_UNLOCK(&ER(mutex)); +} + #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic push int encoder_compress_buffer( diff --git a/src/ustreamer/encoder.h b/src/ustreamer/encoder.h index 03cccdd..d13a73f 100644 --- a/src/ustreamer/encoder.h +++ b/src/ustreamer/encoder.h @@ -109,6 +109,7 @@ enum encoder_type_t encoder_parse_type(const char *str); const char *encoder_type_to_string(enum encoder_type_t type); void encoder_prepare(struct encoder_t *encoder, struct device_t *dev); +void encoder_get_runtime_params(struct encoder_t *encoder, enum encoder_type_t *type, unsigned *quality); int encoder_compress_buffer( struct encoder_t *encoder, unsigned worker_number, diff --git a/src/ustreamer/http/server.c b/src/ustreamer/http/server.c index 674cacc..60a3672 100644 --- a/src/ustreamer/http/server.c +++ b/src/ustreamer/http/server.c @@ -394,17 +394,12 @@ static void _http_callback_static(struct evhttp_request *request, void *v_server static void _http_callback_state(struct evhttp_request *request, void *v_server) { struct http_server_t *server = (struct http_server_t *)v_server; struct evbuffer *buf; - enum encoder_type_t encoder_run_type; - unsigned encoder_run_quality; + enum encoder_type_t encoder_type; + unsigned encoder_quality; PREPROCESS_REQUEST; -# define ER(_next) STREAM(encoder->run->_next) - A_MUTEX_LOCK(&ER(mutex)); - encoder_run_type = ER(type); - encoder_run_quality = ER(quality); - A_MUTEX_UNLOCK(&ER(mutex)); -# undef ER + encoder_get_runtime_params(STREAM(encoder), &encoder_type, &encoder_quality); assert((buf = evbuffer_new())); @@ -414,8 +409,8 @@ static void _http_callback_state(struct evhttp_request *request, void *v_server) " \"source\": {\"resolution\": {\"width\": %u, \"height\": %u}," " \"online\": %s, \"desired_fps\": %u, \"captured_fps\": %u}," " \"stream\": {\"queued_fps\": %u, \"clients\": %u, \"clients_stat\": {", - encoder_type_to_string(encoder_run_type), - encoder_run_quality, + encoder_type_to_string(encoder_type), + encoder_quality, (server->fake_width ? server->fake_width : EX(picture->width)), (server->fake_height ? server->fake_height : EX(picture->height)), bool_to_string(EX(online)),