21#ifndef VLC_PLAYER_INTERNAL_H 
   22#define VLC_PLAYER_INTERNAL_H 
  226#define best_source sources[VLC_PLAYER_TIMER_TYPE_BEST] 
  227#define smpte_source sources[VLC_PLAYER_TIMER_TYPE_SMPTE] 
  275#define VLC_PLAYER_EOS_BURST_THRESHOLD VLC_TICK_FROM_MS(250) 
  307#define vlc_player_assert_locked(x) ((void) (0)) 
  317#define vlc_player_SendEvent(player, event, ...) do { \ 
  318    vlc_player_listener_id *listener; \ 
  319    vlc_list_foreach(listener, &player->listeners, node) \ 
  321        if (listener->cbs->event) \ 
  322            listener->cbs->event(player, ##__VA_ARGS__, listener->cbs_data); \ 
  326static inline const char *
 
  333        case SPU_ES: 
return "Subtitle";
 
  334        default: 
return NULL;
 
  397                             int title_offset, 
int chapter_offset);
 
  433                                         const char *str_ids);
 
  475                       bool es_source_is_master,
 
  478                       unsigned frame_rate, 
unsigned frame_rate_base);
 
size_t count
Definition: core.c:403
 
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:300
 
#define VLC_VECTOR(type)
Vector struct body.
Definition: vlc_vector.h:66
 
vlc_vout_order
vout or spu_channel order
Definition: vlc_vout.h:71
 
vlc_player_media_stopped_action
Action when the player is stopped.
Definition: vlc_player.h:96
 
vlc_player_state
State of the player.
Definition: vlc_player.h:244
 
vlc_player_whence
Player seek/delay directive.
Definition: vlc_player.h:317
 
vlc_player_error
Error of the player.
Definition: vlc_player.h:290
 
const char name[16]
Definition: httpd.c:1281
 
static thread_local struct @81 state
 
const char var[sizeof("video")]
Definition: player.c:1743
 
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:311
 
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:297
 
void vlc_player_osd_Tracks(vlc_player_t *player, vlc_es_id_t *const *selected, vlc_es_id_t *unselect)
Definition: osd.c:204
 
static void vlc_player_assert_locked(vlc_player_t *player)
Definition: player.h:301
 
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_PrepareNextMedia(vlc_player_t *player)
Definition: player.c:55
 
void vlc_player_input_SelectTracksByStringIds(struct vlc_player_input *input, enum es_format_category_e cat, const char *str_ids)
Definition: input.c:898
 
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:168
 
int vlc_player_OpenNextMedia(vlc_player_t *player)
Definition: player.c:71
 
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:31
 
void vlc_player_destructor_AddJoinableInput(vlc_player_t *player, struct vlc_player_input *input)
Definition: player.c:182
 
void vlc_player_UpdateTimerState(vlc_player_t *player, vlc_es_id_t *es_source, enum vlc_player_timer_state state, vlc_tick_t system_date)
Definition: timer.c:175
 
void vlc_player_osd_Message(vlc_player_t *player, const char *fmt,...)
Definition: osd.c:89
 
void vlc_player_UpdateMLStates(vlc_player_t *player, struct vlc_player_input *input)
Definition: medialib.c:171
 
char * vlc_player_input_GetSelectedTrackStringIds(struct vlc_player_input *input, enum es_format_category_e cat)
Definition: input.c:906
 
void vlc_player_osd_Position(vlc_player_t *player, struct vlc_player_input *input, vlc_tick_t time, double position, enum vlc_player_whence whence)
Definition: osd.c:120
 
void vlc_player_input_HandleState(struct vlc_player_input *, enum vlc_player_state, vlc_tick_t state_date)
Definition: input.c:129
 
vlc_object_t * vlc_player_GetObject(vlc_player_t *player)
Definition: player.c:2053
 
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)
Definition: timer.c:259
 
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:98
 
int vlc_player_GetTimerPoint(vlc_player_t *player, vlc_tick_t system_now, vlc_tick_t *out_ts, double *out_pos)
Definition: timer.c:401
 
void vlc_player_osd_Track(vlc_player_t *player, vlc_es_id_t *id, bool select)
Definition: osd.c:190
 
double vlc_player_input_GetPos(struct vlc_player_input *input)
Definition: input.c:74
 
int vlc_player_program_Update(struct vlc_player_program *prgm, int id, const char *name)
Definition: track.c:60
 
vlc_player_timer_state
Definition: player.h:207
 
@ VLC_PLAYER_TIMER_STATE_PAUSED
Definition: player.h:209
 
@ VLC_PLAYER_TIMER_STATE_PLAYING
Definition: player.h:208
 
@ VLC_PLAYER_TIMER_STATE_DISCONTINUITY
Definition: player.h:210
 
void vlc_player_DestroyTimer(vlc_player_t *player)
Definition: timer.c:547
 
vlc_tick_t vlc_player_input_GetTime(struct vlc_player_input *input)
Definition: input.c:62
 
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_timer_point vlc_player_input_GetTimerValue(struct vlc_player_input *input)
 
struct vlc_player_input * vlc_player_input_New(vlc_player_t *player, input_item_t *item)
Definition: input.c:938
 
void vlc_player_RemoveTimerSource(vlc_player_t *player, vlc_es_id_t *es_source)
Definition: timer.c:384
 
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:1036
 
void vlc_player_track_priv_Delete(struct vlc_player_track_priv *trackpriv)
Definition: track.c:139
 
void vlc_player_osd_Program(vlc_player_t *player, const char *name)
Definition: osd.c:261
 
void vlc_player_osd_Icon(vlc_player_t *player, short type)
Definition: osd.c:109
 
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:170
 
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:533
 
int vlc_player_input_Start(struct vlc_player_input *input)
Definition: input.c:94
 
static const char * es_format_category_to_string(enum es_format_category_e cat)
Definition: player.h:327
 
vlc_player_timer_source_type
Definition: player.h:166
 
@ VLC_PLAYER_TIMER_TYPE_SMPTE
Definition: player.h:168
 
@ VLC_PLAYER_TIMER_TYPE_COUNT
Definition: player.h:169
 
@ VLC_PLAYER_TIMER_TYPE_BEST
Definition: player.h:167
 
Audio output object.
Definition: vlc_aout.h:155
 
Definition: vlc_atomic.h:46
 
Condition variable.
Definition: vlc_threads.h:322
 
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:98
 
Doubly-linked list node.
Definition: vlc_list.h:44
 
Definition: vlc_media_library.h:640
 
Mutex.
Definition: vlc_threads.h:195
 
VLC object common members.
Definition: vlc_objects.h:45
 
Player aout callbacks.
Definition: vlc_player.h:2290
 
struct vlc_list node
Definition: player.h:162
 
void * cbs_data
Definition: player.h:161
 
const struct vlc_player_aout_cbs * cbs
Definition: player.h:160
 
Player callbacks.
Definition: vlc_player.h:2747
 
struct vlc_list node
Definition: player.h:135
 
const struct vlc_player_cbs * cbs
Definition: player.h:133
 
void * cbs_data
Definition: player.h:134
 
Player program structure.
Definition: vlc_player.h:1179
 
void * media_provider_data
Definition: player.h:243
 
vlc_cond_t wait
Definition: player.h:283
 
bool releasing_media
Definition: player.h:259
 
struct vlc_player_t::@117 destructor
 
enum vlc_player_media_stopped_action media_stopped_action
Definition: player.h:239
 
struct vlc_object_t obj
Definition: player.h:232
 
bool next_media_requested
Definition: player.h:260
 
struct vlc_list joinable_inputs
Definition: player.h:287
 
vlc_mutex_t vout_listeners_lock
Definition: player.h:236
 
vlc_mutex_t metadata_listeners_lock
Definition: player.h:234
 
struct vlc_list listeners
Definition: player.h:248
 
input_item_t * next_media
Definition: player.h:261
 
vlc_thread_t thread
Definition: player.h:282
 
bool started
Definition: player.h:268
 
unsigned eos_burst_count
Definition: player.h:277
 
struct vlc_player_timer timer
Definition: player.h:290
 
vlc_cond_t notify
Definition: player.h:284
 
struct vlc_list stopping_inputs
Definition: player.h:286
 
bool deleting
Definition: player.h:279
 
struct vlc_list aout_listeners
Definition: player.h:250
 
struct vlc_list vout_listeners
Definition: player.h:251
 
struct vlc_list inputs
Definition: player.h:285
 
vlc_mutex_t lock
Definition: player.h:233
 
char * audio_string_ids
Definition: player.h:264
 
bool corked
Definition: player.h:246
 
vlc_mutex_t aout_listeners_lock
Definition: player.h:235
 
input_resource_t * resource
Definition: player.h:253
 
enum vlc_player_state global_state
Definition: player.h:267
 
bool start_paused
Definition: player.h:240
 
char * video_string_ids
Definition: player.h:263
 
vlc_tick_t last_eos
Definition: player.h:276
 
vlc_renderer_item_t * renderer
Definition: player.h:254
 
const struct vlc_player_media_provider * media_provider
Definition: player.h:242
 
char * sub_string_ids
Definition: player.h:265
 
input_item_t * media
Definition: player.h:256
 
vlc_cond_t start_delay_cond
Definition: player.h:237
 
struct vlc_list metadata_listeners
Definition: player.h:249
 
struct vlc_player_input * input
Definition: player.h:257
 
bool pause_on_cork
Definition: player.h:245
 
Player timer callbacks.
Definition: vlc_player.h:3307
 
struct vlc_list node
Definition: player.h:184
 
const struct vlc_player_timer_smpte_cbs * smpte_cbs
Definition: player.h:180
 
vlc_tick_t period
Definition: player.h:174
 
void * data
Definition: player.h:182
 
const struct vlc_player_timer_cbs * cbs
Definition: player.h:179
 
vlc_tick_t last_update_date
Definition: player.h:175
 
Player timer point.
Definition: vlc_player.h:3262
 
double position
Position in the range [0.0f;1.0].
Definition: vlc_player.h:3264
 
vlc_tick_t system_date
System date of this record (always valid), this date can be in the future or in the past.
Definition: vlc_player.h:3277
 
Player smpte timer callbacks.
Definition: vlc_player.h:3347
 
unsigned long last_framenum
Definition: player.h:195
 
unsigned frame_resolution
Definition: player.h:198
 
int df
Definition: player.h:200
 
int frames_per_10mins
Definition: player.h:201
 
struct vlc_player_timer_point point
Definition: player.h:191
 
unsigned frame_rate
Definition: player.h:196
 
unsigned frame_rate_base
Definition: player.h:197
 
struct vlc_list listeners
Definition: player.h:189
 
vlc_es_id_t * es
Definition: player.h:190
 
unsigned df_fps
Definition: player.h:199
 
struct vlc_player_timer_source::@114::@116 smpte
 
vlc_tick_t last_ts
Definition: player.h:222
 
vlc_tick_t input_normal_time
Definition: player.h:221
 
bool seeking
Definition: player.h:218
 
enum vlc_player_timer_state state
Definition: player.h:217
 
struct vlc_player_timer_source sources[VLC_PLAYER_TIMER_TYPE_COUNT]
Definition: player.h:225
 
float input_position
Definition: player.h:223
 
vlc_mutex_t lock
Definition: player.h:215
 
vlc_tick_t input_length
Definition: player.h:220
 
struct vlc_player_title array[]
Definition: player.h:53
 
vlc_atomic_rc_t rc
Definition: player.h:51
 
size_t count
Definition: player.h:52
 
Player title structure.
Definition: vlc_player.h:961
 
bool selected_by_user
Definition: player.h:40
 
struct vlc_player_track t
Definition: player.h:34
 
vout_thread_t * vout
Definition: player.h:35
 
vlc_tick_t delay
Definition: player.h:36
 
enum vlc_vout_order vout_order
Definition: player.h:38
 
Player track structure.
Definition: vlc_player.h:1339
 
Player vout callbacks.
Definition: vlc_player.h:2517
 
struct vlc_list node
Definition: player.h:155
 
void * cbs_data
Definition: player.h:154
 
const struct vlc_player_vout_cbs * cbs
Definition: player.h:153
 
Definition: renderer_discovery.c:36
 
Thread handle.
Definition: vlc_threads.h:160
 
Video output thread descriptor.
Definition: vlc_vout.h:55
 
VLC value structure.
Definition: vlc_common.h:487
 
Atomic operations do not require locking, but they are not very powerful.
 
es_format_category_e
ES Categories.
Definition: vlc_es.h:613
 
@ SPU_ES
Definition: vlc_es.h:617
 
@ DATA_ES
Definition: vlc_es.h:618
 
@ AUDIO_ES
Definition: vlc_es.h:616
 
@ VIDEO_ES
Definition: vlc_es.h:615
 
This provides convenience helpers for linked lists.
 
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
 
This provides convenience helpers for vectors.