diff options
Diffstat (limited to 'player')
-rw-r--r-- | player/audio.c | 53 | ||||
-rw-r--r-- | player/command.c | 33 |
2 files changed, 1 insertions, 85 deletions
diff --git a/player/audio.c b/player/audio.c index 3b63f92d7e..e08259b1b5 100644 --- a/player/audio.c +++ b/player/audio.c @@ -185,57 +185,6 @@ void audio_update_volume(struct MPContext *mpctx) gain *= compute_replaygain(mpctx); if (opts->softvol_mute == 1) gain = 0.0; - - if (!af_control_any_rev(ao_c->af, AF_CONTROL_SET_VOLUME, &gain)) { - if (gain == 1.0) - return; - MP_VERBOSE(mpctx, "Inserting volume filter.\n"); - char *args[] = {"warn", "no", NULL}; - if (!(af_add(ao_c->af, "volume", "softvol", args) - && af_control_any_rev(ao_c->af, AF_CONTROL_SET_VOLUME, &gain))) - MP_ERR(mpctx, "No volume control available.\n"); - } -} - -/* NOTE: Currently the balance code is seriously buggy: it always changes - * the af_pan mapping between the first two input channels and first two - * output channels to particular values. These values make sense for an - * af_pan instance that was automatically inserted for balance control - * only and is otherwise an identity transform, but if the filter was - * there for another reason, then ignoring and overriding the original - * values is completely wrong. - */ -void audio_update_balance(struct MPContext *mpctx) -{ - struct MPOpts *opts = mpctx->opts; - struct ao_chain *ao_c = mpctx->ao_chain; - if (!ao_c || ao_c->af->initialized < 1) - return; - - float val = opts->balance; - - if (af_control_any_rev(ao_c->af, AF_CONTROL_SET_PAN_BALANCE, &val)) - return; - - if (val == 0) - return; - - struct af_instance *af_pan_balance; - if (!(af_pan_balance = af_add(ao_c->af, "pan", "autopan", NULL))) { - MP_ERR(mpctx, "No balance control available.\n"); - return; - } - - /* make all other channels pass through since by default pan blocks all */ - for (int i = 2; i < AF_NCH; i++) { - float level[AF_NCH] = {0}; - level[i] = 1.f; - af_control_ext_t arg_ext = { .ch = i, .arg = level }; - af_pan_balance->control(af_pan_balance, AF_CONTROL_SET_PAN_LEVEL, - &arg_ext); - } - - af_pan_balance->control(af_pan_balance, AF_CONTROL_SET_PAN_BALANCE, &val); } static int recreate_audio_filters(struct MPContext *mpctx) @@ -254,7 +203,6 @@ static int recreate_audio_filters(struct MPContext *mpctx) MP_ERR(mpctx, "--softvol=no is not supported anymore.\n"); audio_update_volume(mpctx); - audio_update_balance(mpctx); mp_notify(mpctx, MPV_EVENT_AUDIO_RECONFIG, NULL); @@ -289,7 +237,6 @@ int reinit_audio_filters(struct MPContext *mpctx) #else /* HAVE_LIBAV */ void audio_update_volume(struct MPContext *mpctx) {} -void audio_update_balance(struct MPContext *mpctx) {} int reinit_audio_filters(struct MPContext *mpctx) { return 0; } #endif /* else HAVE_LIBAF */ diff --git a/player/command.c b/player/command.c index c89f6a7f6f..569272c680 100644 --- a/player/command.c +++ b/player/command.c @@ -2100,35 +2100,6 @@ static int mp_property_audio_out_params(void *ctx, struct m_property *prop, return r; } -/// Balance (RW) -static int mp_property_balance(void *ctx, struct m_property *prop, - int action, void *arg) -{ - MPContext *mpctx = ctx; - - if (action == M_PROPERTY_PRINT) { - char **str = arg; - float bal = mpctx->opts->balance; - if (bal == 0.f) - *str = talloc_strdup(NULL, "center"); - else if (bal == -1.f) - *str = talloc_strdup(NULL, "left only"); - else if (bal == 1.f) - *str = talloc_strdup(NULL, "right only"); - else { - unsigned right = (bal + 1.f) / 2.f * 100.f; - *str = talloc_asprintf(NULL, "left %d%%, right %d%%", - 100 - right, right); - } - return M_PROPERTY_OK; - } - - int r = mp_property_generic_option(mpctx, prop, action, arg); - if (action == M_PROPERTY_SET) - audio_update_balance(mpctx); - return r; -} - static struct track* track_next(struct MPContext *mpctx, enum stream_type type, int direction, struct track *track) { @@ -4011,7 +3982,6 @@ static const struct m_property mp_properties_base[] = { {"audio-params", mp_property_audio_params}, {"audio-out-params", mp_property_audio_out_params}, {"aid", mp_property_audio}, - {"balance", mp_property_balance}, {"audio-device", mp_property_audio_device}, {"audio-device-list", mp_property_audio_devices}, {"current-ao", mp_property_ao}, @@ -4167,7 +4137,7 @@ static const char *const *const mp_event_property_change[] = { "colormatrix-primaries", "video-aspect", "video-dec-params", "hwdec", "hwdec-current", "hwdec-interop"), E(MPV_EVENT_AUDIO_RECONFIG, "audio-format", "audio-codec", "audio-bitrate", - "samplerate", "channels", "audio", "volume", "mute", "balance", + "samplerate", "channels", "audio", "volume", "mute", "current-ao", "audio-codec-name", "audio-params", "audio-out-params", "volume-max", "mixer-active"), E(MPV_EVENT_SEEK, "seeking", "core-idle", "eof-reached"), @@ -4361,7 +4331,6 @@ static const struct property_osd_display { { "ao-mute", "AO Mute" }, { "audio-delay", "A-V delay" }, { "audio", "Audio" }, - { "balance", "Balance", .osd_progbar = OSD_BALANCE }, // video { "panscan", "Panscan", .osd_progbar = OSD_PANSCAN }, { "taskbar-progress", "Progress in taskbar" }, |