If input block size is shorter than SBC frame codesize, encoder will return 0.
Log this and skip whole input block.
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>
frame->padding = 0x00;
if (PA_UNLIKELY(encoded <= 0)) {
- pa_log_error("SBC encoding error (%li)", (long) encoded);
- return -1;
+ pa_log_error("SBC encoding error (%li) for input size %lu, SBC codesize %lu",
+ (long) encoded, input_size, sbc_get_codesize(&sbc_info->sbc));
+
+ if (encoded < 0) {
+ *processed = 0;
+ return -1;
+ } else {
+ *processed = input_size;
+ return 0;
+ }
}
pa_assert_fp((size_t) encoded == sbc_info->codesize);