Skip to content

Releases: LinusU/rust-alac-encoder

🚢 0.3.0 / 2022-01-10

10 Jan 22:50
v0.3.0
6f7b7fb
Compare
Choose a tag to compare

💥 Breaking Changes

  • Fix max packet size calculations

    Migration Guide:

    This change brings the minimum supported version of the Rust compiler up to 1.57.0.

    Instead of using the MAX_ESCAPE_HEADER_BYTES constant to manually calculate the required output buffer size, this is now exposed as a function on the FormatDescription struct. Simply call max_packet_size() on your output format description struct.

    This functions is a const fn, so it can be used in const contexts. In addition, the FormatDescription::alac constructor was also made const, so that the minimum output buffer size can be calculated at compile time.

🎉 Enhancements

  • Use log crate instead of println
  • Drop dependency on std library
  • Simplify AlacEncoder::encode implementation

🌹 Internal Changes

  • Remove Docker files
  • Switch CI from Travis to GitHub Actions
  • Add more realistic benchmark
  • Fix all Clippy lints
  • Rework debug vs. release assertions
  • Use usize for num_bits
  • Use usize for bytes_shifted
  • Use usize for chan_bits
  • Use usize for num_channels

🚢 0.2.0 / 2021-10-23

23 Oct 00:00
v0.2.0
fb5b15a
Compare
Choose a tag to compare

💥 Breaking Changes

  • Upgrade to Rust 2021 edition

    Migration Guide:

    The minimum supported Rust version is now 1.56.

🌹 Internal Changes

  • Add licensing information
  • Bump criterion version

🚢 0.1.1 / 2019-05-15

23 Oct 00:00
v0.1.1
ff48d49
Compare
Choose a tag to compare

🐛 Fixes

  • Add readme field to package metadata

🚢 0.1.0 / 2019-05-15

23 Oct 00:00
v0.1.0
3755f02
Compare
Choose a tag to compare

💥 Breaking Changes

  • Remove fast mode

    Migration Guide:

    Fast mode wasn't working and corrupted the heap leading to all kinds of strange errors. Open an issue if you need fast mode.

  • Remove Error and stop returning Result

    Migration Guide:

    It should no longer be possible to trigger any runtime errors from this crate.

    Instead of getting a Result<usize, ...> from .encode(), you now simply get the usize.

  • Tweak magic cookie public API

    Migration Guide:

    • get_magic_cookie() has been replaced with magic_cookie().
    • get_magic_cookie_size() has been replaced with magic_cookie().len().

🎉 Enhancements

  • Add initial bindings
  • Port get_magic_cookie_size to Rust
  • Port get_magic_cookie to Rust
  • Port initialize_encoder to Rust
  • Port encode to Rust
  • Add Rust facade for BitBuffer
  • Port encode_mono to Rust
  • Port encode_stereo to Rust
  • Port encode_stereo_escape to Rust
  • Port ALACEncoder class to Rust
  • Rustify the public API
  • Let Rust allocate encoding buffers
  • Port init_coefs to Rust
  • Port pc_block to Rust
  • Port AgParams to Rust
  • Port dyn_comp to Rust
  • Port AgParams to Rust
  • Port BitBuffer to Rust
  • Improve writing to BitBuffer
  • Improve Adaptive Golomb code
  • Remove return value from dyn_comp
  • Port copy*_to_predictor to Rust
  • Port mix* to Rust
  • Port DENSHIFT_DEFAULT to Rust
  • Port FormatType to Rust
  • Port last constants over to Rust
  • Remove vendor library & bindings
  • Add some getters to the encoder
  • Add some documentation
  • Update package metadata

🐛 Fixes

  • Fix MAX_ESCAPE_HEADER_BYTES to reflect reality
  • Fix naming/value of KB0 & MB0
  • Use ElementType from Rust
  • Allow smaller buffer when less frames are passed in
  • Remove unused dependencies
  • Exclude fixtures from published package

🌹 Internal Changes

  • Add Travis CI integration
  • Add more tests
  • Comment out dumping of result in tests
  • Comment out unsupported element types
  • Assert that output format is of ALAC type
  • Remove unused fields on FormatDescription
  • Cleanup usage of dilate variable
  • Add a module comment to the dp module
  • Add very simple benchmarks
  • Silence warnings about ElementType
  • Cleanup num_frames