Welcome to Symphonia 0.6! 👋
Symphonia 0.6 is the culmination of two years of effort to rework Symphonia from an audio-focused multimedia framework to one that can be extended to support video and subtitles as well. While Symphonia does not yet support video and subtitle decoders, the groundwork laid in this release should allow easier prototyping of those features, and to more seamlessly introduce them in the future. As such there are significant breaking changes present in this release for existing users.
See the migration guide for detailed information on how to move to Symphonia 0.6.0.
New Features
- Format readers and decoders may now be registered with a preference tier/priority
- Format and metadata readers now provide methods to get information about themselves
- Format readers can now expose attachments (e.g., attached fonts)
- Decoders can now decode from non-owning packets, eliminating a copy if using a non-Symphonia demuxer
- ID3v1, APEv1, and APEv2 metadata formats are now supported
- Added support for chapters for Matroska, ID3v2, and Vorbis Comments
- Added support for Matroska metadata
- Image format and parameter detection for visuals
- Metadata tags that have an official or defacto meaning are parsed where possible (e.g., a track number tag is parsed into an
u64) MediaSourceStream, and all downstream consumers (e.g.,FormatReader), are now generic across the lifetime- SIMD optimizations are enabled by default
Bug Fixes & Improvements
Note
This section is not a detailed list of API changes. Please see the migration guide for a detailed listing.
- Redesigned all audio primitives
- Redesigned most metadata primitives
- Redesigned timestamp, time base, and duration types
- Format readers now return
Ok(None)when the media has ended - Probe now uses a scoring system to better avoid false positives
- Metadata encountered while probing for the media format are queued to the format reader
- Track-level information not related to the codec (e.g., all timing information) have been moved out of codec parameters and is more reliably populated
- Codec parameters are more reliably populated
- Rewrote Matroska demuxer to be safer
- Rewrote portions of MP4 demuxer to be safer
- Improved implementations of AIFF and CAF
- Many fixes from panics discovered through fuzzing
- Myriad miscellaneous fixes
- Decoding performance improvements
- Reduced binary size
- Improved documentation
- Established an official project MSRV policy: Incrementing the MSRV is a breaking change
New Contributors
- @acieslewicz made their first contribution in #384
- @aentity made their first contribution in #263
- @baylesj made their first contribution in #400
- @qarmin made their first contribution in #497
- @sscobici made their first contribution in #317
- @velvid made their first contribution in #399
Full Changelog: v0.5.4...v0.6.0