bluez5: convert sco-source to use media_codec API

Use codecs via media_codec in sco-source instead of implementing the
decoding in-place.

Also slightly adjust media-source decode semantics.

In future, media-source could replace sco-source to reduce code
duplication.
This commit is contained in:
Pauli Virtanen 2025-06-07 20:38:01 +03:00 committed by Wim Taymans
parent 123f937701
commit 1c5895f625
2 changed files with 77 additions and 272 deletions

View file

@ -465,9 +465,10 @@ static int32_t decode_data(struct impl *this, uint8_t *src, uint32_t src_size,
/* decode */
avail = dst_size;
while (src_size > 0) {
do {
written = 0;
if ((processed = this->codec->decode(this->codec_data,
src, src_size, dst, avail, &written)) <= 0)
src, src_size, dst, avail, &written)) < 0)
return processed;
/* update source and dest pointers */
@ -476,7 +477,8 @@ static int32_t decode_data(struct impl *this, uint8_t *src, uint32_t src_size,
src += processed;
avail -= written;
dst += written;
}
} while (src_size && (processed || written));
return dst_size - avail;
}