Go to the documentation of this file.
24 #ifndef _INPUT_FETCHER_H
25 #define _INPUT_FETCHER_H 1
static void RunSearchLocal(void *)
Definition: fetcher.c:380
static void vlc_dictionary_insert(vlc_dictionary_t *p_dict, const char *psz_key, void *p_value)
Definition: vlc_arrays.h:587
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 int ReadAlbumCache(input_fetcher_t *fetcher, input_item_t *item)
Definition: fetcher.c:183
In-memory stream object.
Definition: vlc_memstream.h:41
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
static int SearchByScope(struct task *task, int scope)
Definition: fetcher.c:269
void * userdata
Definition: fetcher.c:60
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static void FetcherRemoveTask(input_fetcher_t *fetcher, struct task *task)
Definition: fetcher.c:124
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
int error
Definition: vlc_memstream.h:46
size_t length
Buffer length in bytes.
Definition: vlc_memstream.h:49
Definition: vlc_arrays.h:407
static void vlc_dictionary_clear(vlc_dictionary_t *p_dict, void(*pf_free)(void *p_data, void *p_obj), void *p_obj)
Definition: vlc_arrays.h:428
static void FreeCacheEntry(void *data, void *obj)
Definition: fetcher.c:177
The executor (also vlc_executor_t, exposed as opaque type in the public header).
Definition: executor.c:55
int input_SaveArt(vlc_object_t *obj, input_item_t *p_item, const void *data, size_t length, const char *psz_type)
Definition: art.c:286
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
static void FetcherAddTask(input_fetcher_t *fetcher, struct task *task)
Definition: fetcher.c:116
vlc_executor_t * vlc_executor_New(unsigned max_threads)
Create a new executor.
Definition: executor.c:173
#define vlc_stream_NewURL(a, b)
Definition: vlc_stream.h:422
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
Doubly-linked list node.
Definition: vlc_list.h:43
int asprintf(char **, const char *,...)
A Runnable encapsulates a task to be run from an executor thread.
Definition: vlc_executor.h:38
static void CancelAllTasks(input_fetcher_t *fetcher)
Definition: fetcher.c:489
Mutex.
Definition: vlc_threads.h:225
static void AddAlbumCache(input_fetcher_t *fetcher, input_item_t *item, bool overwrite)
Definition: fetcher.c:201
static void TaskDelete(struct task *task)
Definition: fetcher.c:108
input_fetcher_t * input_fetcher_New(vlc_object_t *)
This function creates the fetcher object and thread.
Definition: fetcher.c:430
void(* run)(void *userdata)
This function is to be executed by a vlc_executor_t.
Definition: vlc_executor.h:55
Internal module descriptor.
Definition: modules.h:78
static void NotifyArtFetchEnded(struct task *task, bool fetched)
Definition: fetcher.c:296
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
static void * vlc_dictionary_value_for_key(const vlc_dictionary_t *p_dict, const char *psz_key)
Definition: vlc_arrays.h:471
void input_fetcher_Delete(input_fetcher_t *)
This function destroys the fetcher object and thread.
Definition: fetcher.c:509
static int SearchArt(input_fetcher_t *fetcher, input_item_t *item, int scope)
Definition: fetcher.c:263
input_item_t * item
Definition: fetcher.c:57
static struct task * TaskNew(input_fetcher_t *fetcher, vlc_executor_t *executor, input_item_t *item, input_item_meta_request_option_t options, const input_fetcher_callbacks_t *cbs, void *userdata)
Definition: fetcher.c:73
void vlc_interrupt_deinit(vlc_interrupt_t *ctx)
Deinitializes an interruption context.
Definition: interrupt.c:71
stream_t definition
Definition: vlc_stream.h:46
bool vlc_killed(void)
Checks if the interruption context was "killed".
Definition: interrupt.c:185
static void RunSearchNetwork(void *)
Definition: fetcher.c:411
struct vlc_list node
node of input_fetcher_t.submitted_tasks
Definition: fetcher.c:65
int options
Definition: fetcher.c:58
Definition: interrupt.h:32
ssize_t vlc_stream_Read(stream_t *s, void *buf, size_t len)
Reads data from a byte stream.
Definition: stream.c:485
static int CheckMeta(input_item_t *item)
Definition: fetcher.c:243
static int vlc_dictionary_has_key(const vlc_dictionary_t *p_dict, const char *psz_key)
Definition: vlc_arrays.h:455
vlc_interrupt_t * vlc_interrupt_set(vlc_interrupt_t *newctx)
Sets the interruption context for the calling thread.
Definition: interrupt.c:98
VLC object common members.
Definition: vlc_objects.h:43
int input_FindArtInCacheUsingItemUID(input_item_t *p_item)
Definition: art.c:249
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
#define FREENULL(a)
Definition: vlc_common.h:961
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
int input_FindArtInCache(input_item_t *p_item)
Definition: art.c:180
bool vlc_executor_Cancel(vlc_executor_t *executor, struct vlc_runnable *runnable)
Cancel a runnable previously submitted.
Definition: executor.c:223
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
const input_fetcher_callbacks_t * cbs
Definition: fetcher.c:59
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_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:133
void vlc_executor_Delete(vlc_executor_t *executor)
Delete an executor.
Definition: executor.c:256
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
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
static void vlc_dictionary_init(vlc_dictionary_t *p_dict, int i_size)
Definition: vlc_arrays.h:415
static int var_SetAddress(vlc_object_t *p_obj, const char *psz_name, void *ptr)
Set the value of a pointer variable.
Definition: vlc_variables.h:360
void vlc_interrupt_init(vlc_interrupt_t *ctx)
Initializes an interruption context.
Definition: interrupt.c:51
vlc_executor_t * executor
Definition: fetcher.c:56
#define module_unneed(a, b)
Definition: vlc_modules.h:126
static void RunDownloader(void *)
Definition: fetcher.c:302
size_t vlc_memstream_write(struct vlc_memstream *ms, const void *ptr, size_t len)
Appends a binary blob to a byte stream.
Definition: memstream.c:127
static int InvokeModule(input_fetcher_t *fetcher, input_item_t *item, int scope, char const *type)
Definition: fetcher.c:222
static char * CreateCacheKey(input_item_t *item)
Definition: fetcher.c:147
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
static int CheckArt(input_item_t *item)
Definition: fetcher.c:254
static int Submit(input_fetcher_t *fetcher, vlc_executor_t *executor, input_item_t *item, input_item_meta_request_option_t options, const input_fetcher_callbacks_t *cbs, void *userdata)
Definition: fetcher.c:132
int input_fetcher_Push(input_fetcher_t *, input_item_t *, input_item_meta_request_option_t, const input_fetcher_callbacks_t *, void *)
This function enqueues the provided item to be art fetched.
Definition: fetcher.c:475
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
vlc_interrupt_t interrupt
Definition: fetcher.c:62