chiark / gitweb /
Patch from Ross Younger to correct FLAC decoding.
authorRichard Kettlewell <rjk@greenend.org.uk>
Sun, 2 Aug 2009 15:44:45 +0000 (16:44 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sun, 2 Aug 2009 15:44:45 +0000 (16:44 +0100)
server/decode.c

index ef999b3ab3dd327dceb0bd13bcc26eb3dd49d67e..0ced1531441939ad331d76e1e63753b26d90fdca 100644 (file)
@@ -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
 }