diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-29 14:52:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-29 14:52:58 +0200 |
commit | 4599381fad10a20ffd2d4eadf7e9de99ef15ac80 (patch) | |
tree | 70517af44c9f815bf0908795bd34bccd459e6373 | |
parent | 5bf7c769f0ec164bfa9c970c174711c1f02816bd (diff) | |
parent | e435d57758017ae7e92b052dcdd64488934998c1 (diff) |
Merge pull request #39934 from starryalley/fix-videoplayer-race
VideoPlayer: fix possible race condition
-rw-r--r-- | scene/gui/video_player.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp index 881df06d8f..e118cb0d8d 100644 --- a/scene/gui/video_player.cpp +++ b/scene/gui/video_player.cpp @@ -201,10 +201,9 @@ bool VideoPlayer::has_expand() const { void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) { stop(); + AudioServer::get_singleton()->lock(); mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); - AudioServer::get_singleton()->unlock(); - stream = p_stream; if (stream.is_valid()) { stream->set_audio_track(audio_track); @@ -212,6 +211,7 @@ void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) { } else { playback = Ref<VideoStreamPlayback>(); } + AudioServer::get_singleton()->unlock(); if (!playback.is_null()) { playback->set_loop(loops); |