From ec2e6c313b18efa2b05ebcf1757e906a1010ea64 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Tue, 20 Jan 2026 02:48:39 +0200 Subject: [PATCH] removed old fps regulation for jpeg encoders --- src/ustreamer/encoder.c | 8 +------- src/ustreamer/workers.c | 13 +++---------- src/ustreamer/workers.h | 3 +-- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/src/ustreamer/encoder.c b/src/ustreamer/encoder.c index 839f00a..ff4d6f5 100644 --- a/src/ustreamer/encoder.c +++ b/src/ustreamer/encoder.c @@ -162,14 +162,8 @@ void us_encoder_open(us_encoder_s *enc, us_capture_s *cap) { run->quality = quality; US_MUTEX_UNLOCK(run->mutex); - const ldf desired_interval = ( - cap->desired_fps > 0 && (cap->desired_fps < cap->run->hw_fps || cap->run->hw_fps == 0) - ? (ldf)1 / cap->desired_fps - : 0 - ); - enc->run->pool = us_workers_pool_init( - "JPEG", "jw", n_workers, desired_interval, + "JPEG", "jw", n_workers, _worker_job_init, (void*)enc, _worker_job_destroy, _worker_run_job); diff --git a/src/ustreamer/workers.c b/src/ustreamer/workers.c index b3c067e..c5d4e70 100644 --- a/src/ustreamer/workers.c +++ b/src/ustreamer/workers.c @@ -37,7 +37,7 @@ static void *_worker_thread(void *v_worker); us_workers_pool_s *us_workers_pool_init( - const char *name, const char *wr_prefix, uint n_workers, ldf desired_interval, + const char *name, const char *wr_prefix, uint n_workers, us_workers_pool_job_init_f job_init, void *job_init_arg, us_workers_pool_job_destroy_f job_destroy, us_workers_pool_run_job_f run_job) { @@ -47,7 +47,6 @@ us_workers_pool_s *us_workers_pool_init( us_workers_pool_s *pool; US_CALLOC(pool, 1); pool->name = name; - pool->desired_interval = desired_interval; pool->job_destroy = job_destroy; pool->run_job = run_job; @@ -147,14 +146,8 @@ ldf us_workers_pool_get_fluency_delay(us_workers_pool_s *pool, const us_worker_s pool->approx_job_time = approx_job_time; - const ldf min_delay = pool->approx_job_time / pool->n_workers; // Среднее время работы размазывается на N воркеров - - if (pool->desired_interval > 0 && min_delay > 0 && pool->desired_interval > min_delay) { - // Искусственное время задержки на основе желаемого FPS, если включен --desired-fps - // и аппаратный fps не попадает точно в желаемое значение - return pool->desired_interval; - } - return min_delay; + // Среднее время работы размазывается на N воркеров + return (pool->approx_job_time / pool->n_workers); } static void *_worker_thread(void *v_worker) { diff --git a/src/ustreamer/workers.h b/src/ustreamer/workers.h index 749fb4f..99f09c1 100644 --- a/src/ustreamer/workers.h +++ b/src/ustreamer/workers.h @@ -56,7 +56,6 @@ typedef bool (*us_workers_pool_run_job_f)(us_worker_s *wr); typedef struct us_workers_pool_sx { const char *name; - ldf desired_interval; us_workers_pool_job_destroy_f job_destroy; us_workers_pool_run_job_f run_job; @@ -76,7 +75,7 @@ typedef struct us_workers_pool_sx { us_workers_pool_s *us_workers_pool_init( - const char *name, const char *wr_prefix, uint n_workers, ldf desired_interval, + const char *name, const char *wr_prefix, uint n_workers, us_workers_pool_job_init_f job_init, void *job_init_arg, us_workers_pool_job_destroy_f job_destroy, us_workers_pool_run_job_f run_job);