Closed padenot closed 2 years ago
After testing BlackHole-16ch
on my MBP M1 Max, I find the problem is in input frame calculation instead of that assertion itself. I've pushed some code in this PR so you can test it on your end to see if the problem solves or not.
I am not sure I understand why
assert!(input_frames as i64 <= total_input_frames)
will be hit without hittingassert!(!stm.core_stream_data.output_unit.is_null())
first:
I think it's related with Siri or concurrent device reconfiguration maybe? You have the input callback firing with a number of frames, but when you attempt to render, it says it's now unavailable. We've hit this before (hence this code path), and I'm pretty sure it was at least when doing the device had an input stream going, and siri was triggered.
Anyways, yeah the buffer_manager
code was wrong, thanks for the fix, it works locally as well for me.
Cleaned up the branch and merging.
This is possible if the first branch of:
is taken and there's been data before. In this case, it's possible to have input frames, but impossible to have them, probably. I can reproduce 100% of the time by installing BlackHole-16ch and running
./run_tests.sh
on the M1 Max.