From 7ae84957799b7ac96a01ba4079c69e58f19b5fc9 Mon Sep 17 00:00:00 2001 From: "fischman@webrtc.org" Date: Tue, 10 Dec 2013 21:01:34 +0000 Subject: [PATCH] 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 --- .../modules/audio_device/audio_device_impl.cc | 8 +++-- .../linux/audio_device_pulse_linux.cc | 29 ------------------- .../linux/audio_device_pulse_linux.h | 2 -- 3 files changed, 5 insertions(+), 34 deletions(-) diff --git a/webrtc/modules/audio_device/audio_device_impl.cc b/webrtc/modules/audio_device/audio_device_impl.cc index 9acaf80480..429bf62506 100644 --- a/webrtc/modules/audio_device/audio_device_impl.cc +++ b/webrtc/modules/audio_device/audio_device_impl.cc @@ -299,14 +299,16 @@ int32_t AudioDeviceModuleImpl::CreatePlatformSpecificObjects() #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 486f67eeb5..e095eed0d5 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 @@ namespace webrtc // 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 c4ca743853..43228a1bab 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 @@ public: 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;