diff --git a/src/video_output/display.c b/src/video_output/display.c index c174a54279321510bb48660d2724136fc21c60cd..d2b0e51c7e92ee707921bb99226b7a0973db3cab 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -283,7 +283,7 @@ typedef struct { * can be done and nothing will be displayed */ filter_chain_t *converters; #ifdef _WIN32 - atomic_bool reset_pictures; + bool reset_pictures; // set/read under the same lock as the control #endif picture_pool_t *pool; } vout_display_priv_t; @@ -360,7 +360,7 @@ void vout_display_SendEventPicturesInvalid(vout_display_t *vd) vout_display_priv_t *osys = container_of(vd, vout_display_priv_t, display); msg_Err(vd, "picture buffers invalidated asynchronously"); - atomic_store_explicit(&osys->reset_pictures, true, memory_order_release); + osys->reset_pictures = true; #else (void) vd; vlc_assert_unreachable(); @@ -476,9 +476,8 @@ static void vout_display_CheckReset(vout_display_t *vd) #ifdef _WIN32 vout_display_priv_t *osys = container_of(vd, vout_display_priv_t, display); - if (unlikely(atomic_exchange_explicit(&osys->reset_pictures, false, - memory_order_relaxed))) { - atomic_thread_fence(memory_order_acquire); + if (unlikely(osys->reset_pictures)) { + osys->reset_pictures = false; vout_display_Reset(vd); } #else @@ -736,7 +735,7 @@ vout_display_t *vout_display_New(vlc_object_t *parent, &osys->cfg.display.height, source, &osys->cfg); #ifdef _WIN32 - atomic_init(&osys->reset_pictures, false); + osys->reset_pictures = false; #endif osys->pool = NULL;