diff --git a/av1an-core/src/context.rs b/av1an-core/src/context.rs index 667cd562..e26ebfda 100644 --- a/av1an-core/src/context.rs +++ b/av1an-core/src/context.rs @@ -916,8 +916,14 @@ impl Av1anContext { || self.args.video_params.clone(), |ovr| ovr.video_params.clone(), ), - passes: self.args.passes, - encoder: self.args.encoder, + passes: overrides.as_ref().map_or( + self.args.passes, + |ovr| ovr.passes, + ), + encoder: overrides.as_ref().map_or( + self.args.encoder.clone(), + |ovr| ovr.encoder.clone(), + ), noise_size: self.args.photon_noise_size, tq_cq: None, ignore_frame_mismatch: self.args.ignore_frame_mismatch, @@ -972,8 +978,14 @@ impl Av1anContext { || self.args.video_params.clone(), |ovr| ovr.video_params.clone(), ), - passes: self.args.passes, - encoder: self.args.encoder, + passes: scene.zone_overrides.as_ref().map_or( + self.args.passes, + |ovr| ovr.passes, + ), + encoder: scene.zone_overrides.as_ref().map_or( + self.args.encoder.clone(), + |ovr| ovr.encoder.clone(), + ), noise_size: self.args.photon_noise_size, tq_cq: None, ignore_frame_mismatch: self.args.ignore_frame_mismatch, @@ -1175,8 +1187,14 @@ impl Av1anContext { || self.args.video_params.clone(), |ovr| ovr.video_params.clone(), ), - passes: self.args.passes, - encoder: self.args.encoder, + passes: overrides.as_ref().map_or( + self.args.passes, + |ovr| ovr.passes, + ), + encoder: overrides.as_ref().map_or( + self.args.encoder.clone(), + |ovr| ovr.encoder.clone(), + ), noise_size: self.args.photon_noise_size, tq_cq: None, ignore_frame_mismatch: self.args.ignore_frame_mismatch,