Siavash Sameni
5d05b021aa
fix(wzp-video): gate shiguredo AV1 crates to macOS only; fix Linux relay build
...
- Cargo.toml: merge duplicate [target.macos.deps] sections; move
shiguredo_dav1d/svt_av1/video_toolbox into single block
- lib.rs: dav1d + svt_av1 modules and re-exports guarded by
cfg(target_os = "macos") instead of cfg(not(android))
- factory.rs: AV1 encoder/decoder paths split into macos (svt-av1/dav1d)
and linux fallback (NotInitialized); update doc comments and tests
- build-linux-docker.sh: build only wzp-relay + wzp-web (drops
wzp-client which pulled in shiguredo crates); fix Docker copy step;
add --deploy flag + deploy_relay(); fix branch auto-detection
- build-tauri-android.sh: default to release build, arm64 only
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-25 06:33:35 +04:00
Siavash Sameni
f3e3ee5ed0
fix(wzp-video): cfg-gate dav1d + svt-av1 off Android target
...
shiguredo_dav1d and shiguredo_svt_av1 build scripts panic with
'unsupported target: os=android, arch=aarch64'. The AV1 SW fallback
is only needed on macOS / Linux desktop — Android uses MediaCodec
for AV1 anyway.
- Cargo.toml: AV1 SW deps moved under cfg(not(target_os = "android"))
- lib.rs: cfg-gate the dav1d and svt_av1 modules and re-exports
- factory.rs: on Android, Av1Main paths return NotInitialized when
HW MediaCodec is also unavailable (only path on Android)
- factory tests: assert NotInitialized on Android, Ok elsewhere
Unblocks T4.3.1.1 (Android target-compile of wzp-video / mediacodec).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-12 19:58:37 +04:00
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
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
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