coreav command is the coreav-cli crate. Its Cargo features decide which commands a build has and which third-party code it links.
The default build
cargo install --locked --path crates/coreav-cli --profile dist builds the default features, cli and net:
A default build has every command except
thumbnail and transcode, and links no decoder or encoder. It contains no implementation of a codec that is still under patent, and a CI check enforces that.
Decoder backends
Each backend feature addscoreav thumbnail and coreav transcode, and the decoder it names. None is in a default build. Combine them with commas, for example --features dav1d,ffmpeg-fallback.
When a build has more than one backend, CoreAV picks one for each stream from those that support it, and
coreav thumbnail reports which one decoded the frame. coreav transcode also needs an encoder program at run time: an x264 program, or an ffmpeg program built with libx264.
For example, to build with dav1d and the FFmpeg fallback:
The native H.264 decoder and patents
That is why the native H.264 decoder is opt-in behindnative-h264 and never in a default build. It decodes High profile, 8-bit 4:2:0, progressive streams, and rejects what it does not decode (field pictures, MBAFF, 4:2:2, 4:4:4 and bit depths above 8, among others) with an error instead of a wrong picture (coreav-h264).
Licence notices
Every distribution of CoreAV ships its licence files,LICENSE-MIT and LICENSE-APACHE. A build with a decoder backend also links the thumbnail code, whose JPEG encoder’s licence asks binary distributions to carry a statement. If you distribute such a build, ship NOTICE beside the binary. If you also ship a copy of libvpx with it, ship libvpx’s own LICENSE and PATENTS files with that copy. A default build needs no NOTICE (notices in distributions).