Skip to content

Commit 8259fc1

Browse files
committed
Add some logging
Fixes #19 Signed-off-by: Šimon Brandner <[email protected]>
1 parent 43e5a11 commit 8259fc1

File tree

5 files changed

+23
-0
lines changed

5 files changed

+23
-0
lines changed

crates/oblichey-cli/src/camera/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ mod utils;
22

33
use crate::geometry::Vec2D;
44
use image::{ImageBuffer, ImageError, Rgb};
5+
use log::{error, trace, warn};
56
use std::fmt::Display;
67
use std::io;
78
use std::sync::atomic::{AtomicBool, Ordering};
@@ -78,6 +79,8 @@ impl Camera {
7879
///
7980
/// This is going to panic if a supported output pixel format cannot be found
8081
pub fn new(camera_path: &str) -> Result<Self, Error> {
82+
trace!("Creating Camera");
83+
8184
let device = Device::with_path(camera_path)?;
8285
let mut format = device.format()?;
8386
let frame_size = Vec2D::new(format.width, format.height);
@@ -95,6 +98,9 @@ impl Camera {
9598
let Some(pixel_format) = chosen_pixel_format else {
9699
return Err(Error::CannotSetFormat);
97100
};
101+
102+
trace!("Chosen camera format: {format:?}");
103+
98104
#[cfg(not(feature = "rgb-webcam"))]
99105
assert_eq!(
100106
pixel_format,
@@ -132,6 +138,8 @@ pub fn start(frame: &Arc<Mutex<Option<Frame>>>, finished: &Arc<AtomicBool>, came
132138
let new_frame = match camera.get_frame() {
133139
Ok(f) => f,
134140
Err(e) => {
141+
error!("Failed to get frame: {e}");
142+
135143
failed_frames_in_row += 1;
136144
assert!(
137145
failed_frames_in_row < MAX_FAILED_FRAMES_IN_ROW,

crates/oblichey-cli/src/gui/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use eframe::{
1616
},
1717
EventLoopBuilderHook, NativeOptions,
1818
};
19+
use log::{trace, warn};
1920
use std::{
2021
fmt::Display,
2122
sync::{
@@ -55,6 +56,8 @@ pub fn start(
5556
faces: Arc<Mutex<Vec<FaceForGUI>>>,
5657
finished: Arc<AtomicBool>,
5758
) {
59+
trace!("Creating GUI");
60+
5861
let event_loop_builder: Option<EventLoopBuilderHook> = Some(Box::new(|event_loop_builder| {
5962
wayland::EventLoopBuilderExtWayland::with_any_thread(event_loop_builder, true);
6063
x11::EventLoopBuilderExtX11::with_any_thread(event_loop_builder, true);
@@ -179,6 +182,7 @@ impl Gui {
179182
impl eframe::App for Gui {
180183
fn update(&mut self, ctx: &egui::Context, _: &mut eframe::Frame) {
181184
if self.finished.load(Ordering::SeqCst) {
185+
trace!("Sending viewport command to close window");
182186
ctx.send_viewport_cmd(egui::ViewportCommand::Close);
183187
return;
184188
}
@@ -188,6 +192,7 @@ impl eframe::App for Gui {
188192
Err(e) => panic!("Failed to get lock: {e}"),
189193
};
190194
let Some(image) = frame_lock.clone() else {
195+
warn!("Do not have a frame to render");
191196
ctx.request_repaint();
192197
return;
193198
};

crates/oblichey-cli/src/main.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use camera::Frame;
1111
use clap::Parser;
1212
use config::Config;
1313
use flexi_logger::{FileSpec, Logger};
14+
use log::trace;
1415
use processors::auth_processor::AuthProcessor;
1516
use processors::face::{FaceEmbedding, FaceForGUI};
1617
use processors::face_processor::FaceProcessor;
@@ -99,6 +100,8 @@ fn handle_command(
99100
config: &Config,
100101
face_embeddings: HashMap<String, FaceEmbedding>,
101102
) -> ExitCode {
103+
trace!("Handling command: {command:?}");
104+
102105
match command {
103106
Command::Remove { name } => {
104107
if !face_embeddings.contains_key(&name) {
@@ -186,6 +189,8 @@ fn start_threads(
186189
config: &Config,
187190
gui: bool,
188191
) {
192+
trace!("Starting threads");
193+
189194
let frame: Arc<Mutex<Option<Frame>>> = Arc::new(Mutex::new(None));
190195
let faces_for_gui: Arc<Mutex<Vec<FaceForGUI>>> = Arc::new(Mutex::new(Vec::new()));
191196
let finished: Arc<AtomicBool> = Arc::new(AtomicBool::new(false));

crates/oblichey-cli/src/processors/frame_processor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use crate::{
99
};
1010
use burn::backend::{wgpu::WgpuDevice, Wgpu};
1111
use image::imageops::{crop, resize, FilterType};
12+
use log::trace;
1213
use mockall_double::double;
1314

1415
type Backend = Wgpu<f32, i32>;
@@ -77,6 +78,7 @@ impl FrameProcessor {
7778
let face = self.recognizer.forward(&face_image);
7879
Ok(face)
7980
} else {
81+
trace!("Detected face too small");
8082
Err(FaceRecognitionError::TooSmall)
8183
},
8284
});

crates/oblichey-cli/src/processors/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ pub mod face_processor;
44
pub mod frame_processor;
55
pub mod scan_processor;
66

7+
use log::warn;
8+
79
use self::{face::FaceForGUI, face_processor::FaceProcessor, frame_processor::FrameProcessor};
810
use crate::camera::Frame;
911
use std::sync::{
@@ -30,6 +32,7 @@ pub fn start(
3032
Err(e) => panic!("Failed to get lock: {e}"),
3133
};
3234
let Some(new_frame) = (*frame_lock).clone() else {
35+
warn!("No frame to process");
3336
continue;
3437
};
3538
drop(frame_lock);

0 commit comments

Comments
 (0)