44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
diff --git a/chromium/media/audio/linux/audio_manager_linux.cc b/chromium/media/audio/linux/audio_manager_linux.cc
|
|
index 5d703549372..9e60b40c749 100644
|
|
--- media/audio/linux/audio_manager_linux.cc
|
|
+++ media/audio/linux/audio_manager_linux.cc
|
|
@@ -20,6 +20,10 @@
|
|
#include "media/audio/pulse/audio_manager_pulse.h"
|
|
#include "media/audio/pulse/pulse_util.h"
|
|
#endif
|
|
+#if defined(USE_SNDIO)
|
|
+#include <sndio.h>
|
|
+#include "media/audio/openbsd/audio_manager_openbsd.h"
|
|
+#endif
|
|
|
|
namespace media {
|
|
|
|
@@ -27,7 +31,8 @@ enum LinuxAudioIO {
|
|
kPulse,
|
|
kAlsa,
|
|
kCras,
|
|
- kAudioIOMax = kCras // Must always be equal to largest logged entry.
|
|
+ kSndio,
|
|
+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
|
|
};
|
|
|
|
std::unique_ptr<media::AudioManager> CreateAudioManager(
|
|
@@ -41,6 +46,17 @@ std::unique_ptr<media::AudioManager> CreateAudioManager(
|
|
}
|
|
#endif
|
|
|
|
+#if defined(USE_SNDIO)
|
|
+ struct sio_hdl * hdl = NULL;
|
|
+ if ((hdl=sio_open(SIO_DEVANY, SIO_PLAY, 1)) != NULL) {
|
|
+ sio_close(hdl);
|
|
+ UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kSndio, kAudioIOMax +1);
|
|
+ return std::make_unique<AudioManagerOpenBSD>(std::move(audio_thread),
|
|
+ audio_log_factory);
|
|
+ }
|
|
+ DVLOG(1) << "Sndio is not available on the OS";
|
|
+#endif
|
|
+
|
|
#if defined(USE_PULSEAUDIO)
|
|
pa_threaded_mainloop* pa_mainloop = nullptr;
|
|
pa_context* pa_context = nullptr;
|