diff options
author | Josh Coalson <jcoalson@users.sourceforce.net> | 2003-12-17 04:51:06 +0000 |
---|---|---|
committer | Josh Coalson <jcoalson@users.sourceforce.net> | 2003-12-17 04:51:06 +0000 |
commit | 9c650a561aee741d64497de7bd987baf69747587 (patch) | |
tree | 2eeef1e17b89e17d943f2a546cc4fd714e18f1de /src/plugin_xmms | |
parent | 628f4efc55dee0ff4efcc5a43c4c408431a5fdd0 (diff) | |
download | flac-9c650a561aee741d64497de7bd987baf69747587.tar.gz |
add undocumented option --apply-replaygain-which-is-not-lossless to flac; required a lot of reorganization; gain_analysis lib renamed to replaygain_analyis; replaygain_synthesis moved out of plugin_common into its own library in share/
Diffstat (limited to 'src/plugin_xmms')
-rw-r--r-- | src/plugin_xmms/Makefile.am | 3 | ||||
-rw-r--r-- | src/plugin_xmms/Makefile.lite | 2 | ||||
-rw-r--r-- | src/plugin_xmms/configure.c | 3 | ||||
-rw-r--r-- | src/plugin_xmms/plugin.c | 16 |
4 files changed, 14 insertions, 10 deletions
diff --git a/src/plugin_xmms/Makefile.am b/src/plugin_xmms/Makefile.am index 4039d436..d919e2c1 100644 --- a/src/plugin_xmms/Makefile.am +++ b/src/plugin_xmms/Makefile.am @@ -59,7 +59,8 @@ endif libxmms_flac_la_LIBADD = \ $(top_builddir)/src/plugin_common/libplugin_common.la \ $(top_builddir)/src/share/grabbag/libgrabbag.la \ - $(top_builddir)/src/share/gain_analysis/libgain_analysis.la \ + $(top_builddir)/src/share/replaygain_analysis/libreplaygain_analysis.la \ + $(top_builddir)/src/share/replaygain_synthesis/libreplaygain_synthesis.la \ $(top_builddir)/src/share/utf8/libutf8.la \ $(top_builddir)/src/libFLAC/libFLAC.la \ -L$(top_builddir)/src/libFLAC/.libs \ diff --git a/src/plugin_xmms/Makefile.lite b/src/plugin_xmms/Makefile.lite index 6ef1bb97..1becbc8c 100644 --- a/src/plugin_xmms/Makefile.lite +++ b/src/plugin_xmms/Makefile.lite @@ -24,7 +24,7 @@ topdir = ../.. LIB_NAME = libxmms-flac INCLUDES = $(shell xmms-config --cflags) -I./include -I$(topdir)/include -I.. # refer to the static libs explicitly -LIBS = $(topdir)/obj/$(BUILD)/lib/libFLAC.a $(topdir)/obj/$(BUILD)/lib/libplugin_common.a $(topdir)/obj/$(BUILD)/lib/libgrabbag.a $(topdir)/obj/$(BUILD)/lib/libgain_analysis.a $(HOME)/local/lib/libid3.a -lstdc++ -lz +LIBS = $(topdir)/obj/$(BUILD)/lib/libFLAC.a $(topdir)/obj/$(BUILD)/lib/libplugin_common.a $(topdir)/obj/$(BUILD)/lib/libgrabbag.a $(topdir)/obj/$(BUILD)/lib/libreplaygain_analysis.a $(topdir)/obj/$(BUILD)/lib/libreplaygain_synthesis.a $(HOME)/local/lib/libid3.a -lstdc++ -lz SRCS_C = \ charset.c \ diff --git a/src/plugin_xmms/configure.c b/src/plugin_xmms/configure.c index 706a8f63..2a47bd22 100644 --- a/src/plugin_xmms/configure.c +++ b/src/plugin_xmms/configure.c @@ -35,6 +35,7 @@ #include <xmms/plugin.h> #include "plugin_common/locale_hack.h" +#include "share/replaygain_synthesis.h" /* for NOISE_SHAPING_LOW */ #include "charset.h" #include "configure.h" @@ -68,7 +69,7 @@ flac_config_t flac_cfg = { /* replaygain */ { TRUE, /* dither */ - 1, /* noise_shaping */ + NOISE_SHAPING_LOW, /* noise_shaping */ 16 /* bps_out */ } } diff --git a/src/plugin_xmms/plugin.c b/src/plugin_xmms/plugin.c index 0fb5b014..5b6cf921 100644 --- a/src/plugin_xmms/plugin.c +++ b/src/plugin_xmms/plugin.c @@ -38,6 +38,7 @@ #include "FLAC/all.h" #include "plugin_common/all.h" #include "share/grabbag.h" +#include "share/replaygain_synthesis.h" #include "configure.h" #include "wrap_id3.h" #include "charset.h" @@ -255,7 +256,7 @@ void FLAC_XMMS__play_file(char *filename) return; } } - FLAC__plugin_common__init_dither_context(&file_info_.dither_context, file_info_.sample_format_bytes_per_sample * 8, flac_cfg.output.resolution.replaygain.noise_shaping); + FLAC__replaygain_synthesis__init_dither_context(&file_info_.dither_context, file_info_.sample_format_bytes_per_sample * 8, flac_cfg.output.resolution.replaygain.noise_shaping); file_info_.is_playing = true; if(flac_ip.output->open_audio(file_info_.sample_format, file_info_.sample_rate, file_info_.channels) == 0) { @@ -501,19 +502,20 @@ FLAC__StreamDecoderWriteStatus write_callback_(const FLAC__FileDecoder *decoder, sample_buffer_first_ = 0; } sample_buffer_start = sample_buffer_ + sample_buffer_last_ * channels * file_info->sample_format_bytes_per_sample; - if(file_info_.has_replaygain && flac_cfg.output.replaygain.enable) { - FLAC__plugin_common__apply_gain( + if(file_info->has_replaygain && flac_cfg.output.replaygain.enable) { + FLAC__replaygain_synthesis__apply_gain( sample_buffer_start, !is_big_endian_host_, + file_info->sample_format_bytes_per_sample == 1, /* unsigned_data_out */ buffer, wide_samples, channels, bits_per_sample, file_info->sample_format_bytes_per_sample * 8, - file_info_.replay_scale, + file_info->replay_scale, flac_cfg.output.replaygain.hard_limit, flac_cfg.output.resolution.replaygain.dither, - &file_info_.dither_context + &file_info->dither_context ); } else if(is_big_endian_host_) { @@ -557,8 +559,8 @@ void metadata_callback_(const FLAC__FileDecoder *decoder, const FLAC__StreamMeta else if(metadata->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) { double gain, peak; if(grabbag__replaygain_load_from_vorbiscomment(metadata, flac_cfg.output.replaygain.album_mode, &gain, &peak)) { - file_info_.has_replaygain = true; - file_info_.replay_scale = grabbag__replaygain_compute_scale_factor(peak, gain, (double)flac_cfg.output.replaygain.preamp, /*prevent_clipping=*/!flac_cfg.output.replaygain.hard_limit); + file_info->has_replaygain = true; + file_info->replay_scale = grabbag__replaygain_compute_scale_factor(peak, gain, (double)flac_cfg.output.replaygain.preamp, /*prevent_clipping=*/!flac_cfg.output.replaygain.hard_limit); } } } |