summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-09-21 12:48:30 +0200
committerwm4 <wm4@nowhere>2017-09-21 12:48:30 +0200
commitfdb300b983744c522f335ccf64e9788b78f86701 (patch)
treeabd10d97e8c6cb30e1621db8b67d709cbfaeb705 /audio
parent3a2d5e68acb2ac0f8b09b896907a692b1c48c6b3 (diff)
downloadmpv-fdb300b983744c522f335ccf64e9788b78f86701.tar.bz2
mpv-fdb300b983744c522f335ccf64e9788b78f86701.tar.xz
audio: make libaf derived code optional
This code could not be relicensed. The intention was to write new filter code (which could handle both audio and video), but that's a bit of work. Write some code that can do audio conversion (resampling, downmixing, etc.) without the old audio filter chain code in order to speed up the LGPL relicensing. If you build with --disable-libaf, nothing in audio/filter/* is compiled in. It breaks a few features, such as --volume, --af, pitch correction on speed changes, replaygain. Most likely this adds some bugs, even if --disable-libaf is not used. (How the fuck does EOF notification work again anyway?)
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.h2
-rw-r--r--audio/decode/dec_audio.c3
-rw-r--r--audio/filter/af.h5
-rw-r--r--audio/format.c2
4 files changed, 9 insertions, 3 deletions
diff --git a/audio/audio.h b/audio/audio.h
index a4d9134a20..f370067b78 100644
--- a/audio/audio.h
+++ b/audio/audio.h
@@ -97,4 +97,6 @@ struct mp_audio *mp_audio_pool_new_copy(struct mp_audio_pool *pool,
int mp_audio_pool_make_writeable(struct mp_audio_pool *pool,
struct mp_audio *frame);
+#include "filter/af.h"
+
#endif
diff --git a/audio/decode/dec_audio.c b/audio/decode/dec_audio.c
index 401e26fb7b..387a479a8c 100644
--- a/audio/decode/dec_audio.c
+++ b/audio/decode/dec_audio.c
@@ -29,6 +29,7 @@
#include "common/msg.h"
#include "common/recorder.h"
#include "misc/bstr.h"
+#include "options/options.h"
#include "stream/stream.h"
#include "demux/demux.h"
@@ -39,8 +40,6 @@
#include "ad.h"
#include "audio/format.h"
-#include "audio/filter/af.h"
-
extern const struct ad_functions ad_lavc;
// Not a real codec - specially treated.
diff --git a/audio/filter/af.h b/audio/filter/af.h
index bbf7b53bad..4bd8f55b96 100644
--- a/audio/filter/af.h
+++ b/audio/filter/af.h
@@ -22,6 +22,11 @@
#include <stdbool.h>
#include <sys/types.h>
+#include "config.h"
+#if !HAVE_LIBAF
+#error "libaf disabled"
+#endif
+
#include "options/options.h"
#include "audio/format.h"
#include "audio/chmap.h"
diff --git a/audio/format.c b/audio/format.c
index 9a0ebbee42..3df11ba301 100644
--- a/audio/format.c
+++ b/audio/format.c
@@ -20,7 +20,7 @@
#include <limits.h>
#include "common/common.h"
-#include "audio/filter/af.h"
+#include "format.h"
// number of bytes per sample, 0 if invalid/unknown
int af_fmt_to_bytes(int format)