Merge pull request #39934 from starryalley/fix-videoplayer-race
VideoPlayer: fix possible race condition
This commit is contained in:
commit
4599381fad
@ -201,10 +201,9 @@ bool VideoPlayer::has_expand() const {
|
|||||||
|
|
||||||
void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) {
|
void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) {
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
AudioServer::get_singleton()->lock();
|
AudioServer::get_singleton()->lock();
|
||||||
mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
|
mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
|
||||||
AudioServer::get_singleton()->unlock();
|
|
||||||
|
|
||||||
stream = p_stream;
|
stream = p_stream;
|
||||||
if (stream.is_valid()) {
|
if (stream.is_valid()) {
|
||||||
stream->set_audio_track(audio_track);
|
stream->set_audio_track(audio_track);
|
||||||
@ -212,6 +211,7 @@ void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) {
|
|||||||
} else {
|
} else {
|
||||||
playback = Ref<VideoStreamPlayback>();
|
playback = Ref<VideoStreamPlayback>();
|
||||||
}
|
}
|
||||||
|
AudioServer::get_singleton()->unlock();
|
||||||
|
|
||||||
if (!playback.is_null()) {
|
if (!playback.is_null()) {
|
||||||
playback->set_loop(loops);
|
playback->set_loop(loops);
|
||||||
|
Loading…
Reference in New Issue
Block a user