|author||wm4 <wm4@nowhere>||2013-04-05 19:47:51 +0200|
|committer||wm4 <wm4@nowhere>||2013-05-12 21:24:54 +0200|
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/audio.c')
1 files changed, 38 insertions, 0 deletions
diff --git a/audio/audio.c b/audio/audio.c
new file mode 100644
@@ -0,0 +1,38 @@
+ * This file is part of mpv.
+ * mpv is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * mpv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along
+ * with mpv. If not, see <http://www.gnu.org/licenses/>.
+void mp_audio_set_format(struct mp_audio *mpa, int format)
+ mpa->format = format;
+ mpa->bps = af_fmt2bits(format) / 8;
+void mp_audio_set_num_channels(struct mp_audio *mpa, int num_channels)
+ mpa->nch = num_channels;
+void mp_audio_copy_config(struct mp_audio *dst, const struct mp_audio *src)
+ mp_audio_set_format(dst, src->format);
+ mp_audio_set_num_channels(dst, src->nch);
+ dst->rate = src->rate;