Skip to content

Commit e3c33a4

Browse files
committed
simplify progress bar finish and consolidate dec_bar function
1 parent 133f36b commit e3c33a4

File tree

4 files changed

+23
-40
lines changed

4 files changed

+23
-40
lines changed

av1an-core/src/broker.rs

+6-15
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@ 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;
1616
use crate::{
17-
finish_multi_progress_bar, finish_progress_bar, get_done, Chunk, DoneChunk, Instant, Verbosity,
17+
finish_progress_bar, get_done, Chunk, DoneChunk, Instant,
1818
};
1919

2020
pub struct Broker<'a> {
21-
pub max_tries: usize,
2221
pub chunk_queue: Vec<Chunk>,
2322
pub project: &'a EncodeArgs,
2423
}
@@ -169,11 +168,7 @@ impl<'a> Broker<'a> {
169168
})
170169
.unwrap();
171170

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-
}
171+
finish_progress_bar();
177172
}
178173
}
179174

@@ -196,21 +191,17 @@ impl<'a> Broker<'a> {
196191

197192
let passes = chunk.passes;
198193
for current_pass in 1..=passes {
199-
for r#try in 1..=self.max_tries {
194+
for r#try in 1..=self.project.max_tries {
200195
let res = self
201196
.project
202197
.create_pipes(chunk, current_pass, worker_id, padding);
203198
if let Err((e, frames)) = res {
204-
if self.project.verbosity == Verbosity::Normal {
205199
dec_bar(frames);
206-
} else if self.project.verbosity == Verbosity::Verbose {
207-
dec_mp_bar(frames);
208-
}
209200

210-
if r#try == self.max_tries {
201+
if r#try == self.project.max_tries {
211202
error!(
212203
"[chunk {}] encoder failed {} times, shutting down worker",
213-
chunk.index, self.max_tries
204+
chunk.index, self.project.max_tries
214205
);
215206
return Err(e);
216207
}

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

+12-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) {
@@ -159,10 +164,17 @@ pub fn set_pos(pos: u64) {
159164
}
160165
}
161166

167+
162168
pub fn finish_progress_bar() {
163169
if let Some(pb) = PROGRESS_BAR.get() {
164170
pb.finish();
165171
}
172+
173+
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
174+
for pb in pbs.iter() {
175+
pb.finish();
176+
}
177+
}
166178
}
167179

168180
static MULTI_PROGRESS_BAR: OnceCell<(MultiProgress, Vec<ProgressBar>)> = OnceCell::new();
@@ -258,13 +270,6 @@ pub fn inc_mp_bar(inc: u64) {
258270
}
259271
}
260272

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-
268273
pub fn update_mp_bar_info(kbps: f64, est_size: HumanBytes) {
269274
if let Some((_, pbs)) = MULTI_PROGRESS_BAR.get() {
270275
pbs
@@ -274,14 +279,6 @@ pub fn update_mp_bar_info(kbps: f64, est_size: HumanBytes) {
274279
}
275280
}
276281

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-
285282
pub fn update_progress_bar_estimates(frame_rate: f64, total_frames: usize, verbosity: Verbosity) {
286283
let completed_frames: usize = get_done()
287284
.done

av1an-core/src/settings.rs

+4-9
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ use crate::concat::{self, ConcatMethod};
3030
use crate::ffmpeg::{compose_ffmpeg_pipe, num_frames};
3131
use crate::parse::valid_params;
3232
use crate::progress_bar::{
33-
finish_progress_bar, inc_bar, inc_mp_bar, init_multi_progress_bar, init_progress_bar,
33+
inc_bar, inc_mp_bar, init_multi_progress_bar, init_progress_bar,
3434
reset_bar_at, reset_mp_bar_at, set_audio_size, update_mp_chunk, update_mp_msg,
35-
update_progress_bar_estimates,
35+
update_progress_bar_estimates, finish_progress_bar,
3636
};
3737
use crate::scene_detect::av_scenechange_detect;
3838
use crate::scenes::{Scene, ZoneOptions};
3939
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,
43+
create_dir, determine_workers, get_done, init_done, into_vec,
4444
read_chunk_queue, save_chunk_queue, ChunkMethod, ChunkOrdering, DashMap, DoneJson, Encoder,
4545
Input, ScenecutMethod, SplitMethod, TargetQuality, Verbosity,
4646
};
@@ -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)