vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri May 4 16:40:37 2018 +0300| [488a1bed79a3912a7d1fb055edd14809f2b94c78] | committer: Rémi Denis-Courmont
aout: avoid setting viewpoint more than once > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=488a1bed79a3912a7d1fb055edd14809f2b94c78 --- src/audio_output/dec.c | 5 +++-- src/audio_output/output.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/audio_output/dec.c b/src/audio_output/dec.c index 1659a314d5..d395f8a9ec 100644 --- a/src/audio_output/dec.c +++ b/src/audio_output/dec.c @@ -108,7 +108,7 @@ error: atomic_init (&owner->buffers_lost, 0); atomic_init (&owner->buffers_played, 0); - atomic_store (&owner->vp.update, true); + atomic_store_explicit(&owner->vp.update, true, memory_order_relaxed); return 0; } @@ -377,10 +377,11 @@ int aout_DecPlay(audio_output_t *aout, block_t *block) if (block->i_flags & BLOCK_FLAG_DISCONTINUITY) owner->sync.discontinuity = true; - if (atomic_exchange(&owner->vp.update, false)) + if (atomic_load_explicit(&owner->vp.update, memory_order_relaxed)) { vlc_mutex_lock (&owner->vp.lock); aout_FiltersChangeViewpoint (owner->filters, &owner->vp.value); + atomic_store_explicit(&owner->vp.update, false, memory_order_relaxed); vlc_mutex_unlock (&owner->vp.lock); } diff --git a/src/audio_output/output.c b/src/audio_output/output.c index c077631a2b..1bbbe9716e 100644 --- a/src/audio_output/output.c +++ b/src/audio_output/output.c @@ -930,6 +930,6 @@ static void aout_ChangeViewpoint(audio_output_t *aout, vlc_mutex_lock(&owner->vp.lock); owner->vp.value = *p_viewpoint; - atomic_store(&owner->vp.update, true); + atomic_store_explicit(&owner->vp.update, true, memory_order_relaxed); vlc_mutex_unlock(&owner->vp.lock); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
