mirror of https://github.com/mpv-player/mpv
parent
41ba6dad72
commit
e7977ec875
|
@ -215,6 +215,8 @@ int audio_init_filters(struct dec_audio *d_audio, int in_samplerate,
|
||||||
|
|
||||||
afs->metadata = d_audio->metadata;
|
afs->metadata = d_audio->metadata;
|
||||||
|
|
||||||
|
afs->replaygain_data = d_audio->replaygain_data;
|
||||||
|
|
||||||
char *s_from = mp_audio_config_to_str(&afs->input);
|
char *s_from = mp_audio_config_to_str(&afs->input);
|
||||||
char *s_to = mp_audio_config_to_str(&afs->output);
|
char *s_to = mp_audio_config_to_str(&afs->output);
|
||||||
MP_VERBOSE(d_audio, "Building audio filter chain for %s -> %s...\n", s_from, s_to);
|
MP_VERBOSE(d_audio, "Building audio filter chain for %s -> %s...\n", s_from, s_to);
|
||||||
|
|
|
@ -37,6 +37,7 @@ struct dec_audio {
|
||||||
struct af_stream *afilter;
|
struct af_stream *afilter;
|
||||||
char *decoder_desc;
|
char *decoder_desc;
|
||||||
struct mp_tags *metadata;
|
struct mp_tags *metadata;
|
||||||
|
struct replaygain_data *replaygain_data;
|
||||||
// set by decoder
|
// set by decoder
|
||||||
struct mp_audio decoded; // format of decoded audio (no data, temporarily
|
struct mp_audio decoded; // format of decoded audio (no data, temporarily
|
||||||
// different from decode_buffer during format
|
// different from decode_buffer during format
|
||||||
|
|
|
@ -205,6 +205,7 @@ static struct af_instance *af_create(struct af_stream *s, char *name,
|
||||||
.data = talloc_zero(af, struct mp_audio),
|
.data = talloc_zero(af, struct mp_audio),
|
||||||
.log = mp_log_new(af, s->log, name),
|
.log = mp_log_new(af, s->log, name),
|
||||||
.metadata = s->metadata,
|
.metadata = s->metadata,
|
||||||
|
.replaygain_data = s->replaygain_data,
|
||||||
};
|
};
|
||||||
struct m_config *config = m_config_from_obj_desc(af, s->log, &desc);
|
struct m_config *config = m_config_from_obj_desc(af, s->log, &desc);
|
||||||
if (m_config_apply_defaults(config, name, s->opts->af_defs) < 0)
|
if (m_config_apply_defaults(config, name, s->opts->af_defs) < 0)
|
||||||
|
|
|
@ -60,6 +60,7 @@ struct af_instance {
|
||||||
const struct af_info *info;
|
const struct af_info *info;
|
||||||
struct mp_log *log;
|
struct mp_log *log;
|
||||||
struct mp_tags *metadata;
|
struct mp_tags *metadata;
|
||||||
|
struct replaygain_data *replaygain_data;
|
||||||
int (*control)(struct af_instance *af, int cmd, void *arg);
|
int (*control)(struct af_instance *af, int cmd, void *arg);
|
||||||
void (*uninit)(struct af_instance *af);
|
void (*uninit)(struct af_instance *af);
|
||||||
/* flags is a bit mask of AF_FILTER_FLAG_* values
|
/* flags is a bit mask of AF_FILTER_FLAG_* values
|
||||||
|
@ -92,6 +93,7 @@ struct af_stream {
|
||||||
struct mp_log *log;
|
struct mp_log *log;
|
||||||
struct MPOpts *opts;
|
struct MPOpts *opts;
|
||||||
struct mp_tags *metadata;
|
struct mp_tags *metadata;
|
||||||
|
struct replaygain_data *replaygain_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Return values
|
// Return values
|
||||||
|
|
|
@ -120,6 +120,7 @@ void reinit_audio_chain(struct MPContext *mpctx)
|
||||||
mpctx->d_audio->opts = opts;
|
mpctx->d_audio->opts = opts;
|
||||||
mpctx->d_audio->header = sh;
|
mpctx->d_audio->header = sh;
|
||||||
mpctx->d_audio->metadata = mpctx->demuxer->metadata;
|
mpctx->d_audio->metadata = mpctx->demuxer->metadata;
|
||||||
|
mpctx->d_audio->replaygain_data = mpctx->demuxer->replaygain_data;
|
||||||
if (!audio_init_best_codec(mpctx->d_audio, opts->audio_decoders))
|
if (!audio_init_best_codec(mpctx->d_audio, opts->audio_decoders))
|
||||||
goto init_error;
|
goto init_error;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue