@ -30,12 +30,14 @@
typedef struct {
typedef struct {
atomic_uint displayed ;
atomic_uint displayed ;
atomic_uint lost ;
atomic_uint lost ;
atomic_uint late ;
} vout_statistic_t ;
} vout_statistic_t ;
static inline void vout_statistic_Init ( vout_statistic_t * stat )
static inline void vout_statistic_Init ( vout_statistic_t * stat )
{
{
atomic_init ( & stat - > displayed , 0 ) ;
atomic_init ( & stat - > displayed , 0 ) ;
atomic_init ( & stat - > lost , 0 ) ;
atomic_init ( & stat - > lost , 0 ) ;
atomic_init ( & stat - > late , 0 ) ;
}
}
static inline void vout_statistic_Clean ( vout_statistic_t * stat )
static inline void vout_statistic_Clean ( vout_statistic_t * stat )
@ -45,11 +47,13 @@ static inline void vout_statistic_Clean(vout_statistic_t *stat)
static inline void vout_statistic_GetReset ( vout_statistic_t * stat ,
static inline void vout_statistic_GetReset ( vout_statistic_t * stat ,
unsigned * restrict displayed ,
unsigned * restrict displayed ,
unsigned * restrict lost )
unsigned * restrict lost ,
unsigned * restrict late )
{
{
* displayed = atomic_exchange_explicit ( & stat - > displayed , 0 ,
* displayed = atomic_exchange_explicit ( & stat - > displayed , 0 ,
memory_order_relaxed ) ;
memory_order_relaxed ) ;
* lost = atomic_exchange_explicit ( & stat - > lost , 0 , memory_order_relaxed ) ;
* lost = atomic_exchange_explicit ( & stat - > lost , 0 , memory_order_relaxed ) ;
* late = atomic_exchange_explicit ( & stat - > late , 0 , memory_order_relaxed ) ;
}
}
static inline void vout_statistic_AddDisplayed ( vout_statistic_t * stat ,
static inline void vout_statistic_AddDisplayed ( vout_statistic_t * stat ,
@ -64,4 +68,9 @@ static inline void vout_statistic_AddLost(vout_statistic_t *stat, int lost)
atomic_fetch_add_explicit ( & stat - > lost , lost , memory_order_relaxed ) ;
atomic_fetch_add_explicit ( & stat - > lost , lost , memory_order_relaxed ) ;
}
}
static inline void vout_statistic_AddLate ( vout_statistic_t * stat , int late )
{
atomic_fetch_add_explicit ( & stat - > late , late , memory_order_relaxed ) ;
}
# endif
# endif