[flac-dev] libFLAC optimizations request

Gabriel Corneanu gabrielcorneanu at gmail.com
Thu Feb 1 12:29:07 UTC 2018


Hello all

I am using libFLAC in a corner application, compressing *a lot* of small
signals.
First is a general question: in our application we have signals in range
5-10 MHz, potentially 40MHz! Is there any potential problem with that?? The
mac sample rate is limited in flac, but it doesn't really seem to be a
problem.
The output is stored as blob in a sqlite database, it *never *needs to be a
valid audio file outside our application.
In my tests, the signals are compressed very well, much better than general
compression libraries like zlib, zstd, etc.

Now other small issues; I also made some tickets about them, but I thought
asking here might be better.

1. I would like to avoid saving vorbis comment, by default ~40 bytes. Right
now the only option is to modify stream_encoder.c, see
"metadata_has_vorbis_comment".

2. Speed is very important, therefore I would like to reuse an encoder
without re-initializing everything.
Ideally I would like 2 (exported) functions: "flush" and "restart".
"Flush" is self-explanatory, should properly end the encoding. I could
split myself "flush" from "finish", it looks relatively simple.
"Restart" should keep all current settings, generate a new stream header
and clear everything for encoding a new signal.
It' clear that current settings, re-creating windows, cpu-dependent
functions, etc could be kept around.
I was not quickly able to extract all the necessary initialization from
"init_stream_internal_" into a new "FLAC__stream_encoder_restart" function.

Regards,
Gabriel Corneanu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/flac-dev/attachments/20180201/b4579a19/attachment.html>


More information about the flac-dev mailing list