VLC  4.0.0-dev
Data Structures | Typedefs | Functions | Variables
preparser.c File Reference
Include dependency graph for preparser.c:

Data Structures

struct  input_preparser_t
 
struct  input_preparser_req_t
 
struct  input_preparser_task_t
 

Typedefs

typedef struct input_preparser_req_t input_preparser_req_t
 
typedef struct input_preparser_task_t input_preparser_task_t
 

Functions

static input_preparser_req_tReqCreate (input_item_t *item, input_item_meta_request_option_t options, const input_preparser_callbacks_t *cbs, void *userdata)
 
static void ReqHold (input_preparser_req_t *req)
 
static void ReqRelease (input_preparser_req_t *req)
 
static void OnParserEnded (input_item_t *item, int status, void *task_)
 
static void OnParserSubtreeAdded (input_item_t *item, input_item_node_t *subtree, void *task_)
 
static int PreparserOpenInput (void *preparser_, void *req_, void **out)
 
static int PreparserProbeInput (void *preparser_, void *task_)
 
static void on_art_fetch_ended (input_item_t *item, bool fetched, void *userdata)
 
static void PreparserCloseInput (void *preparser_, void *task_)
 
static void ReqHoldVoid (void *item)
 
static void ReqReleaseVoid (void *item)
 
input_preparser_tinput_preparser_New (vlc_object_t *parent)
 This function creates the preparser object and thread. More...
 
void input_preparser_Push (input_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t i_options, const input_preparser_callbacks_t *cbs, void *cbs_userdata, int timeout, void *id)
 This function enqueues the provided item to be preparsed. More...
 
void input_preparser_fetcher_Push (input_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t options, const input_fetcher_callbacks_t *cbs, void *cbs_userdata)
 
void input_preparser_Cancel (input_preparser_t *preparser, void *id)
 This function cancel all preparsing requests for a given id. More...
 
void input_preparser_Deactivate (input_preparser_t *preparser)
 This function deactivates the preparser. More...
 
void input_preparser_Delete (input_preparser_t *preparser)
 This function destroys the preparser object and thread. More...
 

Variables

static const input_fetcher_callbacks_t input_fetcher_callbacks
 

Typedef Documentation

◆ input_preparser_req_t

◆ input_preparser_task_t

Function Documentation

◆ input_preparser_Cancel()

void input_preparser_Cancel ( input_preparser_t ,
void *  id 
)

This function cancel all preparsing requests for a given id.

Parameters
idunique id given to input_preparser_Push()

References background_worker_Cancel(), and input_preparser_t::worker.

Referenced by libvlc_MetadataCancel().

◆ input_preparser_Deactivate()

void input_preparser_Deactivate ( input_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(), input_preparser_t::deactivated, and input_preparser_t::worker.

Referenced by libvlc_InternalCleanup().

◆ input_preparser_Delete()

void input_preparser_Delete ( input_preparser_t )

This function destroys the preparser object and thread.

All pending input items will be released.

References background_worker_Delete(), input_preparser_t::fetcher, input_fetcher_Delete(), and input_preparser_t::worker.

Referenced by libvlc_InternalCleanup().

◆ input_preparser_fetcher_Push()

void input_preparser_fetcher_Push ( input_preparser_t preparser,
input_item_t item,
input_item_meta_request_option_t  options,
const input_fetcher_callbacks_t cbs,
void *  cbs_userdata 
)

◆ input_preparser_New()

input_preparser_t* input_preparser_New ( vlc_object_t parent)

◆ input_preparser_Push()

void input_preparser_Push ( input_preparser_t ,
input_item_t ,
input_item_meta_request_option_t  ,
const input_preparser_callbacks_t cbs,
void *  cbs_userdata,
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.

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 input_preparser_Cancel()

References input_item_t::b_net, input_item_t::b_preparse_interact, background_worker_Push(), input_preparser_req_t::cbs, input_preparser_t::deactivated, input_item_t::i_type, i_type, 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_DO_INTERACT, META_REQUEST_OPTION_SCOPE_NETWORK, input_preparser_callbacks_t::on_preparse_ended, ReqCreate(), ReqRelease(), vlc_mutex_lock(), vlc_mutex_unlock(), and input_preparser_t::worker.

Referenced by vlc_MetadataRequest().

◆ on_art_fetch_ended()

static void on_art_fetch_ended ( input_item_t item,
bool  fetched,
void *  userdata 
)
static

◆ OnParserEnded()

static void OnParserEnded ( input_item_t item,
int  status,
void *  task_ 
)
static

◆ OnParserSubtreeAdded()

static void OnParserSubtreeAdded ( input_item_t item,
input_item_node_t subtree,
void *  task_ 
)
static

◆ PreparserCloseInput()

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

◆ PreparserOpenInput()

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

◆ PreparserProbeInput()

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

◆ ReqCreate()

static input_preparser_req_t* ReqCreate ( input_item_t item,
input_item_meta_request_option_t  options,
const input_preparser_callbacks_t cbs,
void *  userdata 
)
static

◆ ReqHold()

static void ReqHold ( input_preparser_req_t req)
static

◆ ReqHoldVoid()

static void ReqHoldVoid ( void *  item)
static

References ReqHold().

Referenced by input_preparser_New().

◆ ReqRelease()

static void ReqRelease ( input_preparser_req_t req)
static

◆ ReqReleaseVoid()

static void ReqReleaseVoid ( void *  item)
static

References ReqRelease().

Referenced by input_preparser_New().

Variable Documentation

◆ input_fetcher_callbacks

const input_fetcher_callbacks_t input_fetcher_callbacks
static
Initial value:
= {
.on_art_fetch_ended = on_art_fetch_ended,
}
static void on_art_fetch_ended(input_item_t *item, bool fetched, void *userdata)
Definition: preparser.c:159