VLC 4.0.0-dev
|
Data Structures | |
struct | vlc_ancillary_array |
Macros | |
#define | VLC_ANCILLARY_ARRAY_INITIALIZER VLC_VECTOR_INITIALIZER |
#define | VLC_ANCILLARY_ID(a, b, c, d) VLC_FOURCC(a,b,c,d) |
Typedefs | |
typedef uint32_t | vlc_ancillary_id |
ID of an ancillary. | |
typedef void(* | vlc_ancillary_free_cb) (void *data) |
Callback to free an ancillary data. | |
Functions | |
struct vlc_ancillary * | vlc_ancillary_CreateWithFreeCb (void *data, vlc_ancillary_id id, vlc_ancillary_free_cb free_cb) |
Create an ancillary. | |
static struct vlc_ancillary * | vlc_ancillary_Create (void *data, vlc_ancillary_id id) |
Helper to create an ancillary holding an allocated data. | |
void | vlc_ancillary_Release (struct vlc_ancillary *ancillary) |
Release an ancillary. | |
struct vlc_ancillary * | vlc_ancillary_Hold (struct vlc_ancillary *ancillary) |
Hold an ancillary. | |
void * | vlc_ancillary_GetData (const struct vlc_ancillary *ancillary) |
Get the data of the ancillary. | |
#define VLC_ANCILLARY_ARRAY_INITIALIZER VLC_VECTOR_INITIALIZER |
#define VLC_ANCILLARY_ID | ( | a, | |
b, | |||
c, | |||
d | |||
) | VLC_FOURCC(a,b,c,d) |
typedef void(* vlc_ancillary_free_cb) (void *data) |
Callback to free an ancillary data.
typedef uint32_t vlc_ancillary_id |
ID of an ancillary.
Each ancillary user can create its own unique ID via VLC_ANCILLARY_ID.
|
inlinestatic |
Helper to create an ancillary holding an allocated data.
References vlc_ancillary::data, and vlc_ancillary_CreateWithFreeCb().
Referenced by picture_AttachNewAncillary().
struct vlc_ancillary * vlc_ancillary_CreateWithFreeCb | ( | void * | data, |
vlc_ancillary_id | id, | ||
vlc_ancillary_free_cb | free_cb | ||
) |
Create an ancillary.
data | an opaque ancillary, can't be NULL |
id | id of ancillary |
free_cb | callback to release the data, can be NULL |
References vlc_ancillary::data, vlc_ancillary::free_cb, vlc_ancillary::id, vlc_ancillary::rc, and vlc_atomic_rc_init().
Referenced by vlc_ancillary_Create().
void * vlc_ancillary_GetData | ( | const struct vlc_ancillary * | ancillary | ) |
Get the data of the ancillary.
ancillary | ancillary to get data from |
References vlc_ancillary::data.
struct vlc_ancillary * vlc_ancillary_Hold | ( | struct vlc_ancillary * | ancillary | ) |
Hold an ancillary.
ancillary | ancillary to hold |
References vlc_ancillary::rc, and vlc_atomic_rc_inc().
Referenced by vlc_ancillary_array_Insert().
void vlc_ancillary_Release | ( | struct vlc_ancillary * | ancillary | ) |
Release an ancillary.
If the refcount reaches 0, the free_cb provided by vlc_ancillary_CreateWithFreeCb() is called.
ancillary | ancillary to release |
References vlc_ancillary::data, vlc_ancillary::free_cb, vlc_ancillary::rc, and vlc_atomic_rc_dec().
Referenced by picture_AttachNewAncillary(), vlc_ancillary_array_Clear(), and vlc_ancillary_array_Insert().