T6.1.2: Wire AV1 into call engine (factory + step tables)
- New: factory.rs — create_video_encoder/decoder dispatch by CodecId with platform-aware HW→SW fallback. AV1 encoder: SvtAv1Encoder (universal SW). AV1 decoder: VideoToolboxAv1Decoder (macOS M3+) → MediaCodecAv1Decoder (Android) → Dav1dDecoder (all platforms fallback). - controller.rs: codec-specific step tables (H.264/H.265/AV1). AV1 ~30% lower thresholds than H.264; H.265 ~20% lower. VideoQualityController gains codec field with with_codec()/set_codec()/codec() accessors. - lib.rs: export factory fns and VideoToolboxAv1Decoder - wzp-client/Cargo.toml: add wzp-video dependency - 11 new tests (7 factory + 4 controller); 77→88 wzp-video tests; fmt + clippy clean; all workspace tests pass
This commit is contained in:
@@ -11,6 +11,7 @@ pub mod decoder;
|
||||
pub mod depacketizer;
|
||||
pub mod encoder;
|
||||
pub mod encoder_mode;
|
||||
pub mod factory;
|
||||
pub mod framer;
|
||||
pub mod mediacodec;
|
||||
pub mod nack;
|
||||
@@ -25,6 +26,7 @@ pub use decoder::VideoDecoder;
|
||||
pub use depacketizer::H264Depacketizer;
|
||||
pub use encoder::{VideoEncoder, VideoError, VideoFrame};
|
||||
pub use encoder_mode::EncoderMode;
|
||||
pub use factory::{create_video_decoder, create_video_encoder};
|
||||
pub use framer::{FramedPacket, H264Framer};
|
||||
pub use mediacodec::{
|
||||
MediaCodecAv1Decoder, MediaCodecAv1Encoder, MediaCodecDecoder, MediaCodecEncoder,
|
||||
@@ -34,7 +36,8 @@ pub use nack::{CachedPacket, NackAction, NackReceiver, NackSender};
|
||||
pub use simulcast::{LayerPacket, LayerTarget, SimulcastEncoder, SimulcastLayer};
|
||||
pub use svt_av1::SvtAv1Encoder;
|
||||
pub use videotoolbox::{
|
||||
VideoToolboxDecoder, VideoToolboxEncoder, VideoToolboxHevcDecoder, VideoToolboxHevcEncoder,
|
||||
VideoToolboxAv1Decoder, VideoToolboxDecoder, VideoToolboxEncoder, VideoToolboxHevcDecoder,
|
||||
VideoToolboxHevcEncoder,
|
||||
};
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Reference in New Issue
Block a user