mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1199794 - Add NULL checks to avoid crashing during media playback if the audio device removed. r=padenot
This commit is contained in:
parent
40122c5ef1
commit
c949250be2
@ -701,6 +701,13 @@ current_stream_delay(cubeb_stream * stm)
|
||||
{
|
||||
stm->stream_reset_lock->assert_current_thread_owns();
|
||||
|
||||
/* If the default audio endpoint went away during playback and we weren't
|
||||
able to configure a new one, it's possible the caller may call this
|
||||
before the error callback has propogated back. */
|
||||
if (!stm->audio_clock) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT64 freq;
|
||||
HRESULT hr = stm->audio_clock->GetFrequency(&freq);
|
||||
if (FAILED(hr)) {
|
||||
@ -728,6 +735,10 @@ stream_set_volume(cubeb_stream * stm, float volume)
|
||||
{
|
||||
stm->stream_reset_lock->assert_current_thread_owns();
|
||||
|
||||
if (!stm->audio_stream_volume) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
uint32_t channels;
|
||||
HRESULT hr = stm->audio_stream_volume->GetChannelCount(&channels);
|
||||
if (hr != S_OK) {
|
||||
@ -1289,6 +1300,10 @@ int wasapi_stream_start(cubeb_stream * stm)
|
||||
|
||||
XASSERT(stm && !stm->thread && !stm->shutdown_event);
|
||||
|
||||
if (!stm->client) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
HRESULT hr = stm->client->Start();
|
||||
if (hr == AUDCLNT_E_DEVICE_INVALIDATED) {
|
||||
LOG("audioclient invalid device, reconfiguring\n", hr);
|
||||
|
Loading…
Reference in New Issue
Block a user