diff options
author | Igor V. Kovalenko <igor.v.kovalenko@gmail.com> | 2021-02-26 00:00:47 +0300 |
---|---|---|
committer | PulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org> | 2021-04-05 15:43:32 +0000 |
commit | 436a98a50bd1b0edf5abfc04d8f8cb628674d547 (patch) | |
tree | 513cb71769217c372ea85feb7f01e23938995b68 | |
parent | 436813d8a820c2d2e2cec110af4af813b0e89824 (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.c | 6 |
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); |