Skip to content

v0.6.0

Latest

Choose a tag to compare

@pdeljanov pdeljanov released this 15 May 05:33
· 15 commits to main since this release

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

Full Changelog: v0.5.4...v0.6.0