Go to the documentation of this file.
24 #ifndef _INPUT_PREPARSER_H
25 #define _INPUT_PREPARSER_H 1
61 int timeout,
void *
id );
input_item_parser_id_t * parser
Definition: preparser.c:56
void * id
Definition: preparser.c:53
void * userdata
Userdata passed back to run().
Definition: vlc_executor.h:60
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
static void Interrupt(struct task *task)
Definition: preparser.c:289
static void Parse(struct task *task, vlc_tick_t deadline)
Definition: preparser.c:196
void * userdata
Definition: fetcher.c:60
void input_preparser_Delete(input_preparser_t *preparser)
This function destroys the preparser object and thread.
Definition: preparser.c:420
input_item_meta_request_option_t options
Definition: preparser.c:50
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
int input_fetcher_Push(input_fetcher_t *fetcher, input_item_t *item, input_item_meta_request_option_t options, const input_fetcher_callbacks_t *cbs, void *cbs_userdata)
This function enqueues the provided item to be art fetched.
Definition: fetcher.c:475
void input_fetcher_Delete(input_fetcher_t *fetcher)
This function destroys the fetcher object and thread.
Definition: fetcher.c:509
static void RunnableRun(void *)
Definition: preparser.c:259
static void PreparserRemoveTask(input_preparser_t *preparser, struct task *task)
Definition: preparser.c:126
The executor (also vlc_executor_t, exposed as opaque type in the public header).
Definition: executor.c:55
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
static void TaskDelete(struct task *task)
Definition: preparser.c:111
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
vlc_executor_t * vlc_executor_New(unsigned max_threads)
Create a new executor.
Definition: executor.c:173
static void PreparserAddTask(input_preparser_t *preparser, struct task *task)
Definition: preparser.c:118
static void OnParserEnded(input_item_t *item, int status, void *task_)
Definition: preparser.c:142
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)
Definition: preparser.c:379
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
Doubly-linked list node.
Definition: vlc_list.h:43
A Runnable encapsulates a task to be run from an executor thread.
Definition: vlc_executor.h:38
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
int preparse_status
Definition: preparser.c:61
Mutex.
Definition: vlc_threads.h:225
void input_preparser_Cancel(input_preparser_t *, void *id)
This function cancel all preparsing requests for a given id.
Definition: preparser.c:388
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
void input_preparser_Delete(input_preparser_t *)
This function destroys the preparser object and thread.
Definition: preparser.c:420
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
void(* run)(void *userdata)
This function is to be executed by a vlc_executor_t.
Definition: vlc_executor.h:55
int i_type
Definition: httpd.c:1269
bool preparse_ended
Definition: preparser.c:60
input_preparser_t * input_preparser_New(vlc_object_t *parent)
This function creates the preparser object and thread.
Definition: preparser.c:301
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
static void vlc_list_append(struct vlc_list *restrict node, struct vlc_list *head)
Appends an element into a list.
Definition: vlc_list.h:110
bool fetch_ended
Definition: preparser.c:62
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
void input_preparser_Deactivate(input_preparser_t *)
This function deactivates the preparser.
Definition: preparser.c:414
static struct task * TaskNew(input_preparser_t *preparser, input_item_t *item, input_item_meta_request_option_t options, const input_preparser_callbacks_t *cbs, void *userdata, void *id, vlc_tick_t timeout)
Definition: preparser.c:74
input_item_t * item
Definition: fetcher.c:57
static void OnParserSubtreeAdded(input_item_t *item, input_item_node_t *subtree, void *task_)
Definition: preparser.c:165
struct vlc_list node
node of input_fetcher_t.submitted_tasks
Definition: fetcher.c:65
int options
Definition: fetcher.c:58
input_preparser_t * preparser
Definition: preparser.c:48
void input_preparser_Cancel(input_preparser_t *preparser, void *id)
This function cancel all preparsing requests for a given id.
Definition: preparser.c:388
int 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_ms, void *id)
This function enqueues the provided item to be preparsed.
Definition: preparser.c:336
VLC object common members.
Definition: vlc_objects.h:43
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
const input_preparser_callbacks_t * cbs
Definition: preparser.c:51
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
vlc_cond_t cond_ended
Definition: preparser.c:59
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
void input_preparser_Deactivate(input_preparser_t *preparser)
This function deactivates the preparser.
Definition: preparser.c:414
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
int 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.
Definition: preparser.c:336
bool vlc_executor_Cancel(vlc_executor_t *executor, struct vlc_runnable *runnable)
Cancel a runnable previously submitted.
Definition: executor.c:223
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
Condition variable.
Definition: vlc_threads.h:349
static void NotifyPreparseEnded(struct task *task)
Definition: preparser.c:134
void input_preparser_fetcher_Push(input_preparser_t *, input_item_t *, input_item_meta_request_option_t, const input_fetcher_callbacks_t *cbs, void *cbs_userdata)
Definition: preparser.c:379
const input_fetcher_callbacks_t * cbs
Definition: fetcher.c:59
static void Fetch(struct task *task)
Definition: preparser.c:238
input_preparser_t * input_preparser_New(vlc_object_t *)
This function creates the preparser object and thread.
Definition: preparser.c:301
struct vlc_runnable runnable
to be passed to the executor
Definition: fetcher.c:64
void vlc_executor_Submit(vlc_executor_t *executor, struct vlc_runnable *runnable)
Submit a runnable for execution.
Definition: executor.c:206
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
void vlc_executor_Delete(vlc_executor_t *executor)
Delete an executor.
Definition: executor.c:256
static void OnArtFetchEnded(input_item_t *item, bool fetched, void *userdata)
Definition: preparser.c:176
input_fetcher_t * fetcher
Definition: fetcher.c:55
input_fetcher_t * input_fetcher_New(vlc_object_t *owner)
This function creates the fetcher object and thread.
Definition: fetcher.c:430
atomic_bool interrupted
Definition: preparser.c:64
static const input_fetcher_callbacks_t input_fetcher_callbacks
Definition: preparser.c:191
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_mutex_t lock
Definition: preparser.c:58
int vlc_cond_timedwait(vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline)
Waits on a condition variable up to a certain date.
Definition: threads.c:349
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vlc_tick_t timeout
Definition: preparser.c:54