mirror of
https://github.com/mpv-player/mpv
synced 2025-04-11 04:01:31 +00:00
build: prefer 4Front OSS to native implementations
If sys/soundcard.h is actually linux/soundcard.h then it supports only OSSv3
API. This may happen when OSSLIBDIR == /usr while forgetting to replace
sys/soundcard.h from glibc.
However, after fa620ff
waf prefers native implementation which is inferior
on Linux. To fix try making waf prefer oss-audio-4front. It's quite unusual
to have 4Front OSS installed where native implementation is superior, anyway.
Signed-off-by: bugmen0t <@>
Make the false positives path also undef the 4Front define.
Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
Fixes #396
This commit is contained in:
parent
a066dae19e
commit
20d1fc132e
@ -1,3 +1,4 @@
|
||||
from waftools.inflectors import DependencyInflector
|
||||
from waftools.checks.generic import *
|
||||
from waflib import Utils
|
||||
import os
|
||||
@ -84,6 +85,12 @@ def __get_osslibdir():
|
||||
def check_oss_4front(ctx, dependency_identifier):
|
||||
oss_libdir = __get_osslibdir()
|
||||
|
||||
# avoid false positive from native sys/soundcard.h
|
||||
if not oss_libdir:
|
||||
defkey = DependencyInflector(dependency_identifier).define_key()
|
||||
ctx.undefine(defkey)
|
||||
return False
|
||||
|
||||
soundcard_h = os.path.join(oss_libdir, "include/sys/soundcard.h")
|
||||
include_dir = os.path.join(oss_libdir, "include")
|
||||
|
||||
|
14
wscript
14
wscript
@ -382,6 +382,11 @@ audio_output_features = [
|
||||
'desc': 'SDL (1.x)',
|
||||
'deps_neg': [ 'sdl2' ],
|
||||
'func': check_pkg_config('sdl')
|
||||
}, {
|
||||
'name': 'oss-audio-4front',
|
||||
'desc': 'OSS (implementation from opensound.com)',
|
||||
'func': check_oss_4front,
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': 'oss-audio-native',
|
||||
'desc': 'OSS (platform-specific OSS implementation)',
|
||||
@ -389,6 +394,7 @@ audio_output_features = [
|
||||
defines=['PATH_DEV_DSP="/dev/dsp"',
|
||||
'PATH_DEV_MIXER="/dev/mixer"'],
|
||||
fragment=load_fragment('oss_audio.c')),
|
||||
'deps_neg': [ 'oss-audio-4front' ],
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': 'oss-audio-sunaudio',
|
||||
@ -398,13 +404,7 @@ audio_output_features = [
|
||||
defines=['PATH_DEV_DSP="/dev/sound"',
|
||||
'PATH_DEV_MIXER="/dev/mixer"'],
|
||||
fragment=load_fragment('oss_audio_sunaudio.c')),
|
||||
'deps_neg': [ 'oss-audio-native' ],
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': 'oss-audio-4front',
|
||||
'desc': 'OSS (implementation from opensound.com)',
|
||||
'func': check_oss_4front,
|
||||
'deps_neg': [ 'oss-audio-native', 'oss-audio-sunaudio' ],
|
||||
'deps_neg': [ 'oss-audio-4front', 'oss-audio-native' ],
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': '--oss-audio',
|
||||
|
Loading…
Reference in New Issue
Block a user