fix(pulseaudio,pipewire): build on targets without 64-bit atomics#1283
fix(pulseaudio,pipewire): build on targets without 64-bit atomics#1283roderickvd wants to merge 1 commit into
Conversation
|
Awesome thank you, try to provide feedback tomorrow. |
|
Sorry for the delay, I'm currently fighting with my toolchain, so it may take some time. I try to keep you up to date. |
|
@roderickvd Would it be useful to add a 32bit target to the workflows ensuring that this cannot happen again? Maybe I have a little extra to think about (not this part of the code - this is an external APIs ID known to be 32bit integer, but maybe other parts of the code storing the amount of samples): Let's say we have an audio book with 28 hours duration and a sampling rate of 44100Hz - that would make 28×3600×44.100=4.445.280.000 samples right?
This was a problem on old iPod Nanos (although they had used int32, so 28 hours with 22050Hz was too much, maybe we can prevent this from happening in cpal, before it appears. Just a thought ;-) |
PulseAudio's latency tracking stores two microsecond counters in
AtomicU64, which doesn't exist instdon exotic or legacy targets without native 64-bit atomics. This PR adds fallback toportable-atomicon such targets.PipeWire hid the same error through its
last_quantumfield, but we can narrow that tou32without any problem or pulling in another dependency.Closes #1277