From 55cae3e208dcc5579470f90d16a49ad7331b6b23 Mon Sep 17 00:00:00 2001 From: dyknon Date: Fri, 28 Feb 2025 01:26:55 +0900 Subject: make less delay (but not works correctly) --- src/bin/sshcamera.rs | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'src/bin/sshcamera.rs') diff --git a/src/bin/sshcamera.rs b/src/bin/sshcamera.rs index 270700a..1add8cd 100644 --- a/src/bin/sshcamera.rs +++ b/src/bin/sshcamera.rs @@ -2,11 +2,12 @@ use anyhow::{anyhow, Result}; use sshcamera::v4l2::{Device as V4l2, Field}; use sshcamera::v4l2cairo::V4l2Cairo; use sshcamera::gtk; -use sshcamera::v4l2abst::{CaptStream, RemoteCam}; +use sshcamera::v4l2abst::RemoteCam; use sshcamera::io::RWBundle; +use sshcamera::source; use gtk4::glib::ExitCode; use std::env; -use std::io::{self, Read as _, Write as _}; +use std::io; use std::process::{Command, Stdio}; fn main() -> Result{ @@ -21,7 +22,7 @@ fn main() -> Result{ let v = V4l2::open(arg1)?; // TODO: It should be better. - let mut c = v.captstream_builder()? + let c = v.captstream_builder()? .set_pixelformat("MJPG".into()) //.set_pixelformat("YUYV".into()) .set_field(Field::None) @@ -29,19 +30,8 @@ fn main() -> Result{ assert!(["YUYV", "MJPG"].contains(&c.pixelformat().as_str())); assert!(c.field() == Field::None); - let mut io = RWBundle(io::stdin(), io::stdout()); - loop{ - CaptStream::next(&mut c, |frame|{ - frame.serialize(&mut io)?; - io.flush()?; - let mut rb = [0]; - io.read_exact(&mut rb)?; - if rb[0] != 0x2e{ - return Err(anyhow!("protocol error")); - } - Ok(()) - })??; - } + let io = RWBundle(io::stdin(), io::stdout()); + source::main(c, io).and(Ok(ExitCode::SUCCESS)) }else{ let child = Command::new(arg1) .args(args) -- cgit v1.2.3