зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1243857
- Enable duplex audio for Windows/WASAPI. r=jesup
MozReview-Commit-ID: 4h1JTGSHr2v
This commit is contained in:
Родитель
8728cc55d6
Коммит
850cb41501
|
@ -12,6 +12,9 @@
|
|||
#include "prenv.h"
|
||||
|
||||
#include "mozilla/Logging.h"
|
||||
#ifdef XP_WIN
|
||||
#include "mozilla/WindowsVersion.h"
|
||||
#endif
|
||||
|
||||
static mozilla::LogModule*
|
||||
GetUserMediaLog()
|
||||
|
@ -290,6 +293,16 @@ MediaEngineWebRTC::EnumerateVideoDevices(dom::MediaSourceEnum aMediaSource,
|
|||
#endif
|
||||
}
|
||||
|
||||
bool
|
||||
MediaEngineWebRTC::SupportsDuplex()
|
||||
{
|
||||
#ifndef XP_WIN
|
||||
return mFullDuplex;
|
||||
#else
|
||||
return IsVistaOrLater() && mFullDuplex;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
MediaEngineWebRTC::EnumerateAudioDevices(dom::MediaSourceEnum aMediaSource,
|
||||
nsTArray<RefPtr<MediaEngineAudioSource> >* aASources)
|
||||
|
@ -339,7 +352,7 @@ MediaEngineWebRTC::EnumerateAudioDevices(dom::MediaSourceEnum aMediaSource,
|
|||
}
|
||||
|
||||
if (!mAudioInput) {
|
||||
if (mFullDuplex) {
|
||||
if (SupportsDuplex()) {
|
||||
// The platform_supports_full_duplex.
|
||||
mAudioInput = new mozilla::AudioInputCubeb(mVoiceEngine);
|
||||
} else {
|
||||
|
@ -383,7 +396,7 @@ MediaEngineWebRTC::EnumerateAudioDevices(dom::MediaSourceEnum aMediaSource,
|
|||
aASources->AppendElement(aSource.get());
|
||||
} else {
|
||||
AudioInput* audioinput = mAudioInput;
|
||||
if (mFullDuplex) {
|
||||
if (SupportsDuplex()) {
|
||||
// The platform_supports_full_duplex.
|
||||
|
||||
// For cubeb, it has state (the selected ID)
|
||||
|
|
|
@ -551,6 +551,9 @@ public:
|
|||
// before invoking Shutdown on this class.
|
||||
void Shutdown() override;
|
||||
|
||||
// Returns whether the host supports duplex audio stream.
|
||||
bool SupportsDuplex();
|
||||
|
||||
void EnumerateVideoDevices(dom::MediaSourceEnum,
|
||||
nsTArray<RefPtr<MediaEngineVideoSource>>*) override;
|
||||
void EnumerateAudioDevices(dom::MediaSourceEnum,
|
||||
|
|
|
@ -446,7 +446,7 @@ pref("media.navigator.audio.full_duplex", false);
|
|||
#elif defined(XP_WIN)
|
||||
pref("media.peerconnection.capture_delay", 50);
|
||||
pref("media.getusermedia.playout_delay", 40);
|
||||
pref("media.navigator.audio.full_duplex", false);
|
||||
pref("media.navigator.audio.full_duplex", true);
|
||||
#elif defined(ANDROID)
|
||||
pref("media.peerconnection.capture_delay", 100);
|
||||
pref("media.getusermedia.playout_delay", 100);
|
||||
|
|
Загрузка…
Ссылка в новой задаче