Skip to content

Commit 330e6a2

Browse files
Move framerate to chunk (#742)
1 parent d4be990 commit 330e6a2

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

av1an-core/src/broker.rs

+4-10
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,6 @@ impl<'a> Broker<'a> {
137137
}
138138
}
139139

140-
let frame_rate = self.project.input.frame_rate().unwrap();
141-
142140
crossbeam_utils::thread::scope(|s| {
143141
let consumers: Vec<_> = (0..self.project.workers)
144142
.map(|idx| (receiver.clone(), &self, idx))
@@ -162,12 +160,9 @@ impl<'a> Broker<'a> {
162160
}
163161

164162
while let Ok(mut chunk) = rx.recv() {
165-
if let Err(e) = queue.encode_chunk(
166-
&mut chunk,
167-
worker_id,
168-
frame_rate,
169-
Arc::clone(&audio_size_ref),
170-
) {
163+
if let Err(e) =
164+
queue.encode_chunk(&mut chunk, worker_id, Arc::clone(&audio_size_ref))
165+
{
171166
error!("[chunk {}] {}", chunk.index, e);
172167

173168
tx.send(()).unwrap();
@@ -196,7 +191,6 @@ impl<'a> Broker<'a> {
196191
&self,
197192
chunk: &mut Chunk,
198193
worker_id: usize,
199-
frame_rate: f64,
200194
audio_size_bytes: Arc<AtomicU64>,
201195
) -> Result<(), Box<EncoderCrash>> {
202196
let st_time = Instant::now();
@@ -261,7 +255,7 @@ impl<'a> Broker<'a> {
261255
.unwrap();
262256

263257
update_progress_bar_estimates(
264-
frame_rate,
258+
chunk.frame_rate,
265259
self.project.frames,
266260
self.project.verbosity,
267261
audio_size_bytes.load(atomic::Ordering::SeqCst),

av1an-core/src/chunk.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ use std::path::Path;
44
use av1_grain::{generate_photon_noise_params, write_grain_table, NoiseGenArgs};
55
use serde::{Deserialize, Serialize};
66

7+
use crate::encoder::Encoder;
8+
use crate::settings::insert_noise_table_params;
79
use crate::Input;
8-
use crate::{encoder::Encoder, settings::insert_noise_table_params};
910

1011
#[derive(Debug, Clone, Serialize, Deserialize)]
1112
pub struct Chunk {
@@ -17,6 +18,7 @@ pub struct Chunk {
1718
pub start_frame: usize,
1819
// End frame is exclusive, i.e. the range of frames is `start_frame..end_frame`
1920
pub end_frame: usize,
21+
pub frame_rate: f64,
2022
pub passes: u8,
2123
pub video_params: Vec<String>,
2224
pub encoder: Encoder,
@@ -95,6 +97,7 @@ mod tests {
9597
output_ext: "ivf".to_owned(),
9698
start_frame: 0,
9799
end_frame: 5,
100+
frame_rate: 30.0,
98101
tq_cq: None,
99102
passes: 1,
100103
video_params: vec![],
@@ -112,6 +115,7 @@ mod tests {
112115
output_ext: "ivf".to_owned(),
113116
start_frame: 0,
114117
end_frame: 5,
118+
frame_rate: 30.0,
115119
tq_cq: None,
116120
passes: 1,
117121
video_params: vec![],
@@ -130,6 +134,7 @@ mod tests {
130134
output_ext: "ivf".to_owned(),
131135
start_frame: 0,
132136
end_frame: 5,
137+
frame_rate: 30.0,
133138
tq_cq: None,
134139
passes: 1,
135140
video_params: vec![],

av1an-core/src/settings.rs

+9
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,8 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
856856

857857
let output_ext = self.encoder.output_extension();
858858

859+
let frame_rate = self.input.frame_rate().unwrap();
860+
859861
let mut chunk = Chunk {
860862
temp: self.temp.clone(),
861863
index,
@@ -864,6 +866,7 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
864866
output_ext: output_ext.to_owned(),
865867
start_frame,
866868
end_frame,
869+
frame_rate,
867870
video_params: overrides
868871
.as_ref()
869872
.map_or_else(|| self.video_params.clone(), |ovr| ovr.video_params.clone()),
@@ -904,6 +907,8 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
904907

905908
let output_ext = self.encoder.output_extension();
906909

910+
let frame_rate = self.input.frame_rate().unwrap();
911+
907912
let mut chunk = Chunk {
908913
temp: self.temp.clone(),
909914
index,
@@ -912,6 +917,7 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
912917
output_ext: output_ext.to_owned(),
913918
start_frame: scene.start_frame,
914919
end_frame: scene.end_frame,
920+
frame_rate,
915921
video_params: scene
916922
.zone_overrides
917923
.as_ref()
@@ -1077,6 +1083,8 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
10771083

10781084
let num_frames = num_frames(Path::new(file))?;
10791085

1086+
let frame_rate = self.input.frame_rate().unwrap();
1087+
10801088
let mut chunk = Chunk {
10811089
temp: self.temp.clone(),
10821090
input: Input::Video(PathBuf::from(file)),
@@ -1085,6 +1093,7 @@ properly into a mkv file. Specify mkvmerge as the concatenation method by settin
10851093
index,
10861094
start_frame: 0,
10871095
end_frame: num_frames,
1096+
frame_rate,
10881097
video_params: overrides
10891098
.as_ref()
10901099
.map_or_else(|| self.video_params.clone(), |ovr| ovr.video_params.clone()),

0 commit comments

Comments
 (0)