Releases: LinusU/rust-alac-encoder
🚢 0.3.0 / 2022-01-10
💥 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 theFormatDescription
struct. Simply callmax_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
💥 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
🐛 Fixes
- Add readme field to package metadata
🚢 0.1.0 / 2019-05-15
💥 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 theusize
. -
Tweak magic cookie public API
Migration Guide:
get_magic_cookie()
has been replaced withmagic_cookie()
.get_magic_cookie_size()
has been replaced withmagic_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