VLC 4.0.0-dev
No Matches
Collaboration diagram for Preparser:


file  vlc_preparser.h
 VLC Preparser API.


typedef struct vlc_preparser_t vlc_preparser_t
 Preparser opaque structure.


vlc_preparser_tvlc_preparser_New (vlc_object_t *obj)
 This function creates the preparser object and thread.
int vlc_preparser_Push (vlc_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t option, const struct vlc_metadata_cbs *cbs, void *cbs_userdata, int timeout, void *id)
 This function enqueues the provided item to be preparsed or fetched.
void vlc_preparser_Cancel (vlc_preparser_t *preparser, void *id)
 This function cancel all preparsing requests for a given id.
void vlc_preparser_Delete (vlc_preparser_t *preparser)
 This function destroys the preparser object and thread.
void vlc_preparser_Deactivate (vlc_preparser_t *preparser)
 This function deactivates the preparser.

Detailed Description

Typedef Documentation

◆ vlc_preparser_t

Preparser opaque structure.

The preparser object will retrieve the meta data of any given input item in an asynchronous way. It will also issue art fetching requests.

Function Documentation

◆ vlc_preparser_Cancel()

void vlc_preparser_Cancel ( vlc_preparser_t preparser,
void *  id 

◆ vlc_preparser_Deactivate()

void vlc_preparser_Deactivate ( vlc_preparser_t preparser)

This function deactivates the preparser.

All pending requests will be removed, and it will block until the currently running entity has finished (if any).

preparserthe preparser object

References vlc_preparser_t::deactivated, task::preparser, and vlc_preparser_Cancel().

Referenced by libvlc_InternalCleanup().

◆ vlc_preparser_Delete()

void vlc_preparser_Delete ( vlc_preparser_t preparser)

This function destroys the preparser object and thread.

preparserthe preparser object All pending input items will be released.

References vlc_preparser_t::executor, vlc_preparser_t::fetcher, input_fetcher_Delete(), task::preparser, vlc_executor_Delete(), and vlc_preparser_Cancel().

Referenced by libvlc_InternalCleanup().

◆ vlc_preparser_New()

◆ vlc_preparser_Push()

int vlc_preparser_Push ( vlc_preparser_t preparser,
input_item_t item,
input_item_meta_request_option_t  option,
const struct vlc_metadata_cbs cbs,
void *  cbs_userdata,
int  timeout,
void *  id 

This function enqueues the provided item to be preparsed or fetched.

The input item is retained until the preparsing is done or until the preparser object is deleted.

preparserthe preparser object
itema valid item to preparse
optionpreparse flag, cf input_item_meta_request_option_t
cbscallback to listen to events (can't be NULL)
cbs_userdataopaque pointer used by the callbacks
timeoutmaximum time allowed to preparse the item. If -1, the default "preparse-timeout" option will be used as a timeout. If 0, it will wait indefinitely. If > 0, the timeout will be used (in milliseconds).
idunique id provided by the caller. This is can be used to cancel the request with vlc_preparser_Cancel()
VLC_SUCCESS if the item was scheduled for preparsing, an error code otherwise If this returns an error, the on_preparse_ended will not be invoked

References input_item_t::b_net, input_item_t::b_preparse_interact, task::cbs, vlc_preparser_t::deactivated, vlc_preparser_t::default_timeout, vlc_preparser_t::executor, input_item_t::i_type, i_type, task::item, ITEM_PREPARSE_SKIPPED, ITEM_TYPE_DIRECTORY, ITEM_TYPE_FILE, ITEM_TYPE_NODE, ITEM_TYPE_PLAYLIST, input_item_t::lock, META_REQUEST_OPTION_DO_INTERACT, META_REQUEST_OPTION_FETCH_ANY, META_REQUEST_OPTION_SCOPE_FORCED, META_REQUEST_OPTION_SCOPE_NETWORK, task::preparser, PreparserAddTask(), task::runnable, TaskNew(), task::timeout, VLC_EGENERIC, VLC_ENOMEM, vlc_executor_Submit(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and VLC_TICK_FROM_MS.

Referenced by vlc_MetadataRequest().