[flac-dev] flac decoder output buffer alignment

brianw brianw at audiobanshee.com
Sun Mar 16 18:54:45 UTC 2025


I believe that the SSE/AVX hardware engine only works with aligned buffers.

That said, I also believe that macOS already aligns buffers, even with simple malloc(), although I might be wrong. At the very least, there is surely a CoreAudio memory allocation function that aligns buffers for audio, so that Apple can use SSE/AVX hardware acceleration on audio buffers.

Stefan, have you tried your work on macOS?

Brian Willoughby


On Mar 16, 2025, at 11:48 AM, Martijn van Beurden wrote:
> Hi,
> 
> Please explain why you need aligned buffers.
> 
> Kind regards, Martijn van Beurden
> 
> Op zo 16 mrt 2025 om 01:36 schreef Stefan Oltmanns:
>> 
>> Hello,
>> 
>> I want to process the output from libflac with SSE/AVX. Unfortunately it
>> seems that libflac always allocates the output buffer itself and there
>> is no way to provide a buffer by the application.
>> From my understanding of the code flac is using it's own functions in
>> share/alloc.h for allocations, and those use plain malloc. I assume the
>> only way to force aligned output buffers is to modify the alloc.h and
>> then link libflac statically and not use a system provided version?
>> 
>> I'm also open for any other flac decoding library (written in C or with
>> C header) that has the following features:
>> 
>> -Support seeking (with fast seeking using seektables if available)
>> -Support Ogg FLAC
>> -Fast decoding
>> -Should be able to handle *very long* flac files (like 2^40 samples).
>> libavcodec/ffmpeg fails at this, as some internal counter overflows
>> 
>> Best regards
>> Stefan



More information about the flac-dev mailing list