mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-05-26 23:36:16 +00:00
refactoring
This commit is contained in:
@@ -214,7 +214,7 @@ static _enc_buffer_s *_enc_buffer_init(void) {
|
|||||||
static void *_pcm_thread(void *v_audio) {
|
static void *_pcm_thread(void *v_audio) {
|
||||||
US_THREAD_SETTLE("us_a_pcm");
|
US_THREAD_SETTLE("us_a_pcm");
|
||||||
|
|
||||||
us_audio_s *const audio = (us_audio_s *)v_audio;
|
us_audio_s *const audio = v_audio;
|
||||||
u8 in[_MAX_BUF8];
|
u8 in[_MAX_BUF8];
|
||||||
|
|
||||||
while (!atomic_load(&audio->stop)) {
|
while (!atomic_load(&audio->stop)) {
|
||||||
@@ -244,7 +244,7 @@ static void *_pcm_thread(void *v_audio) {
|
|||||||
static void *_encoder_thread(void *v_audio) {
|
static void *_encoder_thread(void *v_audio) {
|
||||||
US_THREAD_SETTLE("us_a_enc");
|
US_THREAD_SETTLE("us_a_enc");
|
||||||
|
|
||||||
us_audio_s *const audio = (us_audio_s *)v_audio;
|
us_audio_s *const audio = v_audio;
|
||||||
s16 in_res[_MAX_BUF16];
|
s16 in_res[_MAX_BUF16];
|
||||||
|
|
||||||
while (!atomic_load(&audio->stop)) {
|
while (!atomic_load(&audio->stop)) {
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ static void *_audio_thread(void *v_client) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void *_common_thread(void *v_client, bool video) {
|
static void *_common_thread(void *v_client, bool video) {
|
||||||
us_janus_client_s *const client = (us_janus_client_s *)v_client;
|
us_janus_client_s *const client = v_client;
|
||||||
us_ring_s *const ring = (video ? client->video_ring : client->audio_ring);
|
us_ring_s *const ring = (video ? client->video_ring : client->audio_ring);
|
||||||
assert(ring != NULL); // Audio may be NULL
|
assert(ring != NULL); // Audio may be NULL
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ us_output_file_s *us_output_file_init(const char *path, bool json) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void us_output_file_write(void *v_output, const us_frame_s *frame) {
|
void us_output_file_write(void *v_output, const us_frame_s *frame) {
|
||||||
us_output_file_s *output = (us_output_file_s *)v_output;
|
us_output_file_s *output = v_output;
|
||||||
if (output->json) {
|
if (output->json) {
|
||||||
us_base64_encode(frame->data, frame->used, &output->base64_data, &output->base64_allocated);
|
us_base64_encode(frame->data, frame->used, &output->base64_data, &output->base64_allocated);
|
||||||
fprintf(output->fp,
|
fprintf(output->fp,
|
||||||
@@ -66,7 +66,7 @@ void us_output_file_write(void *v_output, const us_frame_s *frame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void us_output_file_destroy(void *v_output) {
|
void us_output_file_destroy(void *v_output) {
|
||||||
us_output_file_s *output = (us_output_file_s *)v_output;
|
us_output_file_s *output = v_output;
|
||||||
US_DELETE(output->base64_data, free);
|
US_DELETE(output->base64_data, free);
|
||||||
if (output->fp && output->fp != stdout) {
|
if (output->fp && output->fp != stdout) {
|
||||||
if (fclose(output->fp) < 0) {
|
if (fclose(output->fp) < 0) {
|
||||||
|
|||||||
@@ -194,13 +194,13 @@ static void *_worker_job_init(void *v_enc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void _worker_job_destroy(void *v_job) {
|
static void _worker_job_destroy(void *v_job) {
|
||||||
us_encoder_job_s *job = (us_encoder_job_s *)v_job;
|
us_encoder_job_s *job = v_job;
|
||||||
us_frame_destroy(job->dest);
|
us_frame_destroy(job->dest);
|
||||||
free(job);
|
free(job);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool _worker_run_job(us_worker_s *wr) {
|
static bool _worker_run_job(us_worker_s *wr) {
|
||||||
us_encoder_job_s *job = (us_encoder_job_s *)wr->job;
|
us_encoder_job_s *job = wr->job;
|
||||||
us_encoder_s *enc = job->enc; // Just for _ER()
|
us_encoder_s *enc = job->enc; // Just for _ER()
|
||||||
const us_frame_s *src = &job->hw->raw;
|
const us_frame_s *src = &job->hw->raw;
|
||||||
us_frame_s *dest = job->dest;
|
us_frame_s *dest = job->dest;
|
||||||
|
|||||||
@@ -63,7 +63,12 @@ void us_cpu_encoder_compress(const us_frame_s *src, us_frame_s *dest, unsigned q
|
|||||||
jpeg.image_width = src->width;
|
jpeg.image_width = src->width;
|
||||||
jpeg.image_height = src->height;
|
jpeg.image_height = src->height;
|
||||||
jpeg.input_components = 3;
|
jpeg.input_components = 3;
|
||||||
jpeg.in_color_space = ((src->format == V4L2_PIX_FMT_YUYV || src->format == V4L2_PIX_FMT_UYVY) ? JCS_YCbCr : JCS_RGB);
|
switch (src->format) {
|
||||||
|
case V4L2_PIX_FMT_YUYV:
|
||||||
|
case V4L2_PIX_FMT_YVYU:
|
||||||
|
case V4L2_PIX_FMT_UYVY: jpeg.in_color_space = JCS_YCbCr; break;
|
||||||
|
default: jpeg.in_color_space = JCS_RGB; break;
|
||||||
|
}
|
||||||
|
|
||||||
jpeg_set_defaults(&jpeg);
|
jpeg_set_defaults(&jpeg);
|
||||||
jpeg_set_quality(&jpeg, quality, TRUE);
|
jpeg_set_quality(&jpeg, quality, TRUE);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ long double us_workers_pool_get_fluency_delay(us_workers_pool_s *pool, const us_
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void *_worker_thread(void *v_worker) {
|
static void *_worker_thread(void *v_worker) {
|
||||||
us_worker_s *wr = (us_worker_s *)v_worker;
|
us_worker_s *wr = v_worker;
|
||||||
|
|
||||||
US_THREAD_SETTLE("%s", wr->name);
|
US_THREAD_SETTLE("%s", wr->name);
|
||||||
US_LOG_DEBUG("Hello! I am a worker %s ^_^", wr->name);
|
US_LOG_DEBUG("Hello! I am a worker %s ^_^", wr->name);
|
||||||
|
|||||||
Reference in New Issue
Block a user