From f7a427676c0fe3c12509e3d9a243301f93626b0a Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 5 Apr 2013 19:47:51 +0200 Subject: audio: add some setters for mp_audio, and require filters to use them mp_audio has some redundant fields. Setters like mp_audio_set_format() initialize these properly. Also move the mp_audio struct to a the file audio.c. We can remove a mysterious line of code from af.c: in.format |= af_bits2fmt(in.bps * 8); I'm not sure if this was ever actually needed, or if it was some kind of "make it work" quick-fix that works against the way things were supposed to work. All filters etc. now set the format correctly, so if there ever was a need for this code, it's definitely gone. --- audio/filter/af_scaletempo.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'audio/filter/af_scaletempo.c') diff --git a/audio/filter/af_scaletempo.c b/audio/filter/af_scaletempo.c index 657fd7f712..5cf0f3b082 100644 --- a/audio/filter/af_scaletempo.c +++ b/audio/filter/af_scaletempo.c @@ -302,29 +302,22 @@ static int control(struct af_instance* af, int cmd, void* arg) "[scaletempo] %.3f speed * %.3f scale_nominal = %.3f\n", s->speed, s->scale_nominal, s->scale); + mp_audio_copy_config(af->data, data); + if (s->scale == 1.0) { if (s->speed_tempo && s->speed_pitch) return AF_DETACH; - af->data->format = data->format; - af->data->nch = data->nch; - af->data->rate = data->rate; - af->data->bps = data->bps; af->delay = 0; af->mul = 1; return af_test_output(af, data); } - af->data->rate = data->rate; - af->data->nch = data->nch; - if ( data->format == AF_FORMAT_S16_LE - || data->format == AF_FORMAT_S16_BE ) { + if (data->format == AF_FORMAT_S16_NE) { use_int = 1; - af->data->format = AF_FORMAT_S16_NE; - af->data->bps = bps = 2; } else { - af->data->format = AF_FORMAT_FLOAT_NE; - af->data->bps = bps = 4; + mp_audio_set_format(af->data, AF_FORMAT_FLOAT_NE); } + bps = af->data->bps; frames_stride = srate * s->ms_stride; s->bytes_stride = frames_stride * bps * nch; -- cgit v1.2.3