Data Structures | |
| struct | vlc_object_t |
| The main vlc_object_t structure. More... | |
Defines | |
| #define | OBJECT_FLAGS_QUIET 0x0002 |
| #define | OBJECT_FLAGS_NOINTERACT 0x0004 |
| #define | vlc_object_get_name(o) vlc_object_get_name(VLC_OBJECT(o)) |
| #define | vlc_object_create(a, b) vlc_object_create( VLC_OBJECT(a), b ) |
| }@ | |
| #define | vlc_object_find_name(a, b) vlc_object_find_name( VLC_OBJECT(a),b) |
| #define | vlc_object_hold(a) vlc_object_hold( VLC_OBJECT(a) ) |
| #define | vlc_object_release(a) vlc_object_release( VLC_OBJECT(a) ) |
| #define | vlc_list_children(a) vlc_list_children( VLC_OBJECT(a) ) |
| #define | vlc_object_kill(a) vlc_object_kill( VLC_OBJECT(a) ) |
| #define | vlc_object_alive(a) vlc_object_alive( VLC_OBJECT(a) ) |
Functions | |
| VLC_API void * | vlc_object_create (vlc_object_t *, size_t) VLC_MALLOC VLC_USED |
| Allocates and initializes a vlc object. | |
| VLC_API vlc_object_t * | vlc_object_find_name (vlc_object_t *, const char *) VLC_USED VLC_DEPRECATED |
| Finds a named object and increment its reference count. | |
| VLC_API void * | vlc_object_hold (vlc_object_t *) |
| Increment an object reference counter. | |
| VLC_API void | vlc_object_release (vlc_object_t *) |
| Drops a reference to an object (decrements the reference count). | |
| VLC_API vlc_list_t * | vlc_list_children (vlc_object_t *) VLC_USED |
| Gets the list of children of an objects, and increment their reference count. | |
| VLC_API void | vlc_list_release (vlc_list_t *) |
| VLC_API char * | vlc_object_get_name (const vlc_object_t *) VLC_USED |
| VLC_API void | vlc_object_kill (vlc_object_t *) VLC_DEPRECATED |
| Requests termination of an object, cancels the object thread, and make the object wait pipe (if it exists) readable. | |
| VLC_USED static VLC_DEPRECATED bool | vlc_object_alive (const vlc_object_t *obj) |
| #define OBJECT_FLAGS_NOINTERACT 0x0004 |
Referenced by dialog_Login(), dialog_ProgressCreate(), dialog_Question(), and dialog_VFatal().
| #define OBJECT_FLAGS_QUIET 0x0002 |
Referenced by Create(), and vlc_vaLog().
| #define vlc_list_children | ( | a | ) | vlc_list_children( VLC_OBJECT(a) ) |
Referenced by ObjectKillChildrens().
| #define vlc_object_alive | ( | a | ) | vlc_object_alive( VLC_OBJECT(a) ) |
Referenced by ControlPop(), DStreamPeek(), DStreamRead(), DStreamThread(), InputSourceInit(), LoopInput(), LoopRequest(), MainLoop(), PlaylistVAControl(), and Thread().
| #define vlc_object_create | ( | a, | ||
| b | ||||
| ) | vlc_object_create( VLC_OBJECT(a), b ) |
}@
Referenced by vlm_MediaInstanceNew().
| #define vlc_object_find_name | ( | a, | ||
| b | ||||
| ) | vlc_object_find_name( VLC_OBJECT(a),b) |
Referenced by DumpCommand(), and var_Command().
| #define vlc_object_get_name | ( | o | ) | vlc_object_get_name(VLC_OBJECT(o)) |
| #define vlc_object_hold | ( | a | ) | vlc_object_hold( VLC_OBJECT(a) ) |
Referenced by access_GetParentInput(), ACL_Create(), ACL_Duplicate(), AllocateAout(), demux_GetParentInput(), dialog_GetProvider(), EsOutControlLocked(), FindName(), HoldAout(), HoldVout(), HoldVouts(), input_DecoderGetObjects(), osd_MenuCreate(), playlist_CurrentInput(), sout_AnnounceRegisterSDP(), vlc_custom_create(), and vlc_list_children().
| #define vlc_object_kill | ( | a | ) | vlc_object_kill( VLC_OBJECT(a) ) |
| #define vlc_object_release | ( | a | ) | vlc_object_release( VLC_OBJECT(a) ) |
Referenced by access_Delete(), access_New(), ACL_Destroy(), aout_Destroy(), aout_EnableFilter(), aout_FiltersDestroyPipeline(), aout_InputNew(), aout_MixerDelete(), aout_MixerNew(), cancelVolume(), commitVolume(), CreateDecoder(), DecoderProcessSpu(), DeleteDecoder(), DeleteEncoder(), DeleteFilter(), demux_Delete(), demux_New(), demux_PacketizerDestroy(), demux_PacketizerNew(), dialog_ExtensionUpdate(), dialog_Login(), dialog_ProgressCreate(), dialog_Question(), dialog_VFatal(), DumpCommand(), FetchMeta(), filter_chain_AppendFilterInternal(), filter_chain_DeleteFilterInternal(), filter_DeleteBlend(), FilterRelease(), findAout(), FindArt(), FindFilter(), httpd_HostCreate(), httpd_HostDelete(), input_CreateAndStart(), input_GetVout(), input_item_WriteMeta(), input_Preparse(), input_Read(), input_Release(), InputSourceMeta(), intf_Create(), intf_DestroyAll(), libvlc_InternalCleanup(), libvlc_InternalDestroy(), osd_MenuDelete(), PlayItem(), playlist_Destroy(), playlist_Export(), ReleaseAout(), SAP_Destroy(), sout_AccessOutDelete(), sout_AccessOutNew(), sout_AnnounceRegisterSDP(), sout_AnnounceUnRegister(), sout_DeleteInstance(), sout_InputNew(), sout_MuxDelete(), sout_MuxNew(), sout_NewInstance(), sout_StreamDelete(), spu_del_buffer(), spu_Destroy(), spu_new_buffer(), sql_Create(), sql_Destroy(), str_format_meta(), stream_CommonDelete(), stream_CommonNew(), system_Configure(), system_End(), var_Command(), video_splitter_Delete(), vlc_gl_Create(), vlc_gl_Destroy(), vlc_inhibit_Create(), vlc_inhibit_Destroy(), vlc_list_release(), vlc_object_release(), vlc_probe(), vlc_sd_Destroy(), vlc_tls_ClientCreate(), vlc_tls_ClientDelete(), vlc_tls_ServerCreate(), vlc_tls_ServerDelete(), vlm_ControlMediaAdd(), vlm_ControlMediaInstanceStart(), vlm_Delete(), vlm_MediaInstanceDelete(), vlm_New(), vout_CloseAndRelease(), vout_display_Delete(), vout_display_New(), vout_window_Delete(), vout_window_New(), VoutCreate(), WaitPreparsed(), xml_Create(), xml_Delete(), xml_ReaderCreate(), xml_ReaderDelete(), and xml_ReaderReset().
| VLC_API vlc_list_t* vlc_list_children | ( | vlc_object_t * | obj | ) |
Gets the list of children of an objects, and increment their reference count.
References count, libvlc_lock(), libvlc_unlock(), likely, NewList(), vlc_object_internals::next, vlc_value_t::p_object, vlc_list_t::p_values, vlc_externals, vlc_internals, and vlc_object_hold.
| VLC_API void vlc_list_release | ( | vlc_list_t * | ) |
References vlc_list_t::i_count, vlc_value_t::p_object, vlc_list_t::p_values, and vlc_object_release.
Referenced by ObjectKillChildrens().
| VLC_USED static VLC_DEPRECATED bool vlc_object_alive | ( | const vlc_object_t * | obj | ) | [inline, static] |
References barrier().
| VLC_API void* vlc_object_create | ( | vlc_object_t * | p_this, | |
| size_t | i_size | |||
| ) |
Allocates and initializes a vlc object.
| i_size | object byte size |
References vlc_custom_create.
| VLC_API vlc_object_t* vlc_object_find_name | ( | vlc_object_t * | p_this, | |
| const char * | psz_name | |||
| ) |
Finds a named object and increment its reference count.
Beware that objects found in this manner can be "owned" by another thread, be of _any_ type, and be attached to any module (if any). With such an object reference, you can set or get object variables, emit log messages, and read write-once object parameters (psz_object_type, etc). You CANNOT cast the object to a more specific object type, and you definitely cannot invoke object type-specific callbacks with this.
| p_this | object to search from | |
| psz_name | name of the object to search for |
References FindName(), libvlc_lock(), libvlc_unlock(), msg_Err, name_lock, vlc_internals, vlc_mutex_lock(), and vlc_mutex_unlock().
| VLC_API char* vlc_object_get_name | ( | const vlc_object_t * | ) |
References name, name_lock, vlc_object_internals::psz_name, strdup(), vlc_internals, vlc_mutex_lock(), and vlc_mutex_unlock().
| VLC_API void* vlc_object_hold | ( | vlc_object_t * | ) |
Increment an object reference counter.
References vlc_object_internals::i_refcount, vlc_object_internals::ref_spin, vlc_internals, vlc_spin_lock, and vlc_spin_unlock.
| VLC_API void vlc_object_kill | ( | vlc_object_t * | p_this | ) |
Requests termination of an object, cancels the object thread, and make the object wait pipe (if it exists) readable.
Not a cancellation point.
References msg_Dbg, pipe_lock, vlc_object_internals::pipes, vlc_internals, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_restorecancel(), and vlc_savecancel().
| VLC_API void vlc_object_release | ( | vlc_object_t * | p_this | ) |
Drops a reference to an object (decrements the reference count).
If the count reaches zero, the object is destroyed.
References vlc_object_internals::first, vlc_object_internals::i_refcount, libvlc_lock(), libvlc_unlock(), likely, vlc_object_internals::next, vlc_object_internals::prev, vlc_object_internals::ref_spin, vlc_internals, vlc_object_destroy(), vlc_object_release, vlc_restorecancel(), vlc_savecancel(), vlc_spin_lock, and vlc_spin_unlock.
1.7.1