[Issue 101] Solves memory leak on Windows

git-svn-id: http://webrtc.googlecode.com/svn/trunk@784 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrika@webrtc.org 2011-10-20 12:11:45 +00:00
parent 2ebc9ce5a3
commit cedbb036d1
2 changed files with 1 additions and 17 deletions

View File

@ -392,7 +392,6 @@ AudioDeviceWindowsCore::AudioDeviceWindowsCore(const WebRtc_Word32 id) :
_ptrCaptureClient(NULL), _ptrCaptureClient(NULL),
_ptrCaptureVolume(NULL), _ptrCaptureVolume(NULL),
_ptrRenderSimpleVolume(NULL), _ptrRenderSimpleVolume(NULL),
_ptrRenderEndpointVolume(NULL),
_builtInAecEnabled(false), _builtInAecEnabled(false),
_playAudioFrameSize(0), _playAudioFrameSize(0),
_playSampleRate(0), _playSampleRate(0),
@ -724,7 +723,6 @@ WebRtc_Word32 AudioDeviceWindowsCore::Terminate()
SAFE_RELEASE(_ptrCaptureClient); SAFE_RELEASE(_ptrCaptureClient);
SAFE_RELEASE(_ptrCaptureVolume); SAFE_RELEASE(_ptrCaptureVolume);
SAFE_RELEASE(_ptrRenderSimpleVolume); SAFE_RELEASE(_ptrRenderSimpleVolume);
SAFE_RELEASE(_ptrRenderEndpointVolume);
return 0; return 0;
} }
@ -812,19 +810,6 @@ WebRtc_Word32 AudioDeviceWindowsCore::InitSpeaker()
return -1; return -1;
} }
ret = _ptrDeviceOut->Activate(
__uuidof(IAudioEndpointVolume),
CLSCTX_ALL,
NULL,
reinterpret_cast<void **>(&_ptrRenderEndpointVolume));
if (ret != 0 || _ptrRenderEndpointVolume == NULL)
{
WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
" failed to initialize the render endpoint volume");
SAFE_RELEASE(_ptrRenderEndpointVolume);
return -1;
}
IAudioSessionManager* pManager = NULL; IAudioSessionManager* pManager = NULL;
ret = _ptrDeviceOut->Activate(__uuidof(IAudioSessionManager), ret = _ptrDeviceOut->Activate(__uuidof(IAudioSessionManager),
CLSCTX_ALL, CLSCTX_ALL,
@ -838,6 +823,7 @@ WebRtc_Word32 AudioDeviceWindowsCore::InitSpeaker()
return -1; return -1;
} }
SAFE_RELEASE(_ptrRenderSimpleVolume);
ret = pManager->GetSimpleAudioVolume(NULL, FALSE, &_ptrRenderSimpleVolume); ret = pManager->GetSimpleAudioVolume(NULL, FALSE, &_ptrRenderSimpleVolume);
if (ret != 0 || _ptrRenderSimpleVolume == NULL) if (ret != 0 || _ptrRenderSimpleVolume == NULL)
{ {
@ -849,7 +835,6 @@ WebRtc_Word32 AudioDeviceWindowsCore::InitSpeaker()
} }
SAFE_RELEASE(pManager); SAFE_RELEASE(pManager);
_speakerIsInitialized = true; _speakerIsInitialized = true;
return 0; return 0;

View File

@ -254,7 +254,6 @@ private: // WASAPI
IAudioCaptureClient* _ptrCaptureClient; IAudioCaptureClient* _ptrCaptureClient;
IAudioEndpointVolume* _ptrCaptureVolume; IAudioEndpointVolume* _ptrCaptureVolume;
ISimpleAudioVolume* _ptrRenderSimpleVolume; ISimpleAudioVolume* _ptrRenderSimpleVolume;
IAudioEndpointVolume* _ptrRenderEndpointVolume;
// DirectX Media Object (DMO) for the built-in AEC. // DirectX Media Object (DMO) for the built-in AEC.
scoped_refptr<IMediaObject> _dmo; scoped_refptr<IMediaObject> _dmo;