vlc | branch: master | Quentin Chateau <[email protected]> | Fri Feb 21 15:14:35 2020 +0100| [f1b76bde7fccbceaa778be57e99691e3589e028f] | committer: Thomas Guillem
vout: use vlc_atomic_rc_t Signed-off-by: Thomas Guillem <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f1b76bde7fccbceaa778be57e99691e3589e028f --- src/video_output/video_output.c | 8 +++----- src/video_output/vout_internal.h | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index a711d302af..0b3d1cac14 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1829,7 +1829,7 @@ void vout_Release(vout_thread_t *vout) { vout_thread_sys_t *sys = vout->p; - if (atomic_fetch_sub_explicit(&sys->refs, 1, memory_order_release)) + if (!vlc_atomic_rc_dec(&sys->rc)) return; if (sys->dummy) @@ -1869,6 +1869,7 @@ static vout_thread_t *vout_CreateCommon(vlc_object_t *object) vout_CreateVars(vout); vout_thread_sys_t *sys = (vout_thread_sys_t *)&vout[1]; + vlc_atomic_rc_init(&sys->rc); vout->p = sys; return vout; @@ -1954,9 +1955,6 @@ vout_thread_t *vout_Create(vlc_object_t *object) /* Arbitrary initial time */ vout_chrono_Init(&sys->render, 5, VLC_TICK_FROM_MS(10)); - /* */ - atomic_init(&sys->refs, 0); - if (var_InheritBool(vout, "video-wallpaper")) vout_window_SetState(sys->display_cfg.window, VOUT_WINDOW_STATE_BELOW); else if (var_InheritBool(vout, "video-on-top")) @@ -1969,7 +1967,7 @@ vout_thread_t *vout_Hold(vout_thread_t *vout) { vout_thread_sys_t *sys = vout->p; - atomic_fetch_add_explicit(&sys->refs, 1, memory_order_relaxed); + vlc_atomic_rc_inc(&sys->rc); return vout; } diff --git a/src/video_output/vout_internal.h b/src/video_output/vout_internal.h index ae2ce3823b..fdc92bfa45 100644 --- a/src/video_output/vout_internal.h +++ b/src/video_output/vout_internal.h @@ -24,8 +24,7 @@ #ifndef LIBVLC_VOUT_INTERNAL_H #define LIBVLC_VOUT_INTERNAL_H 1 -#include <stdatomic.h> - +#include <vlc_atomic.h> #include <vlc_picture_fifo.h> #include <vlc_picture_pool.h> #include <vlc_vout_display.h> @@ -184,7 +183,7 @@ struct vout_thread_sys_t picture_fifo_t *decoder_fifo; vout_chrono_t render; /**< picture render time estimator */ - atomic_uintptr_t refs; + vlc_atomic_rc_t rc; }; /** _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
