From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 44C7C4A382 for ; Wed, 27 Mar 2024 10:21:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8BA1368D5B3; Wed, 27 Mar 2024 12:21:42 +0200 (EET) Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58CD168D500 for ; Wed, 27 Mar 2024 12:21:35 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=YluuQBeB; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 01EB04D51 for ; Wed, 27 Mar 2024 11:21:35 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id WIU0O1-Smebw for ; Wed, 27 Mar 2024 11:21:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1711534892; bh=lXgbmt36K4MLzHqKuzCsOKnM/N32epHrXnDGGXKMkPQ=; h=From:To:Subject:Date:From; b=YluuQBeBEEQ4Lm0gB4vLBhMC2CKZ/E1W8C7LxZv6puJ1hm9wjQVnERje6gDSJLd5o o02jIYw/2ZikHv06PZqN3U2MnvAIAzm5XlT7E3yk+nm1IuFg6Ab42Bw6YtIzVhas3v La18Go1ThRaPUAibE4pan3jRWL2RPmgn4SoZxXqz2or7eubg27EHFGpFWDoeP7XdWU uIulno3QOGcpuG8wfsni1UJ7CYMlimldP41npsSC+NP2CKXTGdSp995Uq6teFe2Wrv D4Zq+y6WYJf91im/kFEMf+GkBDw0e4UXWPRDnFtp53ZOlg83eO72GD3IG4bQ2e0o4/ cKxUNbRHVr5iw== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 1F58C4462 for ; Wed, 27 Mar 2024 11:21:32 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id EE4A33A0357 for ; Wed, 27 Mar 2024 11:21:31 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Mar 2024 11:21:25 +0100 Message-ID: <20240327102126.14299-1-anton@khirnov.net> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] fftools/ffmpeg_sched: move sch_stop() to the bottom of the file X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Will allow avoiding forward declarations in following commits. --- fftools/ffmpeg_sched.c | 138 ++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/fftools/ffmpeg_sched.c b/fftools/ffmpeg_sched.c index ec88017e21..67c32fb5a0 100644 --- a/fftools/ffmpeg_sched.c +++ b/fftools/ffmpeg_sched.c @@ -399,22 +399,6 @@ static int queue_alloc(ThreadQueue **ptq, unsigned nb_streams, unsigned queue_si static void *task_wrapper(void *arg); -static int task_stop(SchTask *task) -{ - int ret; - void *thread_ret; - - if (!task->thread_running) - return 0; - - ret = pthread_join(task->thread, &thread_ret); - av_assert0(ret == 0); - - task->thread_running = 0; - - return (intptr_t)thread_ret; -} - static int task_start(SchTask *task) { int ret; @@ -468,59 +452,6 @@ static int64_t trailing_dts(const Scheduler *sch, int count_finished) return min_dts == INT64_MAX ? AV_NOPTS_VALUE : min_dts; } -int sch_stop(Scheduler *sch, int64_t *finish_ts) -{ - int ret = 0, err; - - atomic_store(&sch->terminate, 1); - - for (unsigned type = 0; type < 2; type++) - for (unsigned i = 0; i < (type ? sch->nb_demux : sch->nb_filters); i++) { - SchWaiter *w = type ? &sch->demux[i].waiter : &sch->filters[i].waiter; - waiter_set(w, 1); - } - - for (unsigned i = 0; i < sch->nb_demux; i++) { - SchDemux *d = &sch->demux[i]; - - err = task_stop(&d->task); - ret = err_merge(ret, err); - } - - for (unsigned i = 0; i < sch->nb_dec; i++) { - SchDec *dec = &sch->dec[i]; - - err = task_stop(&dec->task); - ret = err_merge(ret, err); - } - - for (unsigned i = 0; i < sch->nb_filters; i++) { - SchFilterGraph *fg = &sch->filters[i]; - - err = task_stop(&fg->task); - ret = err_merge(ret, err); - } - - for (unsigned i = 0; i < sch->nb_enc; i++) { - SchEnc *enc = &sch->enc[i]; - - err = task_stop(&enc->task); - ret = err_merge(ret, err); - } - - for (unsigned i = 0; i < sch->nb_mux; i++) { - SchMux *mux = &sch->mux[i]; - - err = task_stop(&mux->task); - ret = err_merge(ret, err); - } - - if (finish_ts) - *finish_ts = trailing_dts(sch, 1); - - return ret; -} - void sch_free(Scheduler **psch) { Scheduler *sch = *psch; @@ -2518,3 +2449,72 @@ static void *task_wrapper(void *arg) return (void*)(intptr_t)ret; } + +static int task_stop(SchTask *task) +{ + int ret; + void *thread_ret; + + if (!task->thread_running) + return 0; + + ret = pthread_join(task->thread, &thread_ret); + av_assert0(ret == 0); + + task->thread_running = 0; + + return (intptr_t)thread_ret; +} + +int sch_stop(Scheduler *sch, int64_t *finish_ts) +{ + int ret = 0, err; + + atomic_store(&sch->terminate, 1); + + for (unsigned type = 0; type < 2; type++) + for (unsigned i = 0; i < (type ? sch->nb_demux : sch->nb_filters); i++) { + SchWaiter *w = type ? &sch->demux[i].waiter : &sch->filters[i].waiter; + waiter_set(w, 1); + } + + for (unsigned i = 0; i < sch->nb_demux; i++) { + SchDemux *d = &sch->demux[i]; + + err = task_stop(&d->task); + ret = err_merge(ret, err); + } + + for (unsigned i = 0; i < sch->nb_dec; i++) { + SchDec *dec = &sch->dec[i]; + + err = task_stop(&dec->task); + ret = err_merge(ret, err); + } + + for (unsigned i = 0; i < sch->nb_filters; i++) { + SchFilterGraph *fg = &sch->filters[i]; + + err = task_stop(&fg->task); + ret = err_merge(ret, err); + } + + for (unsigned i = 0; i < sch->nb_enc; i++) { + SchEnc *enc = &sch->enc[i]; + + err = task_stop(&enc->task); + ret = err_merge(ret, err); + } + + for (unsigned i = 0; i < sch->nb_mux; i++) { + SchMux *mux = &sch->mux[i]; + + err = task_stop(&mux->task); + ret = err_merge(ret, err); + } + + if (finish_ts) + *finish_ts = trailing_dts(sch, 1); + + return ret; +} -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".