Skip to content

Commit 9a94d06

Browse files
simplify progress bar finish and consolidate dec_bar function (#755)
1 parent 133f36b commit 9a94d06

File tree

4 files changed

+23
-43
lines changed

4 files changed

+23
-43
lines changed

av1an-core/src/broker.rs

+7-18
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@ use cfg_if::cfg_if;
1010
use smallvec::SmallVec;
1111
use thiserror::Error;
1212

13-
use crate::progress_bar::{dec_bar, dec_mp_bar, update_progress_bar_estimates};
13+
use crate::progress_bar::{dec_bar, update_progress_bar_estimates};
1414
use crate::settings::EncodeArgs;
1515
use crate::util::printable_base10_digits;
16-
use crate::{
17-
finish_multi_progress_bar, finish_progress_bar, get_done, Chunk, DoneChunk, Instant, Verbosity,
18-
};
16+
use crate::{finish_progress_bar, get_done, Chunk, DoneChunk, Instant};
1917

2018
pub struct Broker<'a> {
21-
pub max_tries: usize,
2219
pub chunk_queue: Vec<Chunk>,
2320
pub project: &'a EncodeArgs,
2421
}
@@ -169,11 +166,7 @@ impl<'a> Broker<'a> {
169166
})
170167
.unwrap();
171168

172-
if self.project.verbosity == Verbosity::Normal {
173-
finish_progress_bar();
174-
} else if self.project.verbosity == Verbosity::Verbose {
175-
finish_multi_progress_bar();
176-
}
169+
finish_progress_bar();
177170
}
178171
}
179172

@@ -196,21 +189,17 @@ impl<'a> Broker<'a> {
196189

197190
let passes = chunk.passes;
198191
for current_pass in 1..=passes {
199-
for r#try in 1..=self.max_tries {
192+
for r#try in 1..=self.project.max_tries {
200193
let res = self
201194
.project
202195
.create_pipes(chunk, current_pass, worker_id, padding);
203196
if let Err((e, frames)) = res {
204-
if self.project.verbosity == Verbosity::Normal {
205-
dec_bar(frames);
206-
} else if self.project.verbosity == Verbosity::Verbose {
207-
dec_mp_bar(frames);
208-
}
197+
dec_bar(frames);
209198

210-
if r#try == self.max_tries {
199+
if r#try == self.project.max_tries {
211200
error!(
212201
"[chunk {}] encoder failed {} times, shutting down worker",
213-
chunk.index, self.max_tries
202+
chunk.index, self.project.max_tries
214203
);
215204
return Err(e);
216205
}

av1an-core/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ use strum::{Display, EnumString, IntoStaticStr};
4444
use sysinfo::SystemExt;
4545

4646
use crate::encoder::Encoder;
47-
use crate::progress_bar::{finish_multi_progress_bar, finish_progress_bar};
47+
use crate::progress_bar::finish_progress_bar;
4848
use crate::target_quality::TargetQuality;
4949

5050
pub mod broker;

av1an-core/src/progress_bar.rs

+11-15
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ pub fn dec_bar(dec: u64) {
145145
if let Some(pb) = PROGRESS_BAR.get() {
146146
pb.set_position(pb.position().saturating_sub(dec));
147147
}
148+
149+
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
150+
let pb = pbs.last().unwrap();
151+
pb.set_position(pb.position().saturating_sub(dec));
152+
}
148153
}
149154

150155
pub fn update_bar_info(kbps: f64, est_size: HumanBytes) {
@@ -163,6 +168,12 @@ pub fn finish_progress_bar() {
163168
if let Some(pb) = PROGRESS_BAR.get() {
164169
pb.finish();
165170
}
171+
172+
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
173+
for pb in pbs.iter() {
174+
pb.finish();
175+
}
176+
}
166177
}
167178

168179
static MULTI_PROGRESS_BAR: OnceCell<(MultiProgress, Vec<ProgressBar>)> = OnceCell::new();
@@ -258,13 +269,6 @@ pub fn inc_mp_bar(inc: u64) {
258269
}
259270
}
260271

261-
pub fn dec_mp_bar(dec: u64) {
262-
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
263-
let pb = pbs.last().unwrap();
264-
pb.set_position(pb.position().saturating_sub(dec));
265-
}
266-
}
267-
268272
pub fn update_mp_bar_info(kbps: f64, est_size: HumanBytes) {
269273
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
270274
pbs
@@ -274,14 +278,6 @@ pub fn update_mp_bar_info(kbps: f64, est_size: HumanBytes) {
274278
}
275279
}
276280

277-
pub fn finish_multi_progress_bar() {
278-
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
279-
for pb in pbs.iter() {
280-
pb.finish();
281-
}
282-
}
283-
}
284-
285281
pub fn update_progress_bar_estimates(frame_rate: f64, total_frames: usize, verbosity: Verbosity) {
286282
let completed_frames: usize = get_done()
287283
.done

av1an-core/src/settings.rs

+4-9
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ use crate::split::{extra_splits, segment, write_scenes_to_file};
4040
use crate::vapoursynth::{create_vs_file, is_ffms2_installed, is_lsmash_installed};
4141
use crate::vmaf::{self, validate_libvmaf};
4242
use crate::{
43-
create_dir, determine_workers, finish_multi_progress_bar, get_done, init_done, into_vec,
44-
read_chunk_queue, save_chunk_queue, ChunkMethod, ChunkOrdering, DashMap, DoneJson, Encoder,
45-
Input, ScenecutMethod, SplitMethod, TargetQuality, Verbosity,
43+
create_dir, determine_workers, get_done, init_done, into_vec, read_chunk_queue, save_chunk_queue,
44+
ChunkMethod, ChunkOrdering, DashMap, DoneJson, Encoder, Input, ScenecutMethod, SplitMethod,
45+
TargetQuality, Verbosity,
4646
};
4747

4848
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
@@ -1295,7 +1295,6 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
12951295
let broker = Broker {
12961296
chunk_queue,
12971297
project: self,
1298-
max_tries: self.max_tries,
12991298
};
13001299

13011300
let (tx, rx) = mpsc::channel();
@@ -1311,11 +1310,7 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
13111310

13121311
handle.join().unwrap();
13131312

1314-
if self.verbosity == Verbosity::Normal {
1315-
finish_progress_bar();
1316-
} else if self.verbosity == Verbosity::Verbose {
1317-
finish_multi_progress_bar();
1318-
}
1313+
finish_progress_bar();
13191314

13201315
// TODO add explicit parameter to concatenation functions to control whether audio is also muxed in
13211316
let _audio_output_exists =

0 commit comments

Comments
 (0)