Siavash Sameni
|
086d0a4845
|
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
|
2026-05-12 19:05:45 +04:00 |
|
Siavash Sameni
|
9334aa5ccd
|
T6.1: AV1 encoder/decoder with HW probe + SVT-AV1 SW fallback
- New: av1_obu.rs — OBU framer, depacketizer, keyframe detection, LEB128 helpers
- New: dav1d.rs — SW AV1 decoder wrapper (shiguredo_dav1d)
- New: svt_av1.rs — SW AV1 encoder wrapper (shiguredo_svt_av1)
- Add CodecId::Av1Main = 12 with match-arm fixes in downstream crates
- Add VideoToolboxAv1Decoder for macOS M3+ HW decode
- Add MediaCodecAv1Encoder/Decoder for Android (video/av01)
- Add extract_sequence_header_obu() helper for AV1 decoder CSD
- Add 10-frame encode-decode roundtrip test (svt_av1 + dav1d)
- Fix clippy unused import in dav1d.rs
- 15 tests; all workspace tests pass; cargo fmt clean
|
2026-05-12 18:44:44 +04:00 |
|
Siavash Sameni
|
283edd38eb
|
clippy: fix very_complex_type in wzp-video (HevcParameterSets alias)
|
2026-05-12 15:40:19 +04:00 |
|
Siavash Sameni
|
fdfaed5390
|
fmt: cargo fmt --all
|
2026-05-12 15:40:02 +04:00 |
|
Siavash Sameni
|
2f1a9f74d5
|
T5.5: 3-layer simulcast at sender — SimulcastEncoder + tick_simulcast() + 10 tests
|
2026-05-12 14:56:48 +04:00 |
|
Siavash Sameni
|
b197651557
|
T5.4: H.265 encoder/decoder wrappers — VideoToolbox + MediaCodec, CodecId::H265Main
|
2026-05-12 14:50:20 +04:00 |
|
Siavash Sameni
|
c48cb6fbcb
|
T5.3: EncoderMode::SlideFallback — SD-floor detection + VideoEncoder::set_mode() trait hook
|
2026-05-12 12:40:53 +04:00 |
|
Siavash Sameni
|
2e0bdc5904
|
T5.2: VideoQualityController with per-mode allocation gates + 8-step target table
|
2026-05-12 12:34:32 +04:00 |
|
Siavash Sameni
|
397f9d2141
|
T4.3.1: MediaCodec AMediaCodec wiring via ndk crate (Android); fix wzp-android build on non-Android
|
2026-05-12 10:03:43 +04:00 |
|
Siavash Sameni
|
410c2a4335
|
T4.2.1: Real VideoToolbox VTCompressionSession / VTDecompressionSession wiring (macOS)
|
2026-05-12 09:51:34 +04:00 |
|
Siavash Sameni
|
81042ac190
|
T4.4: SignalMessage::Nack + PictureLossIndication; NACK sender/receiver state machines
|
2026-05-12 09:25:29 +04:00 |
|
Siavash Sameni
|
e177e63843
|
T4.3: MediaCodec H.264 encoder/decoder stub (Android)
|
2026-05-12 09:15:06 +04:00 |
|
Siavash Sameni
|
3356ba94c6
|
T4.2: VideoToolbox H.264 encoder/decoder traits (macOS, MVP)
|
2026-05-12 09:09:57 +04:00 |
|
Siavash Sameni
|
490d2d31c6
|
T4.1: wzp-video crate scaffold + H.264 NAL framer + depacketizer
|
2026-05-12 07:22:54 +04:00 |
|