mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
bluetooth: align max renderable block size to frame size
When bluez5 device I/O thread detects it is too slow sending data, allow it to skip up to max rendered block size bytes which must be aligned to frame size. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/449>
This commit is contained in:
parent
dd7593b836
commit
4874f8a607
1 changed files with 3 additions and 3 deletions
|
|
@ -1484,7 +1484,7 @@ static void thread_func(void *userdata) {
|
||||||
if (bytes_to_send > 2 * u->write_block_size) {
|
if (bytes_to_send > 2 * u->write_block_size) {
|
||||||
uint64_t skip_bytes;
|
uint64_t skip_bytes;
|
||||||
pa_memchunk tmp;
|
pa_memchunk tmp;
|
||||||
size_t mempool_max_block_size = pa_mempool_block_size_max(u->core->mempool);
|
size_t max_render_size = pa_frame_align(pa_mempool_block_size_max(u->core->mempool), &u->encoder_sample_spec);
|
||||||
pa_usec_t skip_usec;
|
pa_usec_t skip_usec;
|
||||||
|
|
||||||
skip_bytes = bytes_to_send - 2 * u->write_block_size;
|
skip_bytes = bytes_to_send - 2 * u->write_block_size;
|
||||||
|
|
@ -1497,8 +1497,8 @@ static void thread_func(void *userdata) {
|
||||||
while (skip_bytes > 0) {
|
while (skip_bytes > 0) {
|
||||||
size_t bytes_to_render;
|
size_t bytes_to_render;
|
||||||
|
|
||||||
if (skip_bytes > mempool_max_block_size)
|
if (skip_bytes > max_render_size)
|
||||||
bytes_to_render = mempool_max_block_size;
|
bytes_to_render = max_render_size;
|
||||||
else
|
else
|
||||||
bytes_to_render = skip_bytes;
|
bytes_to_render = skip_bytes;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue