diff options
Diffstat (limited to 'libmpcodecs')
-rw-r--r-- | libmpcodecs/ad.c | 2 | ||||
-rw-r--r-- | libmpcodecs/ad_ffmpeg.c | 1 | ||||
-rw-r--r-- | libmpcodecs/ad_liba52.c | 10 |
3 files changed, 7 insertions, 6 deletions
diff --git a/libmpcodecs/ad.c b/libmpcodecs/ad.c index f81f11ef0f..5febd7e5b9 100644 --- a/libmpcodecs/ad.c +++ b/libmpcodecs/ad.c @@ -29,6 +29,8 @@ #include "libmpdemux/stheader.h" #include "ad.h" +float drc_level = 1.0; + /* Missed vorbis, mad, dshow */ //extern ad_functions_t mpcodecs_ad_null; diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c index 9d1b8356ad..8dc7ab3ed0 100644 --- a/libmpcodecs/ad_ffmpeg.c +++ b/libmpcodecs/ad_ffmpeg.c @@ -75,6 +75,7 @@ static int init(sh_audio_t *sh_audio) lavc_context = avcodec_alloc_context(); sh_audio->context=lavc_context; + lavc_context->drc_scale = drc_level; lavc_context->sample_rate = sh_audio->samplerate; lavc_context->bit_rate = sh_audio->i_bps * 8; if(sh_audio->wf){ diff --git a/libmpcodecs/ad_liba52.c b/libmpcodecs/ad_liba52.c index 2e2006abc1..9b749a70ec 100644 --- a/libmpcodecs/ad_liba52.c +++ b/libmpcodecs/ad_liba52.c @@ -54,8 +54,6 @@ static uint32_t channel_map; /** The output is multiplied by this var. Used for volume control */ static sample_t a52_level = 1; -/** The value of the -a52drc switch. */ -float a52_drc_level = 1.0; static int a52_drc_action = DRC_NO_ACTION; static const ad_info_t info = @@ -136,8 +134,8 @@ int channels=0; static sample_t dynrng_call (sample_t c, void *data) { -// fprintf(stderr, "(%lf, %lf): %lf\n", (double)c, (double)a52_drc_level, (double)pow((double)c, a52_drc_level)); - return pow((double)c, a52_drc_level); +// fprintf(stderr, "(%lf, %lf): %lf\n", (double)c, (double)drc_level, (double)pow((double)c, drc_level)); + return pow((double)c, drc_level); } @@ -207,10 +205,10 @@ static int init(sh_audio_t *sh_audio) /* Init a52 dynrng */ - if (a52_drc_level < 0.001) { + if (drc_level < 0.001) { /* level == 0 --> no compression, init library without callback */ a52_drc_action = DRC_NO_COMPRESSION; - } else if (a52_drc_level > 0.999) { + } else if (drc_level > 0.999) { /* level == 1 --> full compression, do nothing at all (library default = full compression) */ a52_drc_action = DRC_NO_ACTION; } else { |