On 05/28/2010 04:38 PM, Olivier Guilyardi wrote:> Hi,
>
> I am working on an application which records directly into a FLAC file. For
this
> purpose I'm using the FLAC stream encoder interface.
>
> It works fine, but if my application is killed during encoding, the
metadata is
> not being updated since the file isn't closed properly by calling
> FLAC__stream_encoder_finish().
>
> Thus when opening the file afterwards for playback, it is possible to
decode
> audio data but the FLAC__StreamMetadata.data.stream_info.total_samples
field is
> equals to zero.
>
> This is a true problem because it looks like data loss to the user,
especially
> if he/she's been recording for hours...
>
> So I'm looking for a way to update the metadata periodically during
encoding,
> before calling FLAC__stream_encoder_finish().
>
> Is this possible?
For the records, I ended up with adding FLAC__stream_encoder_flush(), as shown
in the attached diff.
It's certainly not perfect, for instance it won't work for the OGG
container.
But it apparently works for me.
--
Olivier
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: encoder_flush.diff
Url:
http://lists.xiph.org/pipermail/flac-dev/attachments/20100603/0f30f265/attachment.txt