rff-codec-av2 0.2.0

Remade FFmpeg (Rust): AV2 decoder, backed by the in-house pure-Rust rusty_av2d engine (no C/FFI).
Documentation
# rff-codec-av2

AV2 decoding for [`remade_ffmpeg_rs`](https://github.com/Remade-With-Rust/remade_ffmpeg_rs),
backed by the pure-Rust [`rusty_av2d`](https://crates.io/crates/rusty_av2d)
engine — no C, no FFI.

This crate is a thin adapter. `register()` wires the decoder into a
`CodecRegistry`; a private wrapper translates between the rff `Decoder` trait
and `rusty_av2d`'s push/pull API. All codec logic — the decoder that is
byte-identical to AOM's `avmdec` across a 45-clip conformance corpus — lives in
`rusty_av2d`.

```rust
let mut registry = rff_codec::CodecRegistry::new();
rff_codec_av2::register(&mut registry);
let mut decoder = registry.find_decoder(rff_core::CodecId::Av2)?;
```

From the CLI, AV2 in an IVF container (fourcc `AV02`) is detected automatically:

```sh
rff -i input.ivf -c:v rawvideo out.y4m
```

## Scope

**Decode only** — there is no AV2 encoder, and the registry does not advertise
one.

**Research preview.** AV2 is not a finalized standard: there are no official
conformance vectors, correctness is defined against the AVM reference as of the
pinned `rusty_av2d` release, and the bitstream may still change. Performance is
unoptimized. See `rusty_av2d`'s `STATUS.md` for the full scope statement.

Monochrome (4:0:0) output is refused rather than approximated — no corpus clip
exercises it.

## Linking alongside AV1

`rusty_av2d` and `rusty_av1d` share the dav1d symbol lineage, so their C ABI and
assembly table exports collide at link time. This crate depends on `rusty_av2d`
with `default-features = false`, which drops both and leaves the safe Rust API —
that is how this workspace links AV1 and AV2 into one binary.

## License

Apache-2.0 (this adapter). The underlying `rusty_av2d` engine is BSD-2-Clause.