mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 12:10:37 +00:00
8ca40fa86f
Fixes stuttering audio when iOS AU is resampling. To make AU resample, one has to request a rate that differs from AVAudioSession's sampleRate. The resampling itself is not the culprit, but rather our API misuse. AudioUnitRender modifies the mDataByteSize members with the actual read bytes count. Therefore, they must be reinitialized before each AudioUnitRender. (The buffers themselves can be preallocated.) The "stutter" was caused by one AudioUnitRender making the buffer too small for other AudioUnitRender invocations, making them fail with -50 (paramErr). By way of luck, when AU didn't resample, all AudioUnitRender invocations read the same number of bytes. (This patch addresses some non-interleaved audio concerns, but at this moment the elements do not support non-interleaved audio and non-interleaved is untested.) https://bugzilla.gnome.org/show_bug.cgi?id=744922 |
||
---|---|---|
.. | ||
gstosxaudio.c | ||
gstosxaudioelement.c | ||
gstosxaudioelement.h | ||
gstosxaudioringbuffer.c | ||
gstosxaudioringbuffer.h | ||
gstosxaudiosink.c | ||
gstosxaudiosink.h | ||
gstosxaudiosrc.c | ||
gstosxaudiosrc.h | ||
gstosxcoreaudio.c | ||
gstosxcoreaudio.h | ||
gstosxcoreaudiocommon.c | ||
gstosxcoreaudiocommon.h | ||
gstosxcoreaudiohal.c | ||
gstosxcoreaudioremoteio.c | ||
Makefile.am |