summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor V. Kovalenko <igor.v.kovalenko@gmail.com>2021-02-26 00:00:47 +0300
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>2021-04-05 15:43:32 +0000
commit436a98a50bd1b0edf5abfc04d8f8cb628674d547 (patch)
tree513cb71769217c372ea85feb7f01e23938995b68
parent436813d8a820c2d2e2cec110af4af813b0e89824 (diff)
bluetooth: produce silence on mSBC decoding error
We are supposed to conceal packet loss. This is not trivial but we can at least produce silence instead of breaking on mSBC decoding error. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>
-rw-r--r--src/modules/bluetooth/bt-codec-msbc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/modules/bluetooth/bt-codec-msbc.c b/src/modules/bluetooth/bt-codec-msbc.c
index c49a0f947..b1011434d 100644
--- a/src/modules/bluetooth/bt-codec-msbc.c
+++ b/src/modules/bluetooth/bt-codec-msbc.c
@@ -287,9 +287,11 @@ static size_t decode_buffer(void *codec_info, const uint8_t *input_buffer, size_
if (PA_UNLIKELY(decoded <= 0)) {
pa_log_error("mSBC decoding error (%li)", (long) decoded);
- *processed = 0;
- return 0;
+ pa_silence_memory(output_buffer, sbc_info->codesize, &sbc_info->sample_spec);
+ decoded = sbc_info->frame_length;
+ written = sbc_info->codesize;
}
+
pa_assert_fp((size_t)decoded == sbc_info->frame_length);
pa_assert_fp((size_t)written == sbc_info->codesize);