[Flac-dev] FLAC C API / Visual Studio 2008 FILE* Issue

Ivailo Karamanolev ivailo91 at gmail.com
Tue Jan 5 15:03:09 PST 2010


I managed to get around it. I used the stream functions and provided my own
callbacks for reading and writing. What's strange is that what I've done is
just copied the contents of read/write/seek/tell/eof callbacks from the
sources to my application and it works just fine, no glitches. When I use
the build-in implementation, it just crashes without any reason. It's not a
problem to stick with my own callbacks for reading, but fixing this issue
(if it's not just me) would be nice.

On Wed, Jan 6, 2010 at 12:38 AM, Erik de Castro Lopo
<mle+la at mega-nerd.com<mle%2Bla at mega-nerd.com>
> wrote:

> Ivailo Karamanolev wrote:
>
> > I am currently learning the FLAC C API and had the code working with
> > FLAC__stream_decoder_init_file. However, since I'd need the Unicode
> filename
> > support, I tried _wfopen_s in combination with
> > FLAC__stream_decoder_init_FILE, however I get a runtime crash as sonn as
> I
> > call FLAC__stream_decoder_process_until_end_of_stream. The same code
> > (partially taken from the examples) is working perfectly with the
> function
> > accepting filename and crashing with the one accepting FILE*. I have
> tried
> > both compiling the library myself and using the precompiled
> > flac-1.2.1-devel-win. Can someone try if it is working for him (the
> FILE*)
> > version and if yes - send back the source code?
> > I work in Windows 7 64bit, but I tried that also on a virtual Windows XP
> and
> > it crashes there also.
>
> There is a whole bunch of weird stuff in windows, this is just another
> instance.
>
> If what you want to do is read/write FLAC files with windows UCS-16
> filenames,
> one option is to use libsndfile:
>
>    http://www.mega-nerd.com/libsndfile/
>
> which with version 1.0.21 has added this function:
>
>    /* The function sf_wchar_open() is Windows Only!
>    ** Open a file passing in a Windows Unicode filename. Otherwise, this is
>    ** the same as sf_open().
>    **
>    ** In order for this to work, you need to do the following:
>    **
>    **          #include <windows.h>
>    **          #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
>    **          #including <sndfile.h>
>    */
>    #if ENABLE_SNDFILE_WINDOWS_PROTOTYPES
>    SNDFILE* sf_wchar_open (LPCWSTR wpath, int mode, SF_INFO *sfinfo) ;
>    #endif
>
> There is a windows binary installer in the main web page (one for each of
> 32 and 64 bit windows).
>
> The only downside to this is that libsndfile does not expose the all of
> the features of the FLAC API to the user.
>
> Erik
> --
> ----------------------------------------------------------------------
> Erik de Castro Lopo
> http://www.mega-nerd.com/
> _______________________________________________
> Flac-dev mailing list
> Flac-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/flac-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20100106/7e852239/attachment.htm 


More information about the Flac-dev mailing list