aft: Avoid invalid read.
[paraslash.git] / flac_afh.c
index 2e2842b183c91bfbe06ec2de0616fb52872ba4f4..6e23683937f6932aaa739095ef8281fc9075da55 100644 (file)
@@ -1,8 +1,4 @@
-/*
- * Copyright (C) 2011 Andre Noll <maan@tuebingen.mpg.de>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2011 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
 
 /** \file flac_afh.c Audio format handler for flac files. */
 
@@ -391,6 +387,7 @@ static int flac_afh_read_chunks(struct private_flac_afh_data *pfad)
                        break;
        }
        afhi->chunks_total = c;
+       set_max_chunk_size(afhi);
        ret = 1;
 free_decoder:
        FLAC__stream_decoder_finish(decoder);
@@ -468,7 +465,7 @@ static int flac_write_chain(FLAC__Metadata_Chain *chain,
        if (!ok) {
                FLAC__Metadata_ChainStatus st;
                st = FLAC__metadata_chain_status(chain);
-               PARA_ERROR_LOG("chain status: %d\n", st);
+               PARA_ERROR_LOG("chain status: %u\n", st);
                if (st == FLAC__METADATA_CHAIN_STATUS_READ_ERROR)
                        PARA_ERROR_LOG("read error\n");
                return -E_FLAC_WRITE_CHAIN;
@@ -518,13 +515,12 @@ free_pfad:
 static const char * const flac_suffixes[] = {"flac", NULL};
 
 /**
- * The init function of the flac audio format handler.
+ * The audio format handler for flac (free lossless audio decoder).
  *
- * \param afh pointer to the struct to initialize
+ * It depends on libflac and on libogg.
  */
-void flac_afh_init(struct audio_format_handler *afh)
-{
-       afh->get_file_info = flac_get_file_info,
-       afh->suffixes = flac_suffixes;
-       afh->rewrite_tags = flac_rewrite_tags;
-}
+const struct audio_format_handler flac_afh = {
+       .get_file_info = flac_get_file_info,
+       .suffixes = flac_suffixes,
+       .rewrite_tags = flac_rewrite_tags,
+};