Removed unnecessary Pulse init from VoE startup.
Saves 10% (~260ms) of the total PeerConnectionTest wallclock time.
R=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/5479004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5254 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_device/audio_device_impl.cc b/webrtc/modules/audio_device/audio_device_impl.cc
index 9acaf80..429bf62 100644
--- a/webrtc/modules/audio_device/audio_device_impl.cc
+++ b/webrtc/modules/audio_device/audio_device_impl.cc
@@ -299,14 +299,16 @@
#if defined(LINUX_PULSE)
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "attempting to use the Linux PulseAudio APIs...");
- if (AudioDeviceLinuxPulse::PulseAudioIsSupported())
+ // create *Linux PulseAudio* implementation
+ AudioDeviceLinuxPulse* pulseDevice = new AudioDeviceLinuxPulse(Id());
+ if (pulseDevice->Init() != -1)
{
- // create *Linux PulseAudio* implementation
- ptrAudioDevice = new AudioDeviceLinuxPulse(Id());
+ ptrAudioDevice = pulseDevice;
WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "Linux PulseAudio APIs will be utilized");
}
else
{
+ delete pulseDevice;
#endif
#if defined(LINUX_ALSA)
// create *Linux ALSA Audio* implementation
diff --git a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
index 486f67e..e095eed 100644
--- a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
+++ b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
@@ -33,35 +33,6 @@
// Static Methods
// ============================================================================
-bool AudioDeviceLinuxPulse::PulseAudioIsSupported()
-{
- WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, -1, "%s",
- __FUNCTION__);
-
- bool pulseAudioIsSupported(true);
-
- // Check that we can initialize
- AudioDeviceLinuxPulse* admPulse = new AudioDeviceLinuxPulse(-1);
- if (admPulse->InitPulseAudio() == -1)
- {
- pulseAudioIsSupported = false;
- }
- admPulse->TerminatePulseAudio();
- delete admPulse;
-
- if (pulseAudioIsSupported)
- {
- WEBRTC_TRACE(kTraceStateInfo, kTraceAudioDevice, -1,
- "*** Linux Pulse Audio is supported ***");
- } else
- {
- WEBRTC_TRACE(kTraceStateInfo, kTraceAudioDevice, -1,
- "*** Linux Pulse Audio is NOT supported => will revert to the ALSA API ***");
- }
-
- return (pulseAudioIsSupported);
-}
-
AudioDeviceLinuxPulse::AudioDeviceLinuxPulse(const int32_t id) :
_ptrAudioBuffer(NULL),
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
diff --git a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h
index c4ca743..43228a1 100644
--- a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h
+++ b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h
@@ -95,8 +95,6 @@
AudioDeviceLinuxPulse(const int32_t id);
virtual ~AudioDeviceLinuxPulse();
- static bool PulseAudioIsSupported();
-
// Retrieve the currently utilized audio layer
virtual int32_t ActiveAudioLayer(
AudioDeviceModule::AudioLayer& audioLayer) const OVERRIDE;