summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authordyknon dyknonr5fjp2025-02-28 01:26:55 +0900
committerdyknon dyknonr5fjp2025-02-28 01:26:55 +0900
commit55cae3e208dcc5579470f90d16a49ad7331b6b23 (patch)
treee780061c0a7040782c4ba920219fad91e4acc9a9 /src/bin
parentcdbcbd22d7508df4bbaf9a95ac0ea8ebeea5ef87 (diff)
make less delay (but not works correctly)
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/sshcamera.rs22
1 files changed, 6 insertions, 16 deletions
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<ExitCode>{
@@ -21,7 +22,7 @@ fn main() -> Result<ExitCode>{
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<ExitCode>{
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)