FFmpeg
Macros | Typedefs | Functions
stdatomic.h File Reference
#include <stdint.h>

Go to the source code of this file.

Macros

#define ATOMIC_FLAG_INIT   0
 
#define ATOMIC_VAR_INIT(value)   (value)
 
#define atomic_init(obj, value)
 
#define kill_dependency(y)   ((void)0)
 
#define atomic_thread_fence(order)   ((void)0)
 
#define atomic_signal_fence(order)   ((void)0)
 
#define atomic_is_lock_free(obj)   0
 
#define atomic_store(object, desired)
 
#define atomic_store_explicit(object, desired, order)   atomic_store(object, desired)
 
#define atomic_load(object)   (*(object))
 
#define atomic_load_explicit(object, order)   atomic_load(object)
 
#define atomic_exchange_explicit(object, desired, order)   atomic_exchange(object, desired)
 
#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure)   atomic_compare_exchange_strong(object, expected, desired)
 
#define atomic_compare_exchange_weak(object, expected, desired)   atomic_compare_exchange_strong(object, expected, desired)
 
#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure)   atomic_compare_exchange_weak(object, expected, desired)
 
#define FETCH_MODIFY(opname, op)
 
#define atomic_fetch_add_explicit(object, operand, order)   atomic_fetch_add(object, operand)
 
#define atomic_fetch_sub_explicit(object, operand, order)   atomic_fetch_sub(object, operand)
 
#define atomic_fetch_or_explicit(object, operand, order)   atomic_fetch_or(object, operand)
 
#define atomic_fetch_xor_explicit(object, operand, order)   atomic_fetch_xor(object, operand)
 
#define atomic_fetch_and_explicit(object, operand, order)   atomic_fetch_and(object, operand)
 
#define atomic_flag_test_and_set(object)   atomic_exchange(object, 1)
 
#define atomic_flag_test_and_set_explicit(object, order)   atomic_flag_test_and_set(object)
 
#define atomic_flag_clear(object)   atomic_store(object, 0)
 
#define atomic_flag_clear_explicit(object, order)   atomic_flag_clear(object)
 

Typedefs

typedef intptr_t atomic_flag
 
typedef intptr_t atomic_bool
 
typedef intptr_t atomic_char
 
typedef intptr_t atomic_schar
 
typedef intptr_t atomic_uchar
 
typedef intptr_t atomic_short
 
typedef intptr_t atomic_ushort
 
typedef intptr_t atomic_int
 
typedef intptr_t atomic_uint
 
typedef intptr_t atomic_long
 
typedef intptr_t atomic_ulong
 
typedef intptr_t atomic_llong
 
typedef intptr_t atomic_ullong
 
typedef intptr_t atomic_wchar_t
 
typedef intptr_t atomic_int_least8_t
 
typedef intptr_t atomic_uint_least8_t
 
typedef intptr_t atomic_int_least16_t
 
typedef intptr_t atomic_uint_least16_t
 
typedef intptr_t atomic_int_least32_t
 
typedef intptr_t atomic_uint_least32_t
 
typedef intptr_t atomic_int_least64_t
 
typedef intptr_t atomic_uint_least64_t
 
typedef intptr_t atomic_int_fast8_t
 
typedef intptr_t atomic_uint_fast8_t
 
typedef intptr_t atomic_int_fast16_t
 
typedef intptr_t atomic_uint_fast16_t
 
typedef intptr_t atomic_int_fast32_t
 
typedef intptr_t atomic_uint_fast32_t
 
typedef intptr_t atomic_int_fast64_t
 
typedef intptr_t atomic_uint_fast64_t
 
typedef intptr_t atomic_intptr_t
 
typedef intptr_t atomic_uintptr_t
 
typedef intptr_t atomic_size_t
 
typedef intptr_t atomic_ptrdiff_t
 
typedef intptr_t atomic_intmax_t
 
typedef intptr_t atomic_uintmax_t
 

Functions

static intptr_t atomic_exchange (intptr_t *object, intptr_t desired)
 
static int atomic_compare_exchange_strong (intptr_t *object, intptr_t *expected, intptr_t desired)
 

Macro Definition Documentation

#define ATOMIC_FLAG_INIT   0

Definition at line 29 of file stdatomic.h.

#define ATOMIC_VAR_INIT (   value)    (value)

Definition at line 31 of file stdatomic.h.

#define atomic_init (   obj,
  value 
)
#define kill_dependency (   y)    ((void)0)

Definition at line 38 of file stdatomic.h.

#define atomic_thread_fence (   order)    ((void)0)

Definition at line 40 of file stdatomic.h.

#define atomic_signal_fence (   order)    ((void)0)

Definition at line 43 of file stdatomic.h.

#define atomic_is_lock_free (   obj)    0

Definition at line 46 of file stdatomic.h.

#define atomic_store (   object,
  desired 
)
#define atomic_store_explicit (   object,
  desired,
  order 
)    atomic_store(object, desired)
#define atomic_load (   object)    (*(object))
#define atomic_load_explicit (   object,
  order 
)    atomic_load(object)
#define atomic_exchange_explicit (   object,
  desired,
  order 
)    atomic_exchange(object, desired)

Definition at line 106 of file stdatomic.h.

#define atomic_compare_exchange_strong_explicit (   object,
  expected,
  desired,
  success,
  failure 
)    atomic_compare_exchange_strong(object, expected, desired)

Definition at line 123 of file stdatomic.h.

#define atomic_compare_exchange_weak (   object,
  expected,
  desired 
)    atomic_compare_exchange_strong(object, expected, desired)

Definition at line 126 of file stdatomic.h.

#define atomic_compare_exchange_weak_explicit (   object,
  expected,
  desired,
  success,
  failure 
)    atomic_compare_exchange_weak(object, expected, desired)

Definition at line 129 of file stdatomic.h.

#define FETCH_MODIFY (   opname,
  op 
)
Value:
static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
{ \
intptr_t ret; \
ret = *object; \
*object = *object op operand; \
}
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition: anm.c:78
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return

Definition at line 132 of file stdatomic.h.

#define atomic_fetch_add_explicit (   object,
  operand,
  order 
)    atomic_fetch_add(object, operand)
#define atomic_fetch_sub_explicit (   object,
  operand,
  order 
)    atomic_fetch_sub(object, operand)

Definition at line 152 of file stdatomic.h.

Referenced by v4l2_free_buffer().

#define atomic_fetch_or_explicit (   object,
  operand,
  order 
)    atomic_fetch_or(object, operand)

Definition at line 155 of file stdatomic.h.

#define atomic_fetch_xor_explicit (   object,
  operand,
  order 
)    atomic_fetch_xor(object, operand)

Definition at line 158 of file stdatomic.h.

#define atomic_fetch_and_explicit (   object,
  operand,
  order 
)    atomic_fetch_and(object, operand)

Definition at line 161 of file stdatomic.h.

#define atomic_flag_test_and_set (   object)    atomic_exchange(object, 1)

Definition at line 164 of file stdatomic.h.

#define atomic_flag_test_and_set_explicit (   object,
  order 
)    atomic_flag_test_and_set(object)

Definition at line 167 of file stdatomic.h.

#define atomic_flag_clear (   object)    atomic_store(object, 0)

Definition at line 170 of file stdatomic.h.

#define atomic_flag_clear_explicit (   object,
  order 
)    atomic_flag_clear(object)

Definition at line 173 of file stdatomic.h.

Typedef Documentation

typedef intptr_t atomic_flag

Definition at line 48 of file stdatomic.h.

typedef intptr_t atomic_bool

Definition at line 49 of file stdatomic.h.

typedef intptr_t atomic_char

Definition at line 50 of file stdatomic.h.

typedef intptr_t atomic_schar

Definition at line 51 of file stdatomic.h.

typedef intptr_t atomic_uchar

Definition at line 52 of file stdatomic.h.

typedef intptr_t atomic_short

Definition at line 53 of file stdatomic.h.

typedef intptr_t atomic_ushort

Definition at line 54 of file stdatomic.h.

typedef intptr_t atomic_int

Definition at line 55 of file stdatomic.h.

typedef intptr_t atomic_uint

Definition at line 56 of file stdatomic.h.

typedef intptr_t atomic_long

Definition at line 57 of file stdatomic.h.

typedef intptr_t atomic_ulong

Definition at line 58 of file stdatomic.h.

typedef intptr_t atomic_llong

Definition at line 59 of file stdatomic.h.

typedef intptr_t atomic_ullong

Definition at line 60 of file stdatomic.h.

typedef intptr_t atomic_wchar_t

Definition at line 61 of file stdatomic.h.

typedef intptr_t atomic_int_least8_t

Definition at line 62 of file stdatomic.h.

typedef intptr_t atomic_uint_least8_t

Definition at line 63 of file stdatomic.h.

typedef intptr_t atomic_int_least16_t

Definition at line 64 of file stdatomic.h.

typedef intptr_t atomic_uint_least16_t

Definition at line 65 of file stdatomic.h.

typedef intptr_t atomic_int_least32_t

Definition at line 66 of file stdatomic.h.

typedef intptr_t atomic_uint_least32_t

Definition at line 67 of file stdatomic.h.

typedef intptr_t atomic_int_least64_t

Definition at line 68 of file stdatomic.h.

typedef intptr_t atomic_uint_least64_t

Definition at line 69 of file stdatomic.h.

typedef intptr_t atomic_int_fast8_t

Definition at line 70 of file stdatomic.h.

typedef intptr_t atomic_uint_fast8_t

Definition at line 71 of file stdatomic.h.

typedef intptr_t atomic_int_fast16_t

Definition at line 72 of file stdatomic.h.

typedef intptr_t atomic_uint_fast16_t

Definition at line 73 of file stdatomic.h.

typedef intptr_t atomic_int_fast32_t

Definition at line 74 of file stdatomic.h.

typedef intptr_t atomic_uint_fast32_t

Definition at line 75 of file stdatomic.h.

typedef intptr_t atomic_int_fast64_t

Definition at line 76 of file stdatomic.h.

typedef intptr_t atomic_uint_fast64_t

Definition at line 77 of file stdatomic.h.

typedef intptr_t atomic_intptr_t

Definition at line 78 of file stdatomic.h.

typedef intptr_t atomic_uintptr_t

Definition at line 79 of file stdatomic.h.

typedef intptr_t atomic_size_t

Definition at line 80 of file stdatomic.h.

typedef intptr_t atomic_ptrdiff_t

Definition at line 81 of file stdatomic.h.

typedef intptr_t atomic_intmax_t

Definition at line 82 of file stdatomic.h.

typedef intptr_t atomic_uintmax_t

Definition at line 83 of file stdatomic.h.

Function Documentation

static intptr_t atomic_exchange ( intptr_t *  object,
intptr_t  desired 
)
inlinestatic

Definition at line 99 of file stdatomic.h.

static int atomic_compare_exchange_strong ( intptr_t *  object,
intptr_t *  expected,
intptr_t  desired 
)
inlinestatic

Definition at line 109 of file stdatomic.h.