summaryrefslogtreecommitdiff
path: root/src/plugin_xmms
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2003-12-17 04:51:06 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2003-12-17 04:51:06 +0000
commit9c650a561aee741d64497de7bd987baf69747587 (patch)
tree2eeef1e17b89e17d943f2a546cc4fd714e18f1de /src/plugin_xmms
parent628f4efc55dee0ff4efcc5a43c4c408431a5fdd0 (diff)
downloadflac-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.am3
-rw-r--r--src/plugin_xmms/Makefile.lite2
-rw-r--r--src/plugin_xmms/configure.c3
-rw-r--r--src/plugin_xmms/plugin.c16
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);
}
}
}