[vlc-commits] aout: avoid setting viewpoint more than once
Rémi Denis-Courmont
git at videolan.org
Fri May 4 15:50:52 CEST 2018
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | 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);
}
More information about the vlc-commits
mailing list