This commit is contained in:
2026-03-30 11:22:19 +02:00
parent db9201e2ed
commit d3197b9603
7 changed files with 57 additions and 7 deletions

View File

@@ -52,7 +52,7 @@ fn build_pipeline(output_path: &std::path::Path) -> Result<gst::Pipeline, AppErr
"autovideosrc ! videoconvert ! tee name=t ",
"t. ! queue ! vp8enc deadline=1 ! webmmux ! filesink location=\"{}\" ",
"t. ! queue leaky=downstream max-size-buffers=1 ! videoconvert ! ",
"jpegenc quality=80 ! appsink name=preview_sink emit-signals=false max-buffers=1 drop=true sync=false"
"jpegenc quality=80 ! appsink name=preview_sink max-buffers=1 drop=true sync=false"
),
location
);
@@ -123,6 +123,8 @@ fn attach_preview_callbacks(
let bytes = map.as_slice().to_vec();
tracing::info!(size = bytes.len(), "preview sample received");
let lock_result = preview_store.lock();
match lock_result {
Ok(mut guard) => {
@@ -284,9 +286,12 @@ pub fn get_video_preview_frame_base64(
};
let Some(bytes) = guard.as_ref() else {
tracing::info!("preview frame requested but none is available yet");
return Ok(None);
};
tracing::info!(size = bytes.len(), "preview frame requested and returned");
let encoded = base64::engine::general_purpose::STANDARD.encode(bytes);
Ok(Some(encoded))
}