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')