Go to the documentation of this file.
23 #ifndef LIBVLC_VLM_EVENT_H
24 #define LIBVLC_VLM_EVENT_H 1
void vlm_SendEventMediaAdded(vlm_t *, int64_t id, const char *psz_name)
Definition: vlm_event.c:43
size_t i_size
Definition: stream_memory.c:53
@ STREAM_CAN_PAUSE
arg1= bool * res=cannot fail
Definition: vlc_stream.h:149
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 stream_MemoryDelete(stream_t *s)
Definition: stream_memory.c:52
static int vlm_ControlMediaInstanceGets(vlm_t *p_vlm, int64_t id, vlm_media_instance_t ***ppp_idsc, int *pi_instance)
Definition: vlm.c:803
const char * vlc_readdir(DIR *dir)
Reads the next file name from an open directory.
Definition: filesystem.c:126
int i_repeat
Definition: vlm_internal.h:73
size_t count
Definition: core.c:401
@ VLM_EVENT_MEDIA_INSTANCE_STATE
Definition: vlc_vlm.h:100
stream_t * vlc_stream_FilterNew(stream_t *p_source, const char *psz_stream_filter)
Try to add a stream filter to an open stream.
Definition: stream_filter.c:50
@ STREAM_GET_TITLE
arg1=unsigned * res=can fail
Definition: vlc_stream.h:157
static void TaskDelete(task_t *task)
Definition: thumbnailer.c:114
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:61
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
Definition: vlc_vlm.h:113
static int vlc_stream_fifo_Control(stream_t *s, int query, va_list ap)
Definition: stream_fifo.c:83
ssize_t vlc_stream_fifo_Write(vlc_stream_fifo_t *writer, const void *buf, size_t len)
Writes data to a FIFO stream.
Definition: stream_fifo.c:151
In-memory stream object.
Definition: vlc_memstream.h:41
static void block_ChainRelease(block_t *p_block)
Definition: vlc_block.h:358
@ VLM_EVENT_MEDIA_ADDED
Definition: vlc_vlm.h:93
static vlc_stream_fifo_t * vlc_stream_fifo_Writer(stream_t *s)
Definition: stream_fifo.c:46
int i_media
Definition: vlm_internal.h:94
void vlc_thumbnailer_Cancel(vlc_thumbnailer_t *thumbnailer, task_t *task)
vlc_thumbnailer_Cancel Cancel a thumbnail request
Definition: thumbnailer.c:289
void vlc_thumbnailer_Release(vlc_thumbnailer_t *thumbnailer)
vlc_thumbnailer_Release releases a thumbnailer and cancel all pending requests
Definition: thumbnailer.c:338
@ VLM_CLEAR_MEDIAS
Definition: vlc_vlm.h:129
Thread-safe queue (a.k.a.
Definition: vlc_queue.h:44
int strcasecmp(const char *, const char *)
void * userdata
Definition: fetcher.c:60
const char * psz_name
Definition: text_style.c:53
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:173
vlc_tick_t vlc_player_GetTime(vlc_player_t *player)
Get the time of the current media.
Definition: player.c:1356
int(* pf_readdir)(struct stream_directory_t *, input_item_node_t *)
Definition: vlc_stream_extractor.h:85
static void TriggerInstanceState(vlm_t *, int i_type, int64_t id, const char *psz_name, const char *psz_instance_name, vlm_state_e input_state)
Definition: vlm_event.c:85
bool fast_seek
Definition: thumbnailer.c:63
static vlm_media_sys_t * vlm_ControlMediaGetByName(vlm_t *p_vlm, const char *psz_name)
Definition: vlm.c:404
struct vlc_runnable runnable
to be passed to the executor
Definition: thumbnailer.c:77
char ** command
Definition: vlm_internal.h:64
Definition: vlc_objects.h:114
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
static int vlm_ControlMediaAdd(vlm_t *p_vlm, vlm_media_t *p_cfg, int64_t *p_id)
Definition: vlm.c:461
vlc_player_listener_id * vlc_player_AddListener(vlc_player_t *player, const struct vlc_player_cbs *cbs, void *cbs_data)
Add a listener callback.
Definition: player.c:970
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static void vlc_queue_Lock(vlc_queue_t *q)
Locks a queue.
Definition: vlc_queue.h:87
vlc_tick_t time
Definition: thumbnailer.c:49
@ STREAM_GET_TITLE_INFO
arg1=input_title_t*** arg2=int* res=can fail
Definition: vlc_stream.h:156
vlc_stream_fifo_t * vlc_stream_fifo_New(vlc_object_t *parent, stream_t **reader)
Creates a FIFO stream.
Definition: stream_fifo.c:106
@ VLC_PLAYER_LOCK_NORMAL
Normal lock.
Definition: vlc_player.h:79
block_t *(* pf_block)(stream_t *, bool *eof)
Read data block.
Definition: vlc_stream.h:103
#define DIR_SEP
Definition: vlc_common.h:1221
static void vlm_media_Copy(vlm_media_t *restrict p_dst, const vlm_media_t *restrict p_src)
Copy a vlm_media_t instance into another vlm_media_t instance.
Definition: vlc_vlm.h:225
static int vlm_ControlMediaInstanceStart(vlm_t *p_vlm, int64_t id, const char *psz_id, int i_input_index)
Definition: vlm.c:655
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:207
static void vlc_stream_fifo_Destroy(stream_t *s)
Definition: stream_fifo.c:53
enum seek_target::@50 type
void vlm_SendEventMediaInstanceStopped(vlm_t *p_vlm, int64_t id, const char *psz_name)
Definition: vlm_event.c:60
uint8_t * p_buffer
Definition: stream_memory.c:54
void vlm_Delete(vlm_t *p_vlm)
Definition: vlm.c:183
@ VLM_ERROR_S
Definition: vlc_vlm.h:110
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:199
module_t * module
Definition: stream_filter.c:58
struct vlc_logger * logger
Definition: vlc_objects.h:45
vlc_thumbnailer_t * thumbnailer
Definition: thumbnailer.c:60
void vlc_LogDestroy(vlc_logger_t *logger)
Destroys a message log.
Definition: messages.c:585
static int vlm_ControlMediaChange(vlm_t *p_vlm, vlm_media_t *p_cfg)
Definition: vlm.c:442
@ VLC_PLAYER_STATE_STARTED
The player is started.
Definition: vlc_player.h:258
static int vlm_ControlMediaInstanceSetTimePosition(vlm_t *p_vlm, int64_t id, const char *psz_id, int64_t i_time, double d_position)
Definition: vlm.c:782
The executor (also vlc_executor_t, exposed as opaque type in the public header).
Definition: executor.c:55
input_item_t * vlc_player_GetCurrentMedia(vlc_player_t *player)
Get the current played media.
Definition: player.c:1043
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
void vlc_queue_Init(vlc_queue_t *q, ptrdiff_t next_offset)
Initializes a queue.
Definition: queue.c:71
int vlc_player_Stop(vlc_player_t *player)
Stop the playback of the current media.
Definition: player.c:1185
int subtitles_Detect(input_thread_t *p_this, char *psz_path, const char *psz_name_org, input_item_slave_t ***ppp_slaves, int *p_slaves)
Detect subtitle files.
Definition: subtitles.c:213
@ VLC_THUMBNAILER_SEEK_TIME
Definition: thumbnailer.c:44
@ VLM_EVENT_MEDIA_CHANGED
Definition: vlc_vlm.h:95
Definition: stream_filter.c:36
@ VLM_EVENT_MEDIA_INSTANCE_STARTED
Definition: vlc_vlm.h:98
static int vlm_ControlMediaGetId(vlm_t *p_vlm, const char *psz_name, int64_t *p_id)
Definition: vlm.c:564
@ STREAM_SET_SEEKPOINT
arg1= int res=can fail
Definition: vlc_stream.h:167
static void strcpy_trim(char *d, const char *s)
Definition: subtitles.c:48
static void vlc_queue_Unlock(vlc_queue_t *q)
Unlocks a queue.
Definition: vlc_queue.h:99
static int vlm_ControlMediaInstanceStop(vlm_t *p_vlm, int64_t id, const char *psz_id)
Definition: vlm.c:729
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Appends a nul-terminated string to a byte stream.
Definition: memstream.c:156
@ VLM_PAUSE_S
Definition: vlc_vlm.h:108
@ VLC_PLAYER_STATE_PLAYING
The player is playing.
Definition: vlc_player.h:266
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
static int Control(stream_t *, int i_query, va_list)
Definition: stream_memory.c:122
static vlm_media_instance_sys_t * vlm_MediaInstanceNew(vlm_media_sys_t *p_media, const char *psz_name)
Definition: vlm.c:586
stream_t * stream_FilterChainNew(stream_t *source, const char *list)
Builds an explicit chain of stream filters.
Definition: stream_filter.c:109
vlc_executor_t * vlc_executor_New(unsigned max_threads)
Create a new executor.
Definition: executor.c:173
int vlm_ExecuteCommand(vlm_t *p_vlm, const char *psz_command, vlm_message_t **pp_message)
Definition: vlm.c:224
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
int vlc_player_Start(vlc_player_t *player)
Start the playback of the current media.
Definition: player.c:1136
#define _(str)
Definition: vlc_fixups.h:374
static void vlc_queue_Signal(vlc_queue_t *q)
Wakes one thread waiting for a queue entry up.
Definition: vlc_queue.h:107
@ VLM_START_MEDIA_BROADCAST_INSTANCE
Definition: vlc_vlm.h:148
const char psz_ext[7]
Definition: image.c:586
@ STREAM_SET_TITLE
arg1= int res=can fail
Definition: vlc_stream.h:166
void vlc_stream_fifo_Close(vlc_stream_fifo_t *writer)
Terminates a FIFO stream.
Definition: stream_fifo.c:162
void(* vlc_thumbnailer_cb)(void *data, picture_t *thumbnail)
vlc_thumbnailer_cb defines a callback invoked on thumbnailing completion or error
Definition: vlc_thumbnailer.h:45
vlc_mutex_t lock
Definition: thumbnailer.c:56
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
static int vlm_ControlMediaDel(vlm_t *p_vlm, int64_t id)
Definition: vlm.c:509
static void StreamDelete(stream_t *s)
Definition: stream_filter.c:41
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
@ STREAM_SET_PAUSE_STATE
arg1= bool res=can fail
Definition: vlc_stream.h:165
static void Trigger(vlm_t *, int i_type, int64_t id, const char *psz_name)
Definition: vlm_event.c:73
@ VLM_OPENING_S
Definition: vlc_vlm.h:106
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
int vlm_ControlInternal(vlm_t *p_vlm, int i_query,...)
Definition: vlm.c:966
void vlm_SendEventMediaChanged(vlm_t *, int64_t id, const char *psz_name)
Definition: vlm_event.c:51
Doubly-linked list node.
Definition: vlc_list.h:43
#define VLC_VAR_FLOAT
Definition: vlc_variables.h:52
@ STREAM_SET_PRIVATE_ID_CA
Definition: vlc_stream.h:173
vlm_t * vlm_New(libvlc_int_t *libvlc, const char *psz_vlmconf)
Definition: vlm.c:109
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:249
vlc_mutex_t lock
Definition: thumbnailer.c:73
Video picture.
Definition: vlc_picture.h:120
int asprintf(char **, const char *,...)
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
#define vlc_object_create(a, b)
Definition: vlc_objects.h:179
unsigned users
Definition: vlm_internal.h:85
Mutex.
Definition: vlc_threads.h:225
void vlm_SendEventMediaInstanceState(vlm_t *p_vlm, int64_t id, const char *psz_name, const char *psz_instance_name, vlm_state_e state)
Definition: vlm_event.c:65
@ VLM_STOP_MEDIA_INSTANCE
Definition: vlc_vlm.h:150
@ VLM_GET_MEDIAS
Definition: vlc_vlm.h:127
@ VLM_GET_MEDIA
Definition: vlc_vlm.h:138
static char ** paths_to_list(const char *psz_dir, char *psz_path)
Convert a list of paths separated by ',' to a char**.
Definition: subtitles.c:155
@ STREAM_CAN_SEEK
arg1= bool * res=cannot fail
Definition: vlc_stream.h:147
void vlm_SendEventMediaRemoved(vlm_t *p_vlm, int64_t id, const char *psz_name)
Definition: vlm_event.c:47
@ VLC_THUMBNAILER_SEEK_FAST
Fast, but potentially imprecise.
Definition: vlc_thumbnailer.h:62
Definition: stream_fifo.c:42
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
int(* pf_readdir)(stream_t *, input_item_node_t *)
Read directory.
Definition: vlc_stream.h:113
static void on_thumbnailer_input_event(input_thread_t *input, const struct vlc_input_event *event, void *userdata)
Definition: thumbnailer.c:143
float vlc_player_GetPosition(vlc_player_t *player)
Get the position of the current media.
Definition: player.c:1367
char * psz_name
Definition: vlc_stream.h:50
float pos
Definition: thumbnailer.c:50
vlm_schedule_sys_t ** schedule
Definition: vlm_internal.h:99
@ STREAM_SET_PRIVATE_ID_STATE
Definition: vlc_stream.h:172
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
static int vlm_OnMediaUpdate(vlm_t *p_vlm, vlm_media_sys_t *p_media)
Definition: vlm.c:431
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
input_attachment_t * attachment
Definition: stream_memory.c:40
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
static void vlc_player_TogglePause(vlc_player_t *player)
Helper to toggle the pause state.
Definition: vlc_player.h:545
void vlc_player_Unlock(vlc_player_t *player)
Unlock the player.
Definition: player.c:957
Definition: vlc_arrays.h:258
static void Interrupt(task_t *task)
Definition: thumbnailer.c:229
input_item_t * item
Definition: thumbnailer.c:64
#define DEFAULT_PTS_DELAY
Definition: vlc_config.h:69
time_t period
Definition: vlm_internal.h:70
@ VLM_PAUSE_MEDIA_INSTANCE
Definition: vlc_vlm.h:152
static task_t * RequestCommon(vlc_thumbnailer_t *thumbnailer, struct seek_target seek_target, enum vlc_thumbnailer_seek_speed speed, input_item_t *item, vlc_tick_t timeout, vlc_thumbnailer_cb cb, void *userdata)
Definition: thumbnailer.c:239
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Appends a formatted string to a byte stream.
Definition: memstream.c:194
task_t * vlc_thumbnailer_RequestByTime(vlc_thumbnailer_t *thumbnailer, vlc_tick_t time, enum vlc_thumbnailer_seek_speed speed, input_item_t *item, vlc_tick_t timeout, vlc_thumbnailer_cb cb, void *userdata)
vlc_thumbnailer_RequestByTime Requests a thumbnailer at a given time
Definition: thumbnailer.c:261
int subtitles_Filter(const char *psz_dir_content)
Definition: subtitles.c:137
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
Definition: stream_fifo.c:37
static int vlm_ControlMediaClear(vlm_t *p_vlm)
Definition: vlm.c:548
bool input_state_changed
Definition: vlm_internal.h:88
void(* run)(void *userdata)
This function is to be executed by a vlc_executor_t.
Definition: vlc_executor.h:55
FILE * stream
Definition: vlc_memstream.h:45
int i_type
Definition: httpd.c:1269
static int vlm_ControlMediaInstancePause(vlm_t *p_vlm, int64_t id, const char *psz_id)
Definition: vlm.c:745
vlc_player_t * vlc_player_New(vlc_object_t *parent, enum vlc_player_lock_type lock_type, const struct vlc_player_media_provider *media_provider, void *media_provider_data)
Create a new player instance.
Definition: player.c:1921
Definition: thumbnailer.c:40
Internal module descriptor.
Definition: modules.h:78
int vlc_player_SetCurrentMedia(vlc_player_t *player, input_item_t *media)
Set the current media.
Definition: player.c:1000
@ VLM_ADD_MEDIA
Definition: vlc_vlm.h:132
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:277
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_tick_t timeout
A positive value will be used as the timeout duration VLC_TICK_INVALID means no timeout.
Definition: thumbnailer.c:69
Definition: vlm_internal.h:77
bool exiting
Definition: vlm_internal.h:89
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
void * vlc_queue_DequeueAllUnlocked(vlc_queue_t *q)
Dequeues all entries (without locking).
Definition: queue.c:116
@ VLM_CLEAR_MEDIA_INSTANCES
Definition: vlc_vlm.h:146
@ VLM_SET_MEDIA_INSTANCE_POSITION
Definition: vlc_vlm.h:160
static void vlm_media_Clean(vlm_media_t *p_media)
Cleanup and release memory associated with this vlm_media_t instance.
Definition: vlc_vlm.h:254
vlc_thumbnailer_t * vlc_thumbnailer_Create(vlc_object_t *parent)
vlc_thumbnailer_Create Creates a thumbnailer object
Definition: thumbnailer.c:296
@ VLM_CHANGE_MEDIA
Definition: vlc_vlm.h:136
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
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
static void * vlc_queue_DequeueKillable(vlc_queue_t *q, bool *restrict tombstone)
Dequeues one entry from a killable queue.
Definition: vlc_queue.h:242
int(* pf_seek)(stream_t *, uint64_t)
Seek.
Definition: vlc_stream.h:124
vlc_cond_t cond_ended
Definition: thumbnailer.c:74
char * psz_url
Full URL or MRL (can be NULL)
Definition: vlc_stream.h:51
Definition: stream_memory.c:30
char * vlc_uri2path(const char *url)
Converts a URI to a local path.
Definition: url.c:247
void vlm_SendEventMediaInstanceState(vlm_t *, int64_t id, const char *psz_name, const char *psz_instance_name, vlm_state_e state)
Definition: vlm_event.c:65
vlc_tick_t vlc_player_GetLength(vlc_player_t *player)
Get the length of the current media.
Definition: player.c:1349
static int mrl_FragmentSplit(vlc_array_t *out_items, char const **out_extra, char const *payload)
Split an MRL-fragment into identifiers.
Definition: mrl_helpers.h:115
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
vlm_state_e
Definition: vlc_vlm.h:103
static void vlc_player_SetPosition(vlc_player_t *player, float position)
Helper to set the absolute position precisely.
Definition: vlc_player.h:721
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:79
void vlc_player_Lock(vlc_player_t *player)
Lock the player.
Definition: player.c:941
input_item_t * item
Definition: fetcher.c:57
Definition: thumbnailer.c:58
static void vlc_player_SetTime(vlc_player_t *player, vlc_tick_t time)
Helper to set the absolute time precisely.
Definition: vlc_player.h:753
static void vlm_MediaInstanceDelete(vlm_t *p_vlm, int64_t id, vlm_media_instance_sys_t *p_instance, vlm_media_sys_t *p_media)
Definition: vlm.c:633
void vlm_SendEventMediaInstanceStarted(vlm_t *, int64_t id, const char *psz_name)
Definition: vlm_event.c:56
static int vlm_ControlMediaGets(vlm_t *p_vlm, vlm_media_t ***ppp_dsc, int *pi_dsc)
Definition: vlm.c:531
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Appends a single byte to a byte stream.
Definition: memstream.c:151
static ssize_t Read(stream_t *, void *p_read, size_t i_read)
Definition: stream_memory.c:173
DIR * vlc_opendir(const char *dirname)
Opens a DIR pointer.
Definition: filesystem.c:110
Definition: thumbnailer.c:31
char * strtok_r(char *, const char *, char **)
vlm_media_sys_t ** media
Definition: vlm_internal.h:95
static bool vlc_player_IsStarted(vlc_player_t *player)
Helper to get the started state.
Definition: vlc_player.h:519
static void strcpy_strip_ext(char *d, const char *s)
Definition: subtitles.c:77
static vlm_media_sys_t * vlm_ControlMediaGetById(vlm_t *p_vlm, int64_t id)
Definition: vlm.c:395
stream_t definition
Definition: vlc_stream.h:46
int vlm_Control(vlm_t *p_vlm, int i_query,...)
Definition: vlm.c:978
static int whiteonly(const char *s)
Definition: subtitles.c:105
@ VLM_GET_MEDIA_ID
Definition: vlc_vlm.h:140
@ VLC_PLAYER_STATE_STOPPING
The player is stopping.
Definition: vlc_player.h:281
@ STREAM_GET_META
arg1= vlc_meta_t * res=can fail
Definition: vlc_stream.h:159
stream_t * s
Input stream.
Definition: vlc_stream.h:65
static int vlm_MediaDescriptionCheck(vlm_t *p_vlm, vlm_media_t *p_cfg)
Definition: vlm.c:413
size_t strlcpy(char *, const char *, size_t)
struct vlc_list node
node of input_fetcher_t.submitted_tasks
Definition: fetcher.c:65
@ VLM_DEL_MEDIA
Definition: vlc_vlm.h:134
static void player_on_state_changed(vlc_player_t *player, enum vlc_player_state new_state, void *data)
Definition: vlm.c:59
static void RunnableRun(void *)
Definition: thumbnailer.c:176
vlc_executor_t * executor
Definition: thumbnailer.c:54
time_t date
Definition: vlm_internal.h:67
vlm_t * p_vlm
the VLM singleton (or NULL)
Definition: libvlc.h:184
bool b_enabled
Definition: vlm_internal.h:61
@ VLM_EVENT_MEDIA_INSTANCE_STOPPED
Definition: vlc_vlm.h:99
int i_type
Definition: vlc_vlm.h:115
@ STREAM_GET_PTS_DELAY
arg1= vlc_tick_t* res=cannot fail
Definition: vlc_stream.h:155
int(* pf_control)(stream_t *, int i_query, va_list)
Stream control.
Definition: vlc_stream.h:133
struct vlc_list submitted_tasks
list of struct thumbnailer_task
Definition: thumbnailer.c:57
static int mrl_EscapeFragmentIdentifier(char **out, char const *payload)
Escape a fragment identifier for use within an MRL.
Definition: mrl_helpers.h:58
#define DIR_SEP_CHAR
Definition: vlc_common.h:1220
void input_ConfigVarInit(input_thread_t *p_input)
Definition: var.c:39
input_item_t * p_input_item
Input item (can be NULL)
Definition: vlc_stream.h:55
@ STREAM_GET_SEEKPOINT
arg1=unsigned * res=can fail
Definition: vlc_stream.h:158
VLC object common members.
Definition: vlc_objects.h:43
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
int i_schedule
Definition: vlm_internal.h:98
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
void vlm_SendEventMediaAdded(vlm_t *p_vlm, int64_t id, const char *psz_name)
Definition: vlm_event.c:43
vlc_cond_t cond_ended
Definition: preparser.c:59
@ VLM_PLAYING_S
Definition: vlc_vlm.h:107
vlc_thread_t thread
Definition: vlm_internal.h:82
task_t * vlc_thumbnailer_RequestByPos(vlc_thumbnailer_t *thumbnailer, float pos, enum vlc_thumbnailer_seek_speed speed, input_item_t *item, vlc_tick_t timeout, vlc_thumbnailer_cb cb, void *userdata)
vlc_thumbnailer_RequestByTime Requests a thumbnailer at a given time
Definition: thumbnailer.c:276
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:270
stream_t *() vlc_stream_MemoryNew(vlc_object_t *p_this, uint8_t *p_buffer, size_t i_size, bool preserve)
Create a stream from a memory buffer.
Definition: stream_memory.c:67
static void stream_MemoryPreserveDelete(stream_t *s)
Definition: stream_memory.c:47
char * strdup(const char *)
void vlm_SendEventMediaRemoved(vlm_t *, int64_t id, const char *psz_name)
Definition: vlm_event.c:47
@ VLC_PLAYER_STATE_PAUSED
The player is paused.
Definition: vlc_player.h:273
int ExecuteCommand(vlm_t *, const char *, vlm_message_t **)
bool vlc_executor_Cancel(vlc_executor_t *executor, struct vlc_runnable *runnable)
Cancel a runnable previously submitted.
Definition: executor.c:223
@ VLM_GET_MEDIA_INSTANCES
Definition: vlc_vlm.h:144
static void NotifyThumbnail(task_t *task, picture_t *pic)
Definition: thumbnailer.c:136
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
@ VLM_EVENT_MEDIA_REMOVED
Definition: vlc_vlm.h:94
vlc_mutex_t lock_manage
Definition: vlm_internal.h:83
static vlm_media_instance_sys_t * vlm_ControlMediaInstanceGetByName(vlm_media_sys_t *p_media, const char *psz_id)
Definition: vlm.c:574
vlc_stream_fifo_t * writer
Definition: stream_fifo.c:43
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
#define strcoll
Definition: strings.c:42
const char name[16]
Definition: httpd.c:1268
ssize_t(* pf_read)(stream_t *, void *buf, size_t len)
Read data.
Definition: vlc_stream.h:85
vlc_player_state
State of the player.
Definition: vlc_player.h:243
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:55
void vlc_player_RemoveListener(vlc_player_t *player, vlc_player_listener_id *id)
Remove a listener callback.
Definition: player.c:989
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:283
static task_t * TaskNew(vlc_thumbnailer_t *thumbnailer, input_item_t *item, struct seek_target seek_target, bool fast_seek, vlc_thumbnailer_cb cb, void *userdata, vlc_tick_t timeout)
Definition: thumbnailer.c:85
Condition variable.
Definition: vlc_threads.h:349
void(* on_state_changed)(vlc_player_t *player, enum vlc_player_state new_state, void *data)
Called when the player state has changed.
Definition: vlc_player.h:2771
static const char *const sub_exts[]
The possible extensions for subtitle files we support.
Definition: subtitles.c:46
@ STREAM_GET_CONTENT_TYPE
arg1= char ** res=can fail
Definition: vlc_stream.h:160
vlc_cond_t wait_manage
Definition: vlm_internal.h:84
static int vlm_vaControlInternal(vlm_t *p_vlm, int i_query, va_list args)
Definition: vlm.c:855
#define US_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:138
int vlc_stream_fifo_Queue(vlc_stream_fifo_t *writer, block_t *block)
Writes a block to a FIFO stream.
Definition: stream_fifo.c:132
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:106
int i_command
Definition: vlm_internal.h:63
void vlm_SendEventMediaInstanceStarted(vlm_t *p_vlm, int64_t id, const char *psz_name)
Definition: vlm_event.c:56
@ VLM_END_S
Definition: vlc_vlm.h:109
static void CancelAllTasks(vlc_thumbnailer_t *thumbnailer)
Definition: thumbnailer.c:317
void vlm_ScheduleDelete(vlm_t *vlm, vlm_schedule_sys_t *sched)
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
static int Seek(stream_t *, uint64_t)
Definition: stream_memory.c:185
static void strcpy_get_ext(char *d, const char *s)
Definition: subtitles.c:96
static block_t * vlc_stream_fifo_Block(stream_t *s, bool *restrict eof)
Definition: stream_fifo.c:72
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
stream_t * vlc_stream_CommonNew(vlc_object_t *parent, void(*destroy)(stream_t *))
Definition: stream.c:108
struct vlc_logger * vlc_LogHeaderCreate(struct vlc_logger *parent, const char *str)
Creates a prefixed message log.
Definition: messages.c:505
#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
@ STREAM_CAN_CONTROL_PACE
arg1= bool * res=cannot fail
Definition: vlc_stream.h:150
int64_t i_id
Definition: vlm_internal.h:91
@ VLM_INIT_S
Definition: vlc_vlm.h:105
static int vlm_ControlMediaGet(vlm_t *p_vlm, int64_t id, vlm_media_t **pp_dsc)
Definition: vlm.c:555
#define vlc_object_parent(o)
Definition: vlc_objects.h:158
void vlc_executor_Delete(vlc_executor_t *executor)
Delete an executor.
Definition: executor.c:256
void vlc_player_Delete(vlc_player_t *player)
Delete a player instance.
Definition: player.c:1873
#define VLC_TICK_FROM_US(us)
Definition: vlc_tick.h:137
struct vlc_list node
node of vlc_thumbnailer_t.submitted_tasks
Definition: thumbnailer.c:79
void * userdata
Definition: thumbnailer.c:71
Definition: vlc_vlm.h:176
@ STREAM_GET_PRIVATE_ID_STATE
Definition: vlc_stream.h:174
static vlm_media_t * vlm_media_Duplicate(vlm_media_t *p_src)
Copy a vlm_media_t instance.
Definition: vlc_vlm.h:297
static void * Manage(void *)
Definition: vlm.c:239
void vlm_SendEventMediaInstanceStopped(vlm_t *, int64_t id, const char *psz_name)
Definition: vlm_event.c:60
static int vlm_ControlMediaInstanceClear(vlm_t *p_vlm, int64_t id)
Definition: vlm.c:834
float vlc_player_GetRate(vlc_player_t *player)
Get the rate of the player.
Definition: player.c:1282
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
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
struct vlc_stream_memory_private memory
Definition: stream_memory.c:39
vlc_mutex_t lock
Definition: vlm_internal.h:81
static void ThumbnailerAddTask(vlc_thumbnailer_t *thumbnailer, task_t *task)
Definition: thumbnailer.c:121
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
static int slave_strcmp(const void *a, const void *b)
Definition: subtitles.c:118
@ VLC_THUMBNAILER_SEEK_POS
Definition: thumbnailer.c:45
char * psz_filepath
Local file path (if applicable)
Definition: vlc_stream.h:53
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
@ VLM_CLEAR_SCHEDULES
Definition: vlc_vlm.h:163
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
@ STREAM_GET_SIGNAL
arg1=double *pf_quality, arg2=double *pf_strength res=can fail
Definition: vlc_stream.h:161
bool ended
Definition: thumbnailer.c:75
stream_t * source
the source stream to be consumed
Definition: vlc_stream_extractor.h:88
static int vlm_ControlScheduleClear(vlm_t *p_vlm)
Definition: vlm.c:847
@ STREAM_GET_SIZE
arg1= uint64_t * res=can fail
Definition: vlc_stream.h:152
void vlm_SendEventMediaChanged(vlm_t *p_vlm, int64_t id, const char *psz_name)
Definition: vlm_event.c:51
@ VLM_GET_MEDIA_INSTANCE_POSITION
Definition: vlc_vlm.h:158
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
Definition: vlc_stream_extractor.h:74
@ VLC_PLAYER_STATE_STOPPED
The player is stopped.
Definition: vlc_player.h:251
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
vlc_object_t * parent
Definition: thumbnailer.c:53
#define module_unneed(a, b)
Definition: vlc_modules.h:126
static thread_local struct @76 state
Player callbacks.
Definition: vlc_player.h:2742
static vlc_mutex_t vlm_mutex
Definition: vlm.c:104
noreturn void vlm_MessageDelete(vlm_message_t *m)
Definition: missing.c:210
static void stream_AttachmentDelete(stream_t *s)
Definition: stream_memory.c:59
@ VLM_GET_MEDIA_INSTANCE_TIME
Definition: vlc_vlm.h:154
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
bool eof
Definition: stream_fifo.c:57
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
@ STREAM_CAN_FASTSEEK
arg1= bool * res=cannot fail
Definition: vlc_stream.h:148
size_t i_pos
Definition: stream_memory.c:52
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
int vlc_cond_timedwait_daytime(vlc_cond_t *cond, vlc_mutex_t *mutex, time_t deadline)
Definition: threads.c:362
#define vlc_object_instance(o)
Definition: vlc_objects.h:195
void * p_sys
Private data pointer.
Definition: vlc_stream.h:138
static void ThumbnailerRemoveTask(vlc_thumbnailer_t *thumbnailer, task_t *task)
Definition: thumbnailer.c:129
Definition: vlc_block.h:117
void vlc_queue_EnqueueUnlocked(vlc_queue_t *q, void *entry)
Queues an entry (without locking).
Definition: queue.c:80
vlc_tick_t timeout
Definition: preparser.c:54
static int vlm_ControlMediaInstanceGetTimePosition(vlm_t *p_vlm, int64_t id, const char *psz_id, int64_t *pi_time, double *pd_position)
Definition: vlm.c:762
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
void vlc_player_Resume(vlc_player_t *player)
Resume the playback from a pause.
Definition: player.c:1243
stream_t * vlc_stream_AttachmentNew(vlc_object_t *p_this, input_attachment_t *attachment)
Definition: stream_memory.c:90
enum vlc_player_error vlc_player_GetError(vlc_player_t *player)
Get the error state of the player.
Definition: player.c:1268
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
@ VLM_SET_MEDIA_INSTANCE_TIME
Definition: vlc_vlm.h:156
stream_t * stream_FilterChainNew(stream_t *p_source, const char *psz_chain)
Builds an explicit chain of stream filters.
Definition: stream_filter.c:109
static bool vlc_player_IsPaused(vlc_player_t *player)
Helper to get the paused state.
Definition: vlc_player.h:536
vlc_queue_t queue
Definition: stream_fifo.c:56
Definition: stream_memory.c:37
stream_t * stream_FilterAutoNew(stream_t *p_source)
Probes stream filters automatically.
Definition: stream_filter.c:93
vlc_thumbnailer_cb cb
Definition: thumbnailer.c:70
vlc_thumbnailer_seek_speed
Definition: vlc_thumbnailer.h:57
static vlm_media_instance_t * vlm_media_instance_New(void)
Allocate a new vlm_media_instance_t.
Definition: vlc_vlm.h:334