VLC  3.0.21
Data Structures | Functions
preparser.c File Reference
Include dependency graph for preparser.c:

Data Structures

struct  playlist_preparser_t
 

Functions

static int InputEvent (vlc_object_t *obj, const char *varname, vlc_value_t old, vlc_value_t cur, void *worker)
 
static int PreparserOpenInput (void *preparser_, void *item_, void **out)
 
static int PreparserProbeInput (void *preparser_, void *input_)
 
static void PreparserCloseInput (void *preparser_, void *input_)
 
static void InputItemRelease (void *item)
 
static void InputItemHold (void *item)
 
playlist_preparser_tplaylist_preparser_New (vlc_object_t *parent)
 This function creates the preparser object and thread. More...
 
void playlist_preparser_Push (playlist_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t i_options, int timeout, void *id)
 This function enqueues the provided item to be preparsed. More...
 
void playlist_preparser_fetcher_Push (playlist_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t options)
 
void playlist_preparser_Cancel (playlist_preparser_t *preparser, void *id)
 This function cancel all preparsing requests for a given id. More...
 
void playlist_preparser_Deactivate (playlist_preparser_t *preparser)
 This function deactivates the preparser. More...
 
void playlist_preparser_Delete (playlist_preparser_t *preparser)
 This function destroys the preparser object and thread. More...
 

Function Documentation

◆ InputEvent()

static int InputEvent ( vlc_object_t obj,
const char *  varname,
vlc_value_t  old,
vlc_value_t  cur,
void *  worker 
)
static

◆ InputItemHold()

static void InputItemHold ( void *  item)
static

References input_item_Release().

Referenced by playlist_preparser_New().

◆ InputItemRelease()

static void InputItemRelease ( void *  item)
static

Referenced by playlist_preparser_New().

◆ playlist_preparser_Cancel()

void playlist_preparser_Cancel ( playlist_preparser_t ,
void *  id 
)

This function cancel all preparsing requests for a given id.

Parameters
idunique id given to playlist_preparser_Push()

References background_worker_Cancel(), and playlist_preparser_t::worker.

Referenced by libvlc_MetadataCancel().

◆ playlist_preparser_Deactivate()

void playlist_preparser_Deactivate ( playlist_preparser_t )

This function deactivates the preparser.

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

References background_worker_Cancel(), playlist_preparser_t::deactivated, and playlist_preparser_t::worker.

Referenced by libvlc_InternalCleanup().

◆ playlist_preparser_Delete()

void playlist_preparser_Delete ( playlist_preparser_t )

This function destroys the preparser object and thread.

All pending input items will be released.

References background_worker_Delete(), playlist_preparser_t::fetcher, playlist_fetcher_Delete(), and playlist_preparser_t::worker.

Referenced by libvlc_InternalCleanup().

◆ playlist_preparser_fetcher_Push()

void playlist_preparser_fetcher_Push ( playlist_preparser_t preparser,
input_item_t item,
input_item_meta_request_option_t  options 
)

◆ playlist_preparser_New()

playlist_preparser_t* playlist_preparser_New ( vlc_object_t parent)

◆ playlist_preparser_Push()

void playlist_preparser_Push ( playlist_preparser_t ,
input_item_t ,
input_item_meta_request_option_t  ,
int  timeout,
void *  id 
)

This function enqueues the provided item to be preparsed.

The input item is retained until the preparsing is done or until the preparser object is deleted. Listen to vlc_InputItemPreparseEnded event to get notified when item is preparsed.

Parameters
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 playlist_preparser_Cancel()

References input_item_t::b_net, background_worker_Push(), playlist_preparser_t::deactivated, input_item_t::i_type, i_type, input_item_SignalPreparseEnded(), ITEM_PREPARSE_FAILED, ITEM_PREPARSE_SKIPPED, ITEM_TYPE_DIRECTORY, ITEM_TYPE_FILE, ITEM_TYPE_NODE, ITEM_TYPE_PLAYLIST, input_item_t::lock, META_REQUEST_OPTION_SCOPE_NETWORK, vlc_mutex_lock(), vlc_mutex_unlock(), and playlist_preparser_t::worker.

Referenced by libvlc_MetadataRequest().

◆ PreparserCloseInput()

static void PreparserCloseInput ( void *  preparser_,
void *  input_ 
)
static

◆ PreparserOpenInput()

static int PreparserOpenInput ( void *  preparser_,
void *  item_,
void **  out 
)
static

< Unspecified error

< Unspecified error

< No error

Referenced by playlist_preparser_New().

◆ PreparserProbeInput()

static int PreparserProbeInput ( void *  preparser_,
void *  input_ 
)
static