VLC 4.0.0-dev
|
Functions | |
static void | vlc_ancillary_array_Init (vlc_ancillary_array *array) |
Init an ancillary array. | |
void | vlc_ancillary_array_Clear (vlc_ancillary_array *array) |
Clear an ancillary array. | |
int | vlc_ancillary_array_Merge (vlc_ancillary_array *dst_array, const vlc_ancillary_array *src_array) |
Merge two ancillary arrays. | |
int | vlc_ancillary_array_MergeAndClear (vlc_ancillary_array *dst_array, vlc_ancillary_array *src_array) |
Merge and clear two ancillary arrays. | |
int | vlc_ancillary_array_Insert (vlc_ancillary_array *array, struct vlc_ancillary *ancillary) |
Insert a new ancillary in the array. | |
struct vlc_ancillary * | vlc_ancillary_array_Get (const vlc_ancillary_array *array, vlc_ancillary_id id) |
Get a specific ancillary from the array. | |
void vlc_ancillary_array_Clear | ( | vlc_ancillary_array * | array | ) |
Clear an ancillary array.
This will release the refcount on all ancillaries and free the vector data
array | pointer to the ancillary array to clear |
References vlc_ancillary_Release(), vlc_vector_clear, and vlc_vector_foreach.
Referenced by picture_Destroy(), picture_Reset(), vlc_ancillary_array_MergeAndClear(), and vlc_frame_Release().
struct vlc_ancillary * vlc_ancillary_array_Get | ( | const vlc_ancillary_array * | array, |
vlc_ancillary_id | id | ||
) |
Get a specific ancillary from the array.
array | pointer to the ancillary array |
id | id of the ancillary |
References vlc_ancillary::id, and vlc_vector_foreach.
Referenced by picture_GetAncillary(), and vlc_frame_GetAncillary().
|
inlinestatic |
Init an ancillary array.
array | pointer to the ancillary array to initialize |
References vlc_vector_init.
Referenced by picture_InitPrivate(), vlc_ancillary_array_MergeAndClear(), and vlc_frame_Init().
int vlc_ancillary_array_Insert | ( | vlc_ancillary_array * | array, |
struct vlc_ancillary * | ancillary | ||
) |
Insert a new ancillary in the array.
array | pointer to the ancillary array |
ancillary | pointer to the ancillary to add |
References vlc_ancillary_array::data, vlc_ancillary::id, vlc_ancillary_array::size, vlc_ancillary_Hold(), vlc_ancillary_Release(), VLC_ENOMEM, VLC_SUCCESS, and vlc_vector_push.
Referenced by picture_AttachAncillary(), vlc_ancillary_array_Merge(), and vlc_frame_AttachAncillary().
int vlc_ancillary_array_Merge | ( | vlc_ancillary_array * | dst_array, |
const vlc_ancillary_array * | src_array | ||
) |
Merge two ancillary arrays.
Copy all ancillaries from src_array to dst_array, preserving all previous ancillaries. In case of ancillary id conflict, the one from src_array will have precedence.
dst_array | pointer to an initialized ancillary array, if not empty, previous ancillaries will be preserved. |
src_array | pointer to the source ancillary array |
References vlc_ancillary_array::data, vlc_ancillary_array::size, vlc_ancillary_array_Insert(), and VLC_SUCCESS.
Referenced by picture_Clone(), picture_CopyProperties(), picture_MergeAncillaries(), vlc_ancillary_array_MergeAndClear(), vlc_frame_CopyProperties(), and vlc_frame_MergeAncillaries().
int vlc_ancillary_array_MergeAndClear | ( | vlc_ancillary_array * | dst_array, |
vlc_ancillary_array * | src_array | ||
) |
Merge and clear two ancillary arrays.
The src array will be moved to the dst array if the dst array is empty (fast path). Otherwise, both arrays will be merged into dst_array and the src_array will be cleared afterward.
dst_array | pointer to a valid ancillary array, if not empty, previous ancillaries will be preserved. |
src_array | pointer to the source ancillary array, will point to empty data after this call. |
References vlc_ancillary_array::size, vlc_ancillary_array_Clear(), vlc_ancillary_array_Init(), vlc_ancillary_array_Merge(), and VLC_SUCCESS.
Referenced by picture_MergeAndClearAncillaries(), and vlc_frame_MergeAndClearAncillaries().