VLC 4.0.0-dev
Loading...
Searching...
No Matches
Collaboration diagram for VLC objects:

Topics

 Object resources
 The object resource functions tie resource allocation to an instance of a module through a VLC object.
 Variables
 VLC object variables and callbacks.

Files

file  vlc_objects.h
 Common VLC object definitions.

Data Structures

struct  vlc_object_t
 VLC object common members. More...
struct  libvlc_int_t

Macros

#define VLC_OBJECT(x)
 Type-safe vlc_object_t cast.
#define vlc_object_delete(obj)
#define vlc_object_parent(o)
#define vlc_object_logger(o)
#define vlc_object_get_name(obj)
 Tries to get the name of module bound to an object.
#define vlc_object_create(a, b)
#define vlc_object_find_name(a, b)
#define vlc_object_instance(o)
#define vlc_object_release(o)

Functions

void * vlc_object_create (vlc_object_t *parent, size_t i_size)
 Allocates and initializes a vlc object.
void vlc_object_delete (vlc_object_t *obj)
 Drops the strong reference to an object.
size_t vlc_list_children (vlc_object_t *, vlc_object_t **, size_t)
const char * vlc_object_typename (const vlc_object_t *obj)
 Returns the object type name.
vlc_object_tvlc_object_parent (vlc_object_t *obj)
 Gets the parent of an object.
static struct vlc_loggervlc_object_logger (vlc_object_t *obj)
struct vlc_tracervlc_object_get_tracer (vlc_object_t *obj)
 Get tracer of a vlc instance from an object.
static libvlc_int_tvlc_object_instance (vlc_object_t *obj)
vout_thread_tvout_Hold (vout_thread_t *vout)
void vout_Release (vout_thread_t *vout)
audio_output_taout_Hold (audio_output_t *aout)
void aout_Release (audio_output_t *aout)
static void * vlc_object_hold (vlc_object_t *o)
static void vlc_object_release (vlc_object_t *o)

Detailed Description

Macro Definition Documentation

◆ VLC_OBJECT

#define VLC_OBJECT ( x)
Value:
_Generic((x)->obj, \
struct vlc_object_marker *: (x), \
struct vlc_object_t: (&((x)->obj)) \
)
VLC object common members.
Definition vlc_objects.h:53

Type-safe vlc_object_t cast.

This macro attempts to cast a pointer to a compound type to a vlc_object_t pointer in a type-safe manner. It checks if the compound type actually starts with an embedded vlc_object_t structure.

Referenced by aout_Destroy(), aout_filter_GetVout(), aout_stream_tracer(), ConvertRGBAAndBlend(), DecoderWaitUnblock(), DelFilterCallbacks(), demux_FilterNew(), demux_Probe(), Destroy(), EsOutCreateDecoder(), EsOutSetRecord(), filter_AddProxyCallbacks(), filter_DelProxyCallbacks(), filter_HoldDecoderDevice(), filter_HoldDecoderDeviceType(), GetTracer(), GetUpdateFile(), input_Create(), input_EsOutNew(), input_ExtractAttachmentAndCacheArt(), InputDemuxNew(), libvlc_GetMainPlaylist(), libvlc_InternalActionsInit(), libvlc_InternalInit(), libvlc_InternalKeystoreInit(), libvlc_InternalPlay(), libvlc_MlCreate(), main(), OpenURL(), PrerenderPicture(), RequestVoutRsc(), sout_StreamDelete(), spu_Create(), SpuRenderCreateAndLoadText(), stream_AccessNew(), stream_CheckReady(), StreamExtractorAttach(), SubFilterAddProxyCallbacks(), SubFilterDelProxyCallbacks(), SubSourceDelProxyCallbacks(), update_DownloadReal(), vlc_aout_stream_New(), vlc_decoder_device_Create(), vlc_decoder_device_Release(), vlc_demux_chained_Thread(), vlc_encoder_Destroy(), vlc_gl_Create(), vlc_gl_Delete(), vlc_gl_start(), vlc_input_decoder_CreateSubDec(), vlc_LogInit(), vlc_LogModuleClose(), vlc_LogModuleCreate(), vlc_LogPreinit(), vlc_LogSet(), vlc_mta_acquire(), vlc_mta_release(), vlc_player_GetObject(), vlc_player_GetV4l2Object(), vlc_player_New(), vlc_rtp_mux_request(), vlc_tls_ClientCreate(), vlc_tls_ClientDelete(), vlc_tls_ServerCreate(), vlc_tls_ServerDelete(), vlc_tracer_Create(), vlc_tracer_Destroy(), vlc_window_Delete(), vlc_window_New(), vlc_window_start(), vlm_MediaInstanceNew(), vlm_New(), vout_Close(), vout_display_Delete(), vout_display_New(), vout_display_window_New(), vout_GetSnapshot(), vout_OpenWrapper(), vout_OSDEpg(), vout_Release(), vout_Start(), vout_UpdateSourceCrop(), VoutConverterCreate(), VoutGetDisplayCfg(), and VoutSnapshotPip().

◆ vlc_object_create

#define vlc_object_create ( a,
b )
Value:
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition vlc_objects.h:83
#define vlc_object_create(a, b)
Definition vlc_objects.h:178

Referenced by main(), vlc_object_create(), and vlc_readdir_helper_init().

◆ vlc_object_delete

#define vlc_object_delete ( obj)
Value:
#define vlc_object_delete(obj)
Definition vlc_objects.h:128

Referenced by addons_manager_WriteCatalog(), aout_Destroy(), aout_filter_Create(), aout_New(), aout_volume_Delete(), CreateDecoder(), decoder_Destroy(), DeleteConverter(), demux_PacketizerDestroy(), demux_PacketizerNew(), Destroy(), filter_chain_AppendInner(), filter_chain_DeleteFilter(), FinderThread(), fingerprinter_Create(), fingerprinter_Destroy(), httpd_HostCreate(), httpd_HostDelete(), input_item_WriteMeta(), InputSourceMeta(), installOrRemoveAddon(), intf_Create(), intf_DestroyAll(), InvokeModule(), keystore_create(), libvlc_InternalDestroy(), libvlc_MlCreate(), libvlc_MlRelease(), LoadLocalStorage(), main(), ReleaseObject(), se_Release(), sout_AccessOutDelete(), sout_AccessOutNew(), sout_MuxDelete(), sout_MuxNew(), sout_StreamDelete(), spu_Create(), spu_Destroy(), SpuRenderCreateAndLoadScale(), SpuRenderCreateAndLoadText(), stream_AccessNew(), stream_CommonDelete(), update_Delete(), update_Download(), video_splitter_Delete(), vlc_decoder_device_Create(), vlc_decoder_device_Release(), vlc_encoder_Destroy(), vlc_filter_Delete(), vlc_gl_Create(), vlc_gl_CreateOffscreen(), vlc_gl_Delete(), vlc_inhibit_Create(), vlc_inhibit_Destroy(), vlc_keystore_release(), vlc_LogModuleClose(), vlc_LogModuleCreate(), vlc_object_delete(), vlc_player_Delete(), vlc_player_New(), vlc_playlist_Export(), vlc_probe(), vlc_rd_new(), vlc_rd_release(), vlc_readdir_helper_init(), vlc_sd_Destroy(), vlc_tls_ClientCreate(), vlc_tls_ClientDelete(), vlc_tls_ServerCreate(), vlc_tls_ServerDelete(), vlc_tracer_Create(), vlc_tracer_Destroy(), vlc_window_Delete(), vlc_window_New(), vlm_Delete(), vlm_New(), vout_Create(), vout_display_Delete(), vout_display_New(), vout_Release(), xml_Create(), xml_Delete(), xml_ReaderCreate(), and xml_ReaderDelete().

◆ vlc_object_find_name

#define vlc_object_find_name ( a,
b )
Value:
#define vlc_object_find_name(a, b)
Definition vlc_objects.h:180

◆ vlc_object_get_name

#define vlc_object_get_name ( obj)
Value:
var_GetString(obj, "module-name")
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition vlc_variables.h:469

Tries to get the name of module bound to an object.

Warning
This function is intrinsically race-prone, as a module may be bound or unbound asynchronously by another thread. Do not trust the result for any purpose other than debugging/tracing.
Returns
Normally, this returns a heap-allocated nul-terminated string which is the name of the module. If no module are bound to the object, it returns NULL. It also returns NULL on error.

◆ vlc_object_instance

◆ vlc_object_logger

◆ vlc_object_parent

◆ vlc_object_release

#define vlc_object_release ( o)
Value:
#define vlc_object_release(o)
Definition vlc_objects.h:225

Function Documentation

◆ aout_Hold()

◆ aout_Release()

◆ vlc_list_children()

size_t vlc_list_children ( vlc_object_t * ,
vlc_object_t ** ,
size_t  )

References VLC_API, and VLC_USED.

◆ vlc_object_create()

void * vlc_object_create ( vlc_object_t * parent,
size_t i_size )

Allocates and initializes a vlc object.

The object will need to be released with vlc_object_release() before parent is released.

Parameters
parentA parent object to create the new object from
i_sizeobject byte size
Returns
the new object, or NULL on error.

References vlc_custom_create, and vlc_object_create.

◆ vlc_object_delete()

void vlc_object_delete ( vlc_object_t * obj)

Drops the strong reference to an object.

This removes the initial strong reference to a given object. This must be called exactly once per allocated object after it is no longer needed, matching vlc_object_create() or vlc_custom_create().

References vlc_object_deinit(), and vlc_object_delete.

◆ vlc_object_get_tracer()

◆ vlc_object_hold()

void * vlc_object_hold ( vlc_object_t * o)
inlinestatic

◆ vlc_object_instance()

libvlc_int_t * vlc_object_instance ( vlc_object_t * obj)
inlinestatic

References vlc_object_parent.

◆ vlc_object_logger()

struct vlc_logger * vlc_object_logger ( vlc_object_t * obj)
inlinestatic

References vlc_object_t::logger.

◆ vlc_object_parent()

vlc_object_t * vlc_object_parent ( vlc_object_t * obj)

Gets the parent of an object.

Returns
the parent object (NULL if none)
Note
The returned parent object pointer is valid as long as the child is.

References vlc_internals, and vlc_object_parent.

◆ vlc_object_release()

void vlc_object_release ( vlc_object_t * o)
inlinestatic

◆ vlc_object_typename()

const char * vlc_object_typename ( const vlc_object_t * obj)

Returns the object type name.

This returns a nul-terminated string identifying the object type. The string is valid for at least as long as the object reference.

Parameters
objobject whose type name to get

References vlc_internals.

Referenced by vlc_object_hold(), vlc_object_release(), and vlc_object_vaLog().

◆ vout_Hold()

◆ vout_Release()