From 34c19268df4a0d1580595b3afd7b8c8506570cec Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Mon, 30 Dec 2024 18:17:23 -0500 Subject: [PATCH] configure encoder --- encoder/src/main.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/encoder/src/main.rs b/encoder/src/main.rs index 4f18f11..15f2247 100644 --- a/encoder/src/main.rs +++ b/encoder/src/main.rs @@ -3,7 +3,7 @@ use std::{net::SocketAddr, result, sync::Arc, thread::{self, sleep}, time::Durat use image::{ImageBuffer, Rgb}; use nokhwa::{pixel_format::RgbFormat, utils::{ApiBackend, RequestedFormat, RequestedFormatType, Resolution}, Camera}; use anyhow::{Context, Ok, Result}; -use openh264::{encoder::Encoder, formats::{RgbSliceU8, YUVBuffer}, nal_units}; +use openh264::{encoder::{Encoder, EncoderConfig, UsageType}, formats::{RgbSliceU8, YUVBuffer}, nal_units, OpenH264API}; use tokio::{io::AsyncWriteExt, net::{TcpListener, TcpStream}, runtime::Runtime, sync::{Notify, RwLock}, task::LocalSet}; fn main() -> Result<()>{ @@ -58,7 +58,13 @@ async fn camera_manager(await_frame: Arc, latest_frame: Arc, latest_frame: Arc>, mut client: TcpStream) -> Result<()>{ - let mut encoder = Encoder::new()?; + + let mut encoder = Encoder::with_api_config( + OpenH264API::from_source(), + EncoderConfig::new() + .usage_type(UsageType::CameraVideoRealTime + ))?; + loop { await_frame.notified().await;