In some cases memchunk index is not zero when encoding memory chunk blocks. This would lead to damage sound quality in some music players (e.g. Rhythmbox). This fix was found thanks to Matthias, who reported that his ALAC codec support fixed the issue. https://bugs.freedesktop.org/show_bug.cgi?id=42804#c30 By carefully looking at the patch I found an issue in my code. --- src/modules/raop/raop_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/raop/raop_client.c b/src/modules/raop/raop_client.c index 527f4b5..d8b1d17 100644 --- a/src/modules/raop/raop_client.c +++ b/src/modules/raop/raop_client.c @@ -1299,7 +1299,9 @@ int pa_raop_client_encode_sample(pa_raop_client *c, pa_memchunk *raw, pa_memchun bit_writer(&bp,&bpos,&size,(bsize>>8)&0xff,8); bit_writer(&bp,&bpos,&size,(bsize)&0xff,8); - ibp = p = pa_memblock_acquire(raw->memblock); + p = pa_memblock_acquire(raw->memblock); + p += raw->index; + ibp = p; maxibp = p + raw->length - 4; while (ibp <= maxibp) { /* Byte swap stereo data. */ -- 1.8.1.2