lib/xiph: disable Tremor detection if libvorbis was found

And disable libvorbis detection if Tremor was explicitly enabled.

This fixes a crash bug caused by libvorbis/Tremor ABI conflict caused
by commit 4f7d52dbf2
This commit is contained in:
Max Kellermann 2019-03-17 23:36:52 +01:00
parent 6d12c22653
commit c18cd941aa
2 changed files with 16 additions and 2 deletions

1
NEWS
View File

@ -8,6 +8,7 @@ ver 0.21.6 (not yet released)
* decoder * decoder
- opus: fix replay gain when there are no other tags - opus: fix replay gain when there are no other tags
- opus: fix seeking to beginning of song - opus: fix seeking to beginning of song
- vorbis: fix Tremor conflict resulting in crash
* output * output
- pulse: work around error with unusual channel count - pulse: work around error with unusual channel count
- osx: fix build failure - osx: fix build failure

View File

@ -1,7 +1,20 @@
libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac')) libflac_dep = dependency('flac', version: '>= 1.2', required: get_option('flac'))
libopus_dep = dependency('opus', required: get_option('opus')) 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() if get_option('vorbis').enabled() and get_option('tremor').enabled()
error('Cannot build both, the Vorbis decoder AND the Tremor (Vorbis fixed-point) decoder') error('Cannot build both, the Vorbis decoder AND the Tremor (Vorbis fixed-point) decoder')