From 775bf32a6fdc76b20fb2cdb90bd7ebf50c1113ee Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Mon, 28 Dec 2020 07:09:52 +0300 Subject: [PATCH] refactoring --- src/rawsink/rawsink.c | 16 ++++++++-------- src/rawsink/rawsink.h | 4 ++-- src/ustreamer/encoder.c | 22 +++++++++++----------- src/ustreamer/encoder.h | 2 +- src/ustreamer/encoders/cpu/encoder.c | 18 +++++++++--------- src/ustreamer/encoders/cpu/encoder.h | 2 +- src/ustreamer/encoders/hw/encoder.c | 6 +++--- src/ustreamer/encoders/hw/encoder.h | 2 +- src/ustreamer/encoders/omx/encoder.c | 16 ++++++++-------- src/ustreamer/encoders/omx/encoder.h | 2 +- src/ustreamer/http/server.h | 2 +- 11 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/rawsink/rawsink.c b/src/rawsink/rawsink.c index 07ae790..590647f 100644 --- a/src/rawsink/rawsink.c +++ b/src/rawsink/rawsink.c @@ -129,13 +129,13 @@ void rawsink_destroy(rawsink_s *rawsink) { free(rawsink); } -int rawsink_server_put(rawsink_s *rawsink, frame_s *raw) { +int rawsink_server_put(rawsink_s *rawsink, frame_s *frame) { long double now = get_now_monotonic(); assert(rawsink->server); - if (raw->used > RAWSINK_MAX_DATA) { - LOG_ERROR("RAWSINK: Can't put RAW frame: is too big (%zu > %zu)", raw->used, RAWSINK_MAX_DATA); + if (frame->used > RAWSINK_MAX_DATA) { + LOG_ERROR("RAWSINK: Can't put RAW frame: is too big (%zu > %zu)", frame->used, RAWSINK_MAX_DATA); return 0; // -2 } @@ -147,13 +147,13 @@ int rawsink_server_put(rawsink_s *rawsink, frame_s *raw) { return -1; } -# define COPY(_field) rawsink->mem->_field = raw->_field +# define COPY(_field) rawsink->mem->_field = frame->_field COPY(used); COPY(format); COPY(width); COPY(height); COPY(grab_ts); - memcpy(rawsink->mem->data, raw->data, raw->used); + memcpy(rawsink->mem->data, frame->data, frame->used); # undef COPY if (sem_post(rawsink->sig_sem) < 0) { @@ -176,7 +176,7 @@ int rawsink_server_put(rawsink_s *rawsink, frame_s *raw) { return 0; } -int rawsink_client_get(rawsink_s *rawsink, frame_s *raw) { // cppcheck-suppress unusedFunction +int rawsink_client_get(rawsink_s *rawsink, frame_s *frame) { // cppcheck-suppress unusedFunction assert(!rawsink->server); // Client only if (_sem_timedwait_monotonic(rawsink->sig_sem, rawsink->timeout) < 0) { @@ -194,12 +194,12 @@ int rawsink_client_get(rawsink_s *rawsink, frame_s *raw) { // cppcheck-suppress return -1; } -# define COPY(_field) raw->_field = rawsink->mem->_field +# define COPY(_field) frame->_field = rawsink->mem->_field COPY(width); COPY(height); COPY(format); COPY(grab_ts); - frame_set_data(raw, rawsink->mem->data, rawsink->mem->used); + frame_set_data(frame, rawsink->mem->data, rawsink->mem->used); # undef COPY if (flock(rawsink->fd, LOCK_UN) < 0) { diff --git a/src/rawsink/rawsink.h b/src/rawsink/rawsink.h index 3de34cb..446412f 100644 --- a/src/rawsink/rawsink.h +++ b/src/rawsink/rawsink.h @@ -72,5 +72,5 @@ typedef struct { rawsink_s *rawsink_init(const char *name, bool server, mode_t mode, bool rm, unsigned timeout); void rawsink_destroy(rawsink_s *rawsink); -int rawsink_server_put(rawsink_s *rawsink, frame_s *raw); -int rawsink_client_get(rawsink_s *rawsink, frame_s *raw); +int rawsink_server_put(rawsink_s *rawsink, frame_s *frame); +int rawsink_client_get(rawsink_s *rawsink, frame_s *frame); diff --git a/src/ustreamer/encoder.c b/src/ustreamer/encoder.c index 54483af..a42e58b 100644 --- a/src/ustreamer/encoder.c +++ b/src/ustreamer/encoder.c @@ -207,26 +207,26 @@ void encoder_get_runtime_params(encoder_s *encoder, encoder_type_e *type, unsign #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic push -int encoder_compress(encoder_s *encoder, unsigned worker_number, frame_s *raw, frame_s *frame) { +int encoder_compress(encoder_s *encoder, unsigned worker_number, frame_s *src, frame_s *dest) { #pragma GCC diagnostic pop assert(ER(type) != ENCODER_TYPE_UNKNOWN); - assert(raw->used > 0); + assert(src->used > 0); - frame->grab_ts = raw->grab_ts; - frame->encode_begin_ts = get_now_monotonic(); + dest->grab_ts = src->grab_ts; + dest->encode_begin_ts = get_now_monotonic(); if (ER(type) == ENCODER_TYPE_CPU) { LOG_VERBOSE("Compressing buffer using CPU"); - cpu_encoder_compress(raw, frame, ER(quality)); + cpu_encoder_compress(src, dest, ER(quality)); } else if (ER(type) == ENCODER_TYPE_HW) { LOG_VERBOSE("Compressing buffer using HW (just copying)"); - hw_encoder_compress(raw, frame); + hw_encoder_compress(src, dest); } # ifdef WITH_OMX else if (ER(type) == ENCODER_TYPE_OMX) { LOG_VERBOSE("Compressing buffer using OMX"); - if (omx_encoder_compress(ER(omxs[worker_number]), raw, frame) < 0) { + if (omx_encoder_compress(ER(omxs[worker_number]), src, dest) < 0) { goto error; } } @@ -238,11 +238,11 @@ int encoder_compress(encoder_s *encoder, unsigned worker_number, frame_s *raw, f } # endif - frame->encode_end_ts = get_now_monotonic(); + dest->encode_end_ts = get_now_monotonic(); - frame->width = raw->width; - frame->height = raw->height; - frame->format = V4L2_PIX_FMT_JPEG; + dest->width = src->width; + dest->height = src->height; + dest->format = V4L2_PIX_FMT_JPEG; return 0; diff --git a/src/ustreamer/encoder.h b/src/ustreamer/encoder.h index 292c513..09b4557 100644 --- a/src/ustreamer/encoder.h +++ b/src/ustreamer/encoder.h @@ -111,4 +111,4 @@ const char *encoder_type_to_string(encoder_type_e type); void encoder_prepare(encoder_s *encoder, device_s *dev); void encoder_get_runtime_params(encoder_s *encoder, encoder_type_e *type, unsigned *quality); -int encoder_compress(encoder_s *encoder, unsigned worker_number, frame_s *raw, frame_s *frame); +int encoder_compress(encoder_s *encoder, unsigned worker_number, frame_s *src, frame_s *dest); diff --git a/src/ustreamer/encoders/cpu/encoder.c b/src/ustreamer/encoders/cpu/encoder.c index 9b94dc7..e7855f0 100644 --- a/src/ustreamer/encoders/cpu/encoder.c +++ b/src/ustreamer/encoders/cpu/encoder.c @@ -35,7 +35,7 @@ typedef struct { } _jpeg_dest_manager_s; -static void _jpeg_set_picture(j_compress_ptr jpeg, frame_s *frame); +static void _jpeg_set_dest_frame(j_compress_ptr jpeg, frame_s *frame); static void _jpeg_write_scanlines_yuyv( struct jpeg_compress_struct *jpeg, const uint8_t *data, @@ -58,7 +58,7 @@ static boolean _jpeg_empty_output_buffer(j_compress_ptr jpeg); static void _jpeg_term_destination(j_compress_ptr jpeg); -void cpu_encoder_compress(frame_s *raw, frame_s *frame, unsigned quality) { +void cpu_encoder_compress(frame_s *src, frame_s *dest, unsigned quality) { // This function based on compress_image_to_jpeg() from mjpg-streamer struct jpeg_compress_struct jpeg; @@ -67,10 +67,10 @@ void cpu_encoder_compress(frame_s *raw, frame_s *frame, unsigned quality) { jpeg.err = jpeg_std_error(&jpeg_error); jpeg_create_compress(&jpeg); - _jpeg_set_picture(&jpeg, frame); + _jpeg_set_dest_frame(&jpeg, dest); - jpeg.image_width = raw->width; - jpeg.image_height = raw->height; + jpeg.image_width = src->width; + jpeg.image_height = src->height; jpeg.input_components = 3; jpeg.in_color_space = JCS_RGB; @@ -80,9 +80,9 @@ void cpu_encoder_compress(frame_s *raw, frame_s *frame, unsigned quality) { jpeg_start_compress(&jpeg, TRUE); # define WRITE_SCANLINES(_format, _func) \ - case _format: { _func(&jpeg, raw->data, raw->width, raw->height); break; } + case _format: { _func(&jpeg, src->data, src->width, src->height); break; } - switch (raw->format) { + switch (src->format) { // https://www.fourcc.org/yuv.php WRITE_SCANLINES(V4L2_PIX_FMT_YUYV, _jpeg_write_scanlines_yuyv); WRITE_SCANLINES(V4L2_PIX_FMT_UYVY, _jpeg_write_scanlines_uyvy); @@ -96,10 +96,10 @@ void cpu_encoder_compress(frame_s *raw, frame_s *frame, unsigned quality) { jpeg_finish_compress(&jpeg); jpeg_destroy_compress(&jpeg); - assert(frame->used > 0); + assert(dest->used > 0); } -static void _jpeg_set_picture(j_compress_ptr jpeg, frame_s *frame) { +static void _jpeg_set_dest_frame(j_compress_ptr jpeg, frame_s *frame) { _jpeg_dest_manager_s *dest; if (jpeg->dest == NULL) { diff --git a/src/ustreamer/encoders/cpu/encoder.h b/src/ustreamer/encoders/cpu/encoder.h index 2823df3..8bdcfa5 100644 --- a/src/ustreamer/encoders/cpu/encoder.h +++ b/src/ustreamer/encoders/cpu/encoder.h @@ -35,4 +35,4 @@ #include "../../../common/frame.h" -void cpu_encoder_compress(frame_s *raw, frame_s *frame, unsigned quality); +void cpu_encoder_compress(frame_s *src, frame_s *dest, unsigned quality); diff --git a/src/ustreamer/encoders/hw/encoder.c b/src/ustreamer/encoders/hw/encoder.c index 66399b8..f107f85 100644 --- a/src/ustreamer/encoders/hw/encoder.c +++ b/src/ustreamer/encoders/hw/encoder.c @@ -49,11 +49,11 @@ int hw_encoder_prepare(device_s *dev, unsigned quality) { return 0; } -void hw_encoder_compress(frame_s *raw, frame_s *frame) { - if (raw->format != V4L2_PIX_FMT_MJPEG && raw->format != V4L2_PIX_FMT_JPEG) { +void hw_encoder_compress(frame_s *src, frame_s *dest) { + if (src->format != V4L2_PIX_FMT_MJPEG && src->format != V4L2_PIX_FMT_JPEG) { assert(0 && "Unsupported input format for HW encoder"); } - _copy_plus_huffman(raw, frame); + _copy_plus_huffman(src, dest); } void _copy_plus_huffman(const frame_s *src, frame_s *dest) { diff --git a/src/ustreamer/encoders/hw/encoder.h b/src/ustreamer/encoders/hw/encoder.h index 62220ca..68a7e27 100644 --- a/src/ustreamer/encoders/hw/encoder.h +++ b/src/ustreamer/encoders/hw/encoder.h @@ -39,4 +39,4 @@ int hw_encoder_prepare(device_s *dev, unsigned quality); -void hw_encoder_compress(frame_s *raw, frame_s *frame); +void hw_encoder_compress(frame_s *src, frame_s *dest); diff --git a/src/ustreamer/encoders/omx/encoder.c b/src/ustreamer/encoders/omx/encoder.c index 5410fe4..0cfc926 100644 --- a/src/ustreamer/encoders/omx/encoder.c +++ b/src/ustreamer/encoders/omx/encoder.c @@ -154,12 +154,12 @@ int omx_encoder_prepare(omx_encoder_s *omx, device_s *dev, unsigned quality) { return 0; } -int omx_encoder_compress(omx_encoder_s *omx, frame_s *raw, frame_s *frame) { +int omx_encoder_compress(omx_encoder_s *omx, frame_s *src, frame_s *dest) { # define IN(_next) omx->input_buffer->_next # define OUT(_next) omx->output_buffer->_next OMX_ERRORTYPE error; - size_t slice_size = (IN(nAllocLen) < raw->used ? IN(nAllocLen) : raw->used); + size_t slice_size = (IN(nAllocLen) < src->used ? IN(nAllocLen) : src->used); size_t pos = 0; if ((error = OMX_FillThisBuffer(omx->encoder, omx->output_buffer)) != OMX_ErrorNone) { @@ -167,7 +167,7 @@ int omx_encoder_compress(omx_encoder_s *omx, frame_s *raw, frame_s *frame) { return -1; } - frame->used = 0; + dest->used = 0; omx->output_available = false; omx->input_required = true; @@ -179,7 +179,7 @@ int omx_encoder_compress(omx_encoder_s *omx, frame_s *raw, frame_s *frame) { if (omx->output_available) { omx->output_available = false; - frame_append_data(frame, OUT(pBuffer) + OUT(nOffset), OUT(nFilledLen)); + frame_append_data(dest, OUT(pBuffer) + OUT(nOffset), OUT(nFilledLen)); if (OUT(nFlags) & OMX_BUFFERFLAG_ENDOFFRAME) { OUT(nFlags) = 0; @@ -195,18 +195,18 @@ int omx_encoder_compress(omx_encoder_s *omx, frame_s *raw, frame_s *frame) { if (omx->input_required) { omx->input_required = false; - if (pos == raw->used) { + if (pos == src->used) { continue; } - memcpy(IN(pBuffer), raw->data + pos, slice_size); + memcpy(IN(pBuffer), src->data + pos, slice_size); IN(nOffset) = 0; IN(nFilledLen) = slice_size; pos += slice_size; - if (pos + slice_size > raw->used) { - slice_size = raw->used - pos; + if (pos + slice_size > src->used) { + slice_size = src->used - pos; } if ((error = OMX_EmptyThisBuffer(omx->encoder, omx->input_buffer)) != OMX_ErrorNone) { diff --git a/src/ustreamer/encoders/omx/encoder.h b/src/ustreamer/encoders/omx/encoder.h index 8c44ae2..00c98ed 100644 --- a/src/ustreamer/encoders/omx/encoder.h +++ b/src/ustreamer/encoders/omx/encoder.h @@ -71,4 +71,4 @@ omx_encoder_s *omx_encoder_init(void); void omx_encoder_destroy(omx_encoder_s *omx); int omx_encoder_prepare(omx_encoder_s *omx, device_s *dev, unsigned quality); -int omx_encoder_compress(omx_encoder_s *omx, frame_s *raw, frame_s *frame); +int omx_encoder_compress(omx_encoder_s *omx, frame_s *src, frame_s *dest); diff --git a/src/ustreamer/http/server.h b/src/ustreamer/http/server.h index ccc98eb..f2b3ec5 100644 --- a/src/ustreamer/http/server.h +++ b/src/ustreamer/http/server.h @@ -94,7 +94,7 @@ typedef struct stream_client_sx { } stream_client_s; typedef struct { - frame_s *frame; + frame_s *frame; unsigned captured_fps; unsigned queued_fps; bool online;