Closed compenguy closed 1 year ago
hm, why does compatibility break if there's no code change required?
mp4 had a bug introduced in 0.9, so not sure we can update it https://github.com/alfg/mp4-rust/issues/68
You expose a rodio type through your interface - you implement the Source trait, but the trait bounds changed in rodio, causing the compiler to the rodio::Source that redlux implements as not being the same trait as required by the 16.0 methods on the rodio::Source trait.
Ah gotcha, trait bounds changed
About rust-mp4, it seems like it was actually updated to 0.10 in a previous PR, and I probably forgot about the rust-mp4 issue.
Next steps would be:
So, I played around with your mp4-0.9 branch in combination with the data file that reproduced @NightlySide 's issue, and as best as I can tell, the issue has existed with mp4-0.8.3, 0.9.2, 0.10.0 and still with 0.12.0. That is to say that that test file doesn't appear to have ever worked?
Or at least, it outputs sample Err(IoError(Error { kind: UnexpectedEof, message: "failed to fill whole buffer" }))
with each of the above named versions. I changed Cargo.toml to point at each of the above versions, ran the example (modulo a few source changes due to some mp4 API breakage), and got the same output each time.
Ah you're probably right that #4 has always been an issue. The issue with the mp4-0.9
branch seems to be the m4a_playback
example, but it works fine in this PR! Thanks for looking into it
Bump rodio to 0.16.0 because a changed trait bound broke compabitility for implementers of that trait.
Bump mp4 to 0.12.0