summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--src/lib/xiph/meson.build17
2 files changed, 16 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 29a697bfc..e9aad5a9c 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,7 @@ ver 0.21.6 (not yet released)
* decoder
- opus: fix replay gain when there are no other tags
- opus: fix seeking to beginning of song
+ - vorbis: fix Tremor conflict resulting in crash
* output
- pulse: work around error with unusual channel count
- osx: fix build failure
diff --git a/src/lib/xiph/meson.build b/src/lib/xiph/meson.build
index 432958fee..4f3f46e64 100644
--- a/src/lib/xiph/meson.build
+++ b/src/lib/xiph/meson.build
@@ -1,7 +1,20 @@
libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac'))
libopus_dep = dependency('opus', required: get_option('opus'))
-libvorbis_dep = dependency('vorbis', required: get_option('vorbis'))
-libvorbisidec_dep = dependency('vorbisidec', required: get_option('tremor'))
+
+if get_option('tremor').enabled()
+ # no libvorbis if Tremor was explicitly enabled
+ libvorbis_dep = dependency('', required: false)
+else
+ libvorbis_dep = dependency('vorbis', required: get_option('vorbis'))
+endif
+
+if libvorbis_dep.found()
+ # no Tremor if libvorbis is used
+ libvorbisidec_dep = dependency('', required: false)
+else
+ # attempt to auto-detect Tremor only if libvorbis was disabled or not found
+ libvorbisidec_dep = dependency('vorbisidec', required: get_option('tremor'))
+endif
if get_option('vorbis').enabled() and get_option('tremor').enabled()
error('Cannot build both, the Vorbis decoder AND the Tremor (Vorbis fixed-point) decoder')