diff options
author | wm4 <wm4@nowhere> | 2013-04-05 19:47:51 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-05-12 21:24:54 +0200 |
commit | f7a427676c0fe3c12509e3d9a243301f93626b0a (patch) | |
tree | 8dc8a2371a3e561ebb03f0bd17c2d59135c9f872 /audio/filter/af_lavcac3enc.c | |
parent | 0042735d7aefb2f05a79ba2eae741a63f22ea0c9 (diff) | |
download | mpv-f7a427676c0fe3c12509e3d9a243301f93626b0a.tar.bz2 mpv-f7a427676c0fe3c12509e3d9a243301f93626b0a.tar.xz |
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.
Diffstat (limited to 'audio/filter/af_lavcac3enc.c')
-rw-r--r-- | audio/filter/af_lavcac3enc.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/audio/filter/af_lavcac3enc.c b/audio/filter/af_lavcac3enc.c index 94d59a11ca..5be8df2b51 100644 --- a/audio/filter/af_lavcac3enc.c +++ b/audio/filter/af_lavcac3enc.c @@ -75,16 +75,15 @@ static int control(struct af_instance *af, int cmd, void *arg) if (AF_FORMAT_IS_AC3(data->format) || data->nch < s->min_channel_num) return AF_DETACH; - af->data->format = s->in_sampleformat; - af->data->bps = af_fmt2bits(s->in_sampleformat) / 8; + mp_audio_set_format(af->data, s->in_sampleformat); if (data->rate == 48000 || data->rate == 44100 || data->rate == 32000) af->data->rate = data->rate; else af->data->rate = 48000; if (data->nch > AC3_MAX_CHANNELS) - af->data->nch = AC3_MAX_CHANNELS; + mp_audio_set_num_channels(af->data, AC3_MAX_CHANNELS); else - af->data->nch = data->nch; + mp_audio_set_num_channels(af->data, data->nch); test_output_res = af_test_output(af, data); s->pending_len = 0; @@ -123,9 +122,8 @@ static int control(struct af_instance *af, int cmd, void *arg) "encoder frame size %d\n", s->lavc_actx->frame_size); return AF_ERROR; } - af->data->format = AF_FORMAT_AC3_BE; - af->data->bps = 2; - af->data->nch = 2; + mp_audio_set_format(af->data, AF_FORMAT_AC3_BE); + mp_audio_set_num_channels(af->data, 2); return test_output_res; case AF_CONTROL_COMMAND_LINE: mp_msg(MSGT_AFILTER, MSGL_DBG2, "af_lavcac3enc cmdline: %s.\n", (char*)arg); @@ -316,8 +314,8 @@ static struct mp_audio* play(struct af_instance* af, struct mp_audio* data) buf += len; } c->audio = l->audio; - c->nch = 2; - c->bps = 2; + mp_audio_set_num_channels(c, 2); + mp_audio_set_format(c, af->data->format); c->len = outsize; mp_msg(MSGT_AFILTER, MSGL_DBG2, "play return size %d, pending %d\n", outsize, s->pending_len); |