Josh et al,
I've been tracking down a problem with generating OggFlac files.
While investigatint this issue I hacked one of the test files from
the test_libFLAC directory of the flac-1.1.3-beta2. The result of
this hacking is this standalone C file:
http://www.mega-nerd.com/tmp/erikd_test.c
Directions for compiling this is in the comments at the top of
the file.
When the program is run, it generates 4 files:
seekable.flac
stream.flac
seekable.ogg
stream.ogg
The problem is that the two OggFlac files are lacking an end-of-stream
marker. For instance, the ogginfo program says:
erikd@mingus > ogginfo stream.ogg
Processing file "stream.ogg"...
New logical stream (#1, serial: 00003039): type unknown
Warning: EOS not set on stream 1
erikd@mingus > ogginfo seekable.ogg
Processing file "seekable.ogg"...
New logical stream (#1, serial: 00003039): type unknown
Warning: EOS not set on stream 1
I have looked into this and suspect that the FLAC__stream_encoder_finish()
function needs to finish off the stream using a call to ogg_stream_flush()
instead of the standard function ogg_stream_pageout().
Josh (or anyone), I'd appreciate it if you could take a look at this.
Cheers,
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo
+-----------------------------------------------------------+
"life is too long to be an expert at harmful things, including
such evilness as C++ and perl." -- Erik Naggum
Erik de Castro Lopo
2006-Nov-03 22:24 UTC
[PATCH] Re: [Flac-dev] Strangeness with OggFlac files
Erik de Castro Lopo wrote:> Josh et al, > > I've been tracking down a problem with generating OggFlac files.<snip>> I have looked into this and suspect that the FLAC__stream_encoder_finish() > function needs to finish off the stream using a call to ogg_stream_flush() > instead of the standard function ogg_stream_pageout().I bashed on this a bit further and came up with the following patch: http://www.mega-nerd.com/tmp/flac-end_of_stream.diff There's probably a more tasteful way of acheiving the same result, but this version does fix the problem. Cheers, Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo +-----------------------------------------------------------+ "Capitalism is an art form, an Apollonian fabrication to rival nature. It is hypocritical for feminists and intellectuals to enjoy the pleasures and conveniences of capitalism while sneering at it. Everyone born into capitalism has incurred a debt to it." -- Camille Paglia
--- Erik de Castro Lopo <erikd-flac@mega-nerd.com> wrote:> Erik de Castro Lopo wrote: > > > Josh et al, > > > > I've been tracking down a problem with generating OggFlac files. > > <snip> > > > I have looked into this and suspect that the > FLAC__stream_encoder_finish() > > function needs to finish off the stream using a call to > ogg_stream_flush() > > instead of the standard function ogg_stream_pageout(). > > I bashed on this a bit further and came up with the following patch: > > http://www.mega-nerd.com/tmp/flac-end_of_stream.diff > > There's probably a more tasteful way of acheiving the same result, > but > this version does fix the problem.thanks Erik, can you confirm that this is happening only because the total_samples_estimate is 0? (so the e_o_s setting in the existing code is never triggered). Josh ____________________________________________________________________________________ Sponsored Link Degrees online in as fast as 1 Yr - MBA, Bachelor's, Master's, Associate Click now to apply http://yahoo.degrees.info