21#ifndef VLC_PLAYER_INTERNAL_H
22#define VLC_PLAYER_INTERNAL_H
234#define best_source sources[VLC_PLAYER_TIMER_TYPE_BEST]
235#define smpte_source sources[VLC_PLAYER_TIMER_TYPE_SMPTE]
278#define VLC_PLAYER_EOS_BURST_THRESHOLD VLC_TICK_FROM_MS(250)
310#define vlc_player_assert_locked(x) ((void) (0))
320#define vlc_player_SendEvent(player, event, ...) do { \
321 vlc_player_listener_id *listener; \
322 vlc_list_foreach(listener, &player->listeners, node) \
324 if (listener->cbs->event) \
325 listener->cbs->event(player, ##__VA_ARGS__, listener->cbs_data); \
320#define vlc_player_SendEvent(player, event, ...) do { \ …
329static inline const char *
336 case SPU_ES:
return "Subtitle";
337 default:
return NULL;
397 int title_offset,
int chapter_offset);
433 const char *str_ids);
493 bool es_source_is_master,
496 unsigned frame_rate,
unsigned frame_rate_base,
size_t count
Definition core.c:403
#define VLC_MALLOC
Definition vlc_common.h:157
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition vlc_threads.h:248
vlc_osd_widget_type
OSD menu position and picture type defines.
Definition vlc_vout_osd.h:47
#define VLC_VECTOR(type)
Vector struct body.
Definition vlc_vector.h:66
vlc_vout_order
vout or spu_channel order
Definition vlc_vout.h:70
vlc_player_state
State of the player.
Definition vlc_player.h:193
vlc_player_whence
Player seek/delay directive.
Definition vlc_player.h:266
vlc_player_seek_speed
Seek speed type.
Definition vlc_player.h:251
vlc_player_error
Error of the player.
Definition vlc_player.h:239
const char name[16]
Definition httpd.c:1298
const char var[sizeof("video")]
Definition player.c:1797
vlc_tick_t vlc_player_input_GetTime(struct vlc_player_input *input, bool seeking, vlc_tick_t system_now)
Definition input.c:61
void vlc_player_osd_Icon(vlc_player_t *player, vlc_osd_widget_type type)
Definition osd.c:110
struct vlc_player_program * vlc_player_program_New(int id, const char *name)
Definition track.c:42
void vlc_player_ResetTimer(vlc_player_t *player)
Definition timer.c:30
static struct vlc_player_input * vlc_player_get_input_locked(vlc_player_t *player)
Definition player.h:314
int vlc_player_vout_OSDCallback(vlc_object_t *this, const char *var, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition osd.c:283
void vlc_player_osd_Tracks(vlc_player_t *player, vlc_es_id_t *const *selected, vlc_es_id_t *unselect)
Definition osd.c:190
static void vlc_player_assert_locked(vlc_player_t *player)
Definition player.h:304
struct vlc_player_program * vlc_player_program_vector_FindById(vlc_player_program_vector *vec, int id, size_t *idx)
Definition track.c:89
void vlc_player_input_SelectTracksByStringIds(struct vlc_player_input *input, enum es_format_category_e cat, const char *str_ids)
Definition input.c:1075
void vlc_player_input_RestoreMlStates(struct vlc_player_input *input, bool force_pos)
Definition medialib.c:30
void vlc_player_destructor_AddStoppingInput(vlc_player_t *player, struct vlc_player_input *input)
Definition player.c:151
int vlc_player_OpenNextMedia(vlc_player_t *player)
Definition player.c:56
struct vlc_player_track_priv * vlc_player_track_priv_New(vlc_es_id_t *id, const char *name, const es_format_t *fmt)
Definition track.c:106
struct vlc_player_track_priv * vlc_player_input_FindTrackById(struct vlc_player_input *input, vlc_es_id_t *id, size_t *idx)
Definition input.c:30
void vlc_player_destructor_AddJoinableInput(vlc_player_t *player, struct vlc_player_input *input)
Definition player.c:165
vlc_player_timer_event
Definition player.h:209
@ VLC_PLAYER_TIMER_EVENT_PAUSED
Definition player.h:211
@ VLC_PLAYER_TIMER_EVENT_DISCONTINUITY
Definition player.h:212
@ VLC_PLAYER_TIMER_EVENT_PLAYING
Definition player.h:210
@ VLC_PLAYER_TIMER_EVENT_STOPPING
Definition player.h:213
void vlc_player_osd_Message(vlc_player_t *player, const char *fmt,...)
Definition osd.c:90
void vlc_player_UpdateTimerEvent(vlc_player_t *player, vlc_es_id_t *es_source, enum vlc_player_timer_event event, vlc_tick_t system_date)
Definition timer.c:196
void vlc_player_UpdateMLStates(vlc_player_t *player, struct vlc_player_input *input)
Definition medialib.c:171
void vlc_player_osd_Position(vlc_player_t *player, struct vlc_player_input *input, vlc_tick_t time, double position)
Definition osd.c:121
double vlc_player_input_GetPos(struct vlc_player_input *input, bool seeking, vlc_tick_t system_now)
Definition input.c:74
char * vlc_player_input_GetSelectedTrackStringIds(struct vlc_player_input *input, enum es_format_category_e cat)
Definition input.c:1083
void vlc_player_input_HandleState(struct vlc_player_input *, enum vlc_player_state, vlc_tick_t state_date)
Definition input.c:213
vlc_object_t * vlc_player_GetObject(vlc_player_t *player)
Definition player.c:2099
void vlc_player_input_SeekByPos(struct vlc_player_input *input, double position, enum vlc_player_seek_speed speed, enum vlc_player_whence whence)
Definition input.c:120
struct vlc_player_title_list * vlc_player_title_list_Create(input_title_t *const *array, size_t count, int title_offset, int chapter_offset)
Definition title.c:99
void vlc_player_osd_Track(vlc_player_t *player, vlc_es_id_t *id, bool select)
Definition osd.c:176
int vlc_player_program_Update(struct vlc_player_program *prgm, int id, const char *name)
Definition track.c:60
void vlc_player_UpdateTimer(vlc_player_t *player, vlc_es_id_t *es_source, bool es_source_is_master, const struct vlc_player_timer_point *point, vlc_tick_t normal_time, unsigned frame_rate, unsigned frame_rate_base, vlc_tick_t start_offset)
Definition timer.c:435
void vlc_player_DestroyTimer(vlc_player_t *player)
Definition timer.c:706
struct vlc_player_track_priv * vlc_player_track_vector_FindById(vlc_player_track_vector *vec, vlc_es_id_t *id, size_t *idx)
Definition track.c:194
audio_output_t * vlc_player_aout_Init(vlc_player_t *player)
Definition aout.c:224
void vlc_player_vout_AddCallbacks(vlc_player_t *player, vout_thread_t *vout)
Definition vout.c:140
struct vlc_player_input * vlc_player_input_New(vlc_player_t *player, input_item_t *item)
Definition input.c:1115
void vlc_player_RemoveTimerSource(vlc_player_t *player, vlc_es_id_t *es_source)
Definition timer.c:505
int vlc_player_GetFirstSelectedTrackId(const vlc_player_track_vector *tracks)
Definition track.c:212
void vlc_player_input_Delete(struct vlc_player_input *input)
Definition input.c:1225
void vlc_player_input_SeekByTime(struct vlc_player_input *input, vlc_tick_t time, enum vlc_player_seek_speed speed, enum vlc_player_whence whence)
Definition input.c:148
void vlc_player_track_priv_Delete(struct vlc_player_track_priv *trackpriv)
Definition track.c:139
void vlc_player_input_UpdateViewpoint(struct vlc_player_input *input, const vlc_viewpoint_t *viewpoint, enum vlc_player_whence whence)
Definition input.c:174
void vlc_player_osd_Program(vlc_player_t *player, const char *name)
Definition osd.c:247
void vlc_player_vout_DelCallbacks(vlc_player_t *player, vout_thread_t *vout)
Definition vout.c:150
void vlc_player_aout_Deinit(vlc_player_t *player)
Definition aout.c:236
void vlc_player_osd_Volume(vlc_player_t *player, bool mute_action)
Definition osd.c:156
void vlc_player_UpdateTimerSeekState(vlc_player_t *player, vlc_tick_t time, double position)
Definition timer.c:272
int vlc_player_track_priv_Update(struct vlc_player_track_priv *trackpriv, const char *name, const es_format_t *fmt)
Definition track.c:169
static vlc_player_track_vector * vlc_player_input_GetTrackVector(struct vlc_player_input *input, enum es_format_category_e cat)
Definition player.h:404
void vlc_player_InitTimer(vlc_player_t *player)
Definition timer.c:692
int vlc_player_input_Start(struct vlc_player_input *input)
Definition input.c:99
static const char * es_format_category_to_string(enum es_format_category_e cat)
Definition player.h:330
vlc_player_timer_source_type
Definition player.h:168
@ VLC_PLAYER_TIMER_TYPE_SMPTE
Definition player.h:170
@ VLC_PLAYER_TIMER_TYPE_COUNT
Definition player.h:171
@ VLC_PLAYER_TIMER_TYPE_BEST
Definition player.h:169
int vlc_player_GetTimerPoint(vlc_player_t *player, bool seeking, vlc_tick_t system_now, vlc_tick_t *out_ts, double *out_pos)
Definition timer.c:530
Audio output object.
Definition vlc_aout.h:155
Definition vlc_atomic.h:48
Condition variable.
Definition vlc_threads.h:270
Opaque structure representing an ES (Elementary Stream) track.
Definition es_out.c:105
Doubly-linked list node.
Definition vlc_list.h:44
Definition vlc_media_library.h:698
Mutex.
Definition vlc_threads.h:143
VLC object common members.
Definition vlc_objects.h:53
Player aout callbacks.
Definition vlc_player.h:2336
struct vlc_list node
Definition player.h:164
void * cbs_data
Definition player.h:163
const struct vlc_player_aout_cbs * cbs
Definition player.h:162
Player callbacks.
Definition vlc_player.h:2793
struct vlc_list node
Definition player.h:137
const struct vlc_player_cbs * cbs
Definition player.h:135
void * cbs_data
Definition player.h:136
Player program structure.
Definition vlc_player.h:1188
vlc_cond_t wait
Definition player.h:286
bool releasing_media
Definition player.h:263
struct vlc_object_t obj
Definition player.h:240
struct vlc_list joinable_inputs
Definition player.h:290
vlc_mutex_t vout_listeners_lock
Definition player.h:244
vlc_mutex_t metadata_listeners_lock
Definition player.h:242
struct vlc_list listeners
Definition player.h:252
input_item_t * next_media
Definition player.h:264
vlc_thread_t thread
Definition player.h:285
bool started
Definition player.h:271
struct vlc_player_t::@118 destructor
unsigned eos_burst_count
Definition player.h:280
struct vlc_player_timer timer
Definition player.h:293
vlc_cond_t notify
Definition player.h:287
struct vlc_list stopping_inputs
Definition player.h:289
bool deleting
Definition player.h:282
struct vlc_list aout_listeners
Definition player.h:254
struct vlc_list vout_listeners
Definition player.h:255
struct vlc_list inputs
Definition player.h:288
vlc_mutex_t lock
Definition player.h:241
char * audio_string_ids
Definition player.h:267
bool corked
Definition player.h:250
vlc_mutex_t aout_listeners_lock
Definition player.h:243
input_resource_t * resource
Definition player.h:257
enum vlc_player_state global_state
Definition player.h:270
bool start_paused
Definition player.h:247
char * video_string_ids
Definition player.h:266
vlc_tick_t last_eos
Definition player.h:279
vlc_renderer_item_t * renderer
Definition player.h:258
char * sub_string_ids
Definition player.h:268
input_item_t * media
Definition player.h:260
vlc_cond_t start_delay_cond
Definition player.h:245
struct vlc_list metadata_listeners
Definition player.h:253
struct vlc_player_input * input
Definition player.h:261
bool pause_on_cork
Definition player.h:249
Player timer callbacks.
Definition vlc_player.h:3381
struct vlc_list node
Definition player.h:186
const struct vlc_player_timer_smpte_cbs * smpte_cbs
Definition player.h:182
vlc_tick_t period
Definition player.h:176
void * data
Definition player.h:184
const struct vlc_player_timer_cbs * cbs
Definition player.h:181
vlc_tick_t last_update_date
Definition player.h:177
Player timer point.
Definition vlc_player.h:3333
Player smpte timer callbacks.
Definition vlc_player.h:3445
unsigned long last_framenum
Definition player.h:197
unsigned frame_resolution
Definition player.h:200
int df
Definition player.h:202
struct vlc_player_timer_source::@115::@117 smpte
int frames_per_10mins
Definition player.h:203
struct vlc_player_timer_point point
Definition player.h:193
unsigned frame_rate
Definition player.h:198
unsigned frame_rate_base
Definition player.h:199
struct vlc_list listeners
Definition player.h:191
vlc_es_id_t * es
Definition player.h:192
unsigned df_fps
Definition player.h:201
vlc_tick_t last_ts
Definition player.h:223
vlc_tick_t input_normal_time
Definition player.h:222
double seek_position
Definition player.h:228
bool stopping
Definition player.h:230
bool input_live
Definition player.h:220
bool seeking
Definition player.h:231
double input_position
Definition player.h:225
bool paused
Definition player.h:229
vlc_tick_t start_offset
Definition player.h:224
struct vlc_player_timer_source sources[VLC_PLAYER_TIMER_TYPE_COUNT]
Definition player.h:233
vlc_tick_t seek_ts
Definition player.h:227
vlc_mutex_t lock
Definition player.h:218
vlc_tick_t input_length
Definition player.h:221
struct vlc_player_title array[]
Definition player.h:54
vlc_atomic_rc_t rc
Definition player.h:52
size_t count
Definition player.h:53
Player title structure.
Definition vlc_player.h:969
bool selected_by_user
Definition player.h:41
struct vlc_player_track t
Definition player.h:35
vout_thread_t * vout
Definition player.h:36
vlc_tick_t delay
Definition player.h:37
enum vlc_vout_order vout_order
Definition player.h:39
Player track structure.
Definition vlc_player.h:1348
Player vout callbacks.
Definition vlc_player.h:2563
struct vlc_list node
Definition player.h:157
void * cbs_data
Definition player.h:156
const struct vlc_player_vout_cbs * cbs
Definition player.h:155
Definition renderer_discovery.c:36
Thread handle.
Definition vlc_threads.h:108
Viewpoints.
Definition vlc_viewpoint.h:41
Video output thread descriptor.
Definition vlc_vout.h:54
VLC value structure.
Definition vlc_variables.h:122
Atomic operations do not require locking, but they are not very powerful.
es_format_category_e
ES Categories.
Definition vlc_es.h:597
@ SPU_ES
Definition vlc_es.h:601
@ DATA_ES
Definition vlc_es.h:602
@ AUDIO_ES
Definition vlc_es.h:600
@ VIDEO_ES
Definition vlc_es.h:599
This provides convenience helpers for linked lists.
int64_t vlc_tick_t
High precision date or time interval.
Definition vlc_tick.h:48
This provides convenience helpers for vectors.
Overlay text and widgets.