use adamo::{Protocol, Robot, VideoOptions};
fn main() -> adamo::Result<()> {
let api_key = std::env::var("ADAMO_API_KEY").expect("set ADAMO_API_KEY");
let name = std::env::var("ADAMO_ROBOT_NAME").unwrap_or_else(|_| "shm-rust-example".into());
let service = std::env::var("ADAMO_SHM_SERVICE").unwrap_or_else(|_| "camera/front".into());
let source_format =
std::env::var("ADAMO_SHM_SOURCE_FORMAT").unwrap_or_else(|_| "BGRA".into());
let output_codec =
std::env::var("ADAMO_SHM_OUTPUT_CODEC").unwrap_or_else(|_| "h264".into());
let mut robot = Robot::new(&api_key, Some(&name), Protocol::Quic)?;
let options = VideoOptions {
width: 1280,
height: 720,
pixel_format: Some(source_format.clone()),
codec: output_codec.clone(),
bitrate_kbps: 4000,
fps: 30,
..Default::default()
};
robot.attach_shm_with_options("front", &service, &options)?;
println!(
"streaming SHM service `{service}` as `front` 1280x720@30 {source_format} -> {output_codec}"
);
robot.run()
}