summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-03-31 04:24:53 +0200
committerwm4 <wm4@nowhere>2013-04-13 04:21:30 +0200
commit071a8f50b96758ced05e1eef3aba5ce915a56479 (patch)
treeea1541a6d08d3a9c98f515a8c9c6b8b96ff2f929 /core
parent0d939a6847b139a29aaa21bd0b73d5fa28c6fb03 (diff)
downloadmpv-071a8f50b96758ced05e1eef3aba5ce915a56479.tar.bz2
mpv-071a8f50b96758ced05e1eef3aba5ce915a56479.tar.xz
options: add option to prevent decoder audio downmixing
Also rename --a52drc to --ad-lavc-ac3drc, and add --ad-lavc-o.
Diffstat (limited to 'core')
-rw-r--r--core/cfg-mplayer.h5
-rw-r--r--core/defaultopts.c5
-rw-r--r--core/mplayer.c4
-rw-r--r--core/options.h7
4 files changed, 15 insertions, 6 deletions
diff --git a/core/cfg-mplayer.h b/core/cfg-mplayer.h
index 56e606ff8e..6e776f6598 100644
--- a/core/cfg-mplayer.h
+++ b/core/cfg-mplayer.h
@@ -276,6 +276,7 @@ const m_option_t msgl_config[]={
};
extern const m_option_t lavc_decode_opts_conf[];
+extern const m_option_t ad_lavc_decode_opts_conf[];
#define OPT_BASE_STRUCT struct MPOpts
@@ -424,8 +425,6 @@ const m_option_t common_opts[] = {
// ignore header-specified delay (dwStart)
OPT_FLAG("ignore-start", ignore_start, 0),
- OPT_FLOATRANGE("a52drc", drc_level, 0, 0, 2),
-
// ------------------------- codec/vfilter options --------------------
// MP3-only: select stereo/left/right
@@ -466,6 +465,8 @@ const m_option_t common_opts[] = {
{"lavdopts", (void *) lavc_decode_opts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
{"lavfdopts", (void *) lavfdopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
+
+ {"ad-lavc", (void *) ad_lavc_decode_opts_conf, CONF_TYPE_SUBCONFIG},
// ------------------------- subtitles options --------------------
OPT_STRINGLIST("sub", sub_name, 0),
diff --git a/core/defaultopts.c b/core/defaultopts.c
index 71ce2ed812..75a3b8d226 100644
--- a/core/defaultopts.c
+++ b/core/defaultopts.c
@@ -74,7 +74,6 @@ void set_default_mplayer_options(struct MPOpts *opts)
.audio_output_channels = 2,
.audio_output_format = -1, // AF_FORMAT_UNKNOWN
.playback_speed = 1.,
- .drc_level = 1.,
.movie_aspect = -1.,
.sub_auto = 1,
.osd_bar_visible = 1,
@@ -90,6 +89,10 @@ void set_default_mplayer_options(struct MPOpts *opts)
.workaround_bugs = 1, // autodetect
.error_concealment = 3,
},
+ .ad_lavc_param = {
+ .ac3drc = 1.,
+ .downmix = 1,
+ },
.input = {
.key_fifo_size = 7,
.ar_delay = 100,
diff --git a/core/mplayer.c b/core/mplayer.c
index 7023b6f8f8..64c8e9555d 100644
--- a/core/mplayer.c
+++ b/core/mplayer.c
@@ -1562,8 +1562,8 @@ void reinit_audio_chain(struct MPContext *mpctx)
mpctx->ao = ao_create(opts, mpctx->input);
mpctx->ao->samplerate = opts->force_srate;
mpctx->ao->format = opts->audio_output_format;
- if (mpctx->sh_audio->channels != opts->audio_output_channels &&
- opts->audio_output_channels == 2)
+ // Automatic downmix
+ if (opts->audio_output_channels == 2 && mpctx->sh_audio->channels != 2)
mpctx->ao->channels = 2;
}
ao = mpctx->ao;
diff --git a/core/options.h b/core/options.h
index 0f57381f30..e72778dbde 100644
--- a/core/options.h
+++ b/core/options.h
@@ -155,7 +155,6 @@ typedef struct MPOpts {
int force_srate;
int dtshd;
float playback_speed;
- float drc_level;
struct m_obj_settings *vf_settings;
float movie_aspect;
int flip;
@@ -204,6 +203,12 @@ typedef struct MPOpts {
char *avopt;
} lavc_param;
+ struct ad_lavc_param {
+ float ac3drc;
+ int downmix;
+ char *avopt;
+ } ad_lavc_param;
+
struct lavfdopts {
int probesize;
int probescore;