It was a combination of two bugs: 1. For some reason, libswresample sometimes returns more data than you need. Like, it'll return X samples but _more than_ 8X bytes, for f32 stereo. 2. I wasn't supposed to be calling `flush`. I should have been calling `run` with a dummy frame. This isn't intuitive to me, and it required me to construct a dummy frame and keep it around in my code. I think this is pretty inelegant. And looking at the ffmpeg code, I think it's a flaw in the API design of the `ffmpeg_next` crate. I may ask them about it in the future. |
||
|---|---|---|
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| todo.md | ||