- 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
Task Reports
One report per completed task. Filename pattern: T<id>-report.md (e.g. T1.1-report.md).
The template lives in ../TASKS.md under "Report template". Do not deviate from it — the reviewer reads these in bulk and consistency matters.
If a task is reworked after Changes Requested, append a new section to the existing report rather than creating a new file:
## Rework — <UTC timestamp>
**Triggered by:** reviewer feedback "<short quote>"
**Commit:** <new git sha>
### What changed in this round
- ...
### Re-verification output
$ cargo test ...
Then move the task back to Pending Review in the status board.