X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..23d0e9637b6ffa80a8181f4ed47f24b266bef173:/server/decode.c?ds=sidebyside diff --git a/server/decode.c b/server/decode.c index ef999b3..0c8893c 100644 --- a/server/decode.c +++ b/server/decode.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder - * Copyright (C) 2007, 2008 Richard Kettlewell + * Copyright (C) 2007-2009 Richard Kettlewell * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -387,13 +387,20 @@ static void decode_flac(void) { fatal(0, "FLAC__file_decoder_init: %s", FLAC__FileDecoderStateString[fs]); FLAC__file_decoder_process_until_end_of_file(fd); #else - FLAC__StreamDecoder *sd = 0; + FLAC__StreamDecoder *sd = FLAC__stream_decoder_new(); FLAC__StreamDecoderInitStatus is; + if (!sd) + fatal(0, "FLAC__stream_decoder_new failed"); + if((is = FLAC__stream_decoder_init_file(sd, path, flac_write, flac_metadata, flac_error, 0))) fatal(0, "FLAC__stream_decoder_init_file %s: %s", path, FLAC__StreamDecoderInitStatusString[is]); + + FLAC__stream_decoder_process_until_end_of_stream(sd); + FLAC__stream_decoder_finish(sd); + FLAC__stream_decoder_delete(sd); #endif }