worth of changes and an altered API. Bump the revision of all ports that depend on libFLAC and adapt to the new API where necessary. Some patches from Debian, Gentoo, OpenBSD, and upstream repositories. PR: 119476
85 lines
3.5 KiB
C
85 lines
3.5 KiB
C
--- src/share/grabbag/replaygain.c.orig 2004-02-12 09:00:39.000000000 +0100
|
|
+++ src/share/grabbag/replaygain.c 2008-04-06 21:03:18.000000000 +0200
|
|
@@ -19,8 +19,8 @@
|
|
#include "share/grabbag.h"
|
|
#include "share/replaygain_analysis.h"
|
|
#include "FLAC/assert.h"
|
|
-#include "FLAC/file_decoder.h"
|
|
#include "FLAC/metadata.h"
|
|
+#include "FLAC/stream_decoder.h"
|
|
#include <locale.h>
|
|
#include <math.h>
|
|
#include <stdio.h>
|
|
@@ -266,7 +266,7 @@
|
|
FLAC__bool error;
|
|
} DecoderInstance;
|
|
|
|
-static FLAC__StreamDecoderWriteStatus write_callback_(const FLAC__FileDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
|
|
+static FLAC__StreamDecoderWriteStatus write_callback_(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
|
|
{
|
|
DecoderInstance *instance = (DecoderInstance*)client_data;
|
|
const unsigned bits_per_sample = frame->header.bits_per_sample;
|
|
@@ -295,7 +295,7 @@
|
|
return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
|
|
}
|
|
|
|
-static void metadata_callback_(const FLAC__FileDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
|
|
+static void metadata_callback_(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
|
|
{
|
|
DecoderInstance *instance = (DecoderInstance*)client_data;
|
|
|
|
@@ -318,7 +318,7 @@
|
|
}
|
|
}
|
|
|
|
-static void error_callback_(const FLAC__FileDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
|
|
+static void error_callback_(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
|
|
{
|
|
DecoderInstance *instance = (DecoderInstance*)client_data;
|
|
|
|
@@ -330,7 +330,7 @@
|
|
const char *grabbag__replaygain_analyze_file(const char *filename, float *title_gain, float *title_peak)
|
|
{
|
|
DecoderInstance instance;
|
|
- FLAC__FileDecoder *decoder = FLAC__file_decoder_new();
|
|
+ FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new();
|
|
|
|
if(0 == decoder)
|
|
return "memory allocation error";
|
|
@@ -338,27 +338,22 @@
|
|
instance.error = false;
|
|
|
|
/* It does these three by default but lets be explicit: */
|
|
- FLAC__file_decoder_set_md5_checking(decoder, false);
|
|
- FLAC__file_decoder_set_metadata_ignore_all(decoder);
|
|
- FLAC__file_decoder_set_metadata_respond(decoder, FLAC__METADATA_TYPE_STREAMINFO);
|
|
-
|
|
- FLAC__file_decoder_set_filename(decoder, filename);
|
|
- FLAC__file_decoder_set_write_callback(decoder, write_callback_);
|
|
- FLAC__file_decoder_set_metadata_callback(decoder, metadata_callback_);
|
|
- FLAC__file_decoder_set_error_callback(decoder, error_callback_);
|
|
- FLAC__file_decoder_set_client_data(decoder, &instance);
|
|
+ FLAC__stream_decoder_set_md5_checking(decoder, false);
|
|
+ FLAC__stream_decoder_set_metadata_ignore_all(decoder);
|
|
+ FLAC__stream_decoder_set_metadata_respond(decoder, FLAC__METADATA_TYPE_STREAMINFO);
|
|
|
|
- if(FLAC__file_decoder_init(decoder) != FLAC__FILE_DECODER_OK) {
|
|
- FLAC__file_decoder_delete(decoder);
|
|
+
|
|
+ if(FLAC__stream_decoder_init_file(decoder, filename, write_callback_, metadata_callback_, error_callback_, &instance) != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
|
|
+ FLAC__stream_decoder_delete(decoder);
|
|
return "initializing decoder";
|
|
}
|
|
|
|
- if(!FLAC__file_decoder_process_until_end_of_file(decoder) || instance.error) {
|
|
- FLAC__file_decoder_delete(decoder);
|
|
+ if(!FLAC__stream_decoder_process_until_end_of_stream(decoder) || instance.error) {
|
|
+ FLAC__stream_decoder_delete(decoder);
|
|
return "decoding file";
|
|
}
|
|
|
|
- FLAC__file_decoder_delete(decoder);
|
|
+ FLAC__stream_decoder_delete(decoder);
|
|
|
|
grabbag__replaygain_get_title(title_gain, title_peak);
|
|
|