summaryrefslogtreecommitdiffstats
path: root/audio/filter/af_lavcac3enc.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-05 19:47:51 +0200
committerwm4 <wm4@nowhere>2013-05-12 21:24:54 +0200
commitf7a427676c0fe3c12509e3d9a243301f93626b0a (patch)
tree8dc8a2371a3e561ebb03f0bd17c2d59135c9f872 /audio/filter/af_lavcac3enc.c
parent0042735d7aefb2f05a79ba2eae741a63f22ea0c9 (diff)
downloadmpv-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.c16
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);