VLC  4.0.0-dev
content.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * playlist/content.h
3  *****************************************************************************
4  * Copyright (C) 2018 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
21 #ifndef VLC_PLAYLIST_CONTENT_H
22 #define VLC_PLAYLIST_CONTENT_H
23 
25 typedef struct input_item_t input_item_t;
26 
27 /* called by vlc_playlist_Delete() in playlist.c */
28 void
30 
31 /* expand an item (replace it by the given media array) */
32 int
33 vlc_playlist_Expand(vlc_playlist_t *playlist, size_t index,
34  input_item_t *const media[], size_t count);
35 
36 #endif
vlc_playlist_IndexOf
ssize_t vlc_playlist_IndexOf(vlc_playlist_t *playlist, const vlc_playlist_item_t *item)
Return the index of a given item.
Definition: content.c:196
vlc_player_t
Definition: player.h:227
vlc_timer::value
vlc_tick_t value
Definition: timer.c:66
vlc_player_program::name
const char * name
Program name, always valid.
Definition: vlc_player.h:1179
vlc_playlist::player
vlc_player_t * player
Definition: playlist.h:50
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
vlc_player_t::vout_listeners_lock
vlc_mutex_t vout_listeners_lock
Definition: player.h:233
count
size_t count
Definition: core.c:401
vlc_player_track_vector::size
size_t size
Definition: player.h:46
seekpoint_GetName
static char * seekpoint_GetName(seekpoint_t *seekpoint, int idx, int chapter_offset)
Definition: title.c:85
vlc_timer::lock
vlc_mutex_t lock
Definition: timer.c:63
add_overflow
#define add_overflow(a, b, r)
Overflowing addition.
Definition: vlc_common.h:860
vlc_player_timer_id::data
void * data
Definition: player.h:179
vlc_player_track_priv_New
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
VIDEO_ES
@ VIDEO_ES
Definition: vlc_es.h:603
vlc_player_vout_cbs
Player vout callbacks.
Definition: vlc_player.h:2512
vlc_playlist_state::current
ssize_t current
Definition: notify.h:37
vlc_player_vout_listener_id::cbs_data
void * cbs_data
Definition: player.h:151
vlc_player_title_list_Hold
struct vlc_player_title_list * vlc_player_title_list_Hold(struct vlc_player_title_list *titles)
Hold the title list of the player.
Definition: title.c:31
vlc_playlist
Definition: playlist.h:48
content.h
input_title_t::psz_name
char * psz_name
Definition: vlc_input.h:95
vlc_player_timer_cbs::on_update
void(* on_update)(const struct vlc_player_timer_point *value, void *data)
Called when the state or the time changed.
Definition: vlc_player.h:3321
vlc_playlist_ComputeHasNext
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
vlc_player_timer_point_GetNextIntervalDate
vlc_tick_t vlc_player_timer_point_GetNextIntervalDate(const struct vlc_player_timer_point *point, vlc_tick_t system_now, vlc_tick_t interpolated_ts, vlc_tick_t next_interval)
Get the date of the next interval.
Definition: timer.c:515
vlc_player_program_Update
int vlc_player_program_Update(struct vlc_player_program *prgm, int id, const char *name)
Definition: track.c:60
vlc_es_id_Release
void vlc_es_id_Release(vlc_es_id_t *id)
Decrease the ES track id reference count.
Definition: es_out.c:4514
vlc_player_timer_point::position
float position
Position in the range [0.0f;1.0].
Definition: vlc_player.h:3259
vlc_player_track_Dup
struct vlc_player_track * vlc_player_track_Dup(const struct vlc_player_track *src)
Duplicate a track.
Definition: track.c:157
vlc_player_vout_listener_id::cbs
const struct vlc_player_vout_cbs * cbs
Definition: player.h:150
vlc_player_timer_smpte_timecode::minutes
unsigned minutes
Minutes [0;59].
Definition: vlc_player.h:3285
vlc_player_title_list::array
struct vlc_player_title array[]
Definition: player.h:53
control.h
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
var_DelCallback
void() var_DelCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Deregisters a callback from a variable.
Definition: variables.c:854
vlc_playlist_state_NotifyChanges
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
vlc_player_timer_id::last_update_date
vlc_tick_t last_update_date
Definition: player.h:172
vlc_player_program::selected
bool selected
True if the program is selected.
Definition: vlc_player.h:1181
input_title_t::i_seekpoint
int i_seekpoint
Definition: vlc_input.h:102
vlc_common.h
vlc_player_timer_source::frame_rate
unsigned frame_rate
Definition: player.h:193
vlc_playlist_ClearItems
void vlc_playlist_ClearItems(vlc_playlist_t *playlist)
Definition: content.c:34
vlc_player_title
Player title structure.
Definition: vlc_player.h:956
vlc_player_program_Dup
struct vlc_player_program * vlc_player_program_Dup(const struct vlc_player_program *src)
Duplicate a program.
Definition: track.c:69
vlc_player_track_Delete
void vlc_player_track_Delete(struct vlc_player_track *track)
Delete a duplicated track.
Definition: track.c:149
vlc_player_program::group_id
int group_id
Id used for vlc_player_SelectProgram()
Definition: vlc_player.h:1177
vlc_player_program::scrambled
bool scrambled
True if the program is scrambled.
Definition: vlc_player.h:1183
notify.h
vlc_player_program_New
struct vlc_player_program * vlc_player_program_New(int id, const char *name)
Definition: track.c:42
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
vlc_player_title_list_Release
void vlc_player_title_list_Release(struct vlc_player_title_list *titles)
Release of previously held title list.
Definition: title.c:38
vlc_player_title::chapter_count
size_t chapter_count
Number of chapters, can be 0.
Definition: vlc_player.h:966
vlc_player_timer_smpte_timecode::hours
unsigned hours
Hours [0;n].
Definition: vlc_player.h:3283
item.h
vlc_timer::reschedule
vlc_cond_t reschedule
Definition: timer.c:62
es_format_t::i_id
int i_id
es identifier, where means -1: let the core mark the right id >=0: valid id
Definition: vlc_es.h:623
input_resource_HoldDummyVout
vout_thread_t * input_resource_HoldDummyVout(input_resource_t *p_resource)
This function returns the dummy vout.
Definition: resource.c:524
vlc_list_init
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
vlc_player_timer_state
vlc_player_timer_state
Definition: player.h:203
vlc_atomic_rc_dec
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:61
vlc_playlist_IndexOfId
ssize_t vlc_playlist_IndexOfId(vlc_playlist_t *playlist, uint64_t id)
Return the index of a given item id.
Definition: content.c:218
vlc_player_program_vector
Definition: player.h:43
vlc_player_timer_source::frame_rate_base
unsigned frame_rate_base
Definition: player.h:194
resource.h
vlc_player_vout_HoldAll
vout_thread_t ** vlc_player_vout_HoldAll(vlc_player_t *player, size_t *count)
Get and hold the list of video output.
Definition: vout.c:50
vlc_player_timer::input_normal_time
vlc_tick_t input_normal_time
Definition: player.h:218
var_AddCallback
void() var_AddCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Registers a callback for a variable.
Definition: variables.c:801
vlc_playlist_MediaToItems
static int vlc_playlist_MediaToItems(vlc_playlist_t *playlist, input_item_t *const media[], size_t count, vlc_playlist_item_t *items[])
Definition: content.c:242
seekpoint_t::psz_name
char * psz_name
Definition: vlc_input.h:56
vlc_cond_wait
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
VLC_VAR_BOOL
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
vlc_player_title::name
const char * name
Title name, always valid.
Definition: vlc_player.h:959
seekpoint_t
Definition: vlc_input.h:51
MS_FROM_VLC_TICK
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
vlc_timer_getoverrun
unsigned vlc_timer_getoverrun(vlc_timer_t timer)
Fetches and resets the overrun counter for a timer.
Definition: timer.c:159
vlc_player_SendTimerSourceUpdates
static void vlc_player_SendTimerSourceUpdates(vlc_player_t *player, struct vlc_player_timer_source *source, bool force_update, const struct vlc_player_timer_point *point)
Definition: timer.c:45
vlc_player_track_priv_Update
int vlc_player_track_priv_Update(struct vlc_player_track_priv *trackpriv, const char *name, const es_format_t *fmt)
Definition: track.c:169
vlc_player_timer_smpte_cbs
Player smpte timer callbacks.
Definition: vlc_player.h:3341
vout_Release
void vout_Release(vout_thread_t *vout)
Definition: video_output.c:1906
es_format_Clean
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:509
VLC_PLAYER_TIMER_STATE_DISCONTINUITY
@ VLC_PLAYER_TIMER_STATE_DISCONTINUITY
Definition: player.h:207
vlc_player_timer_point::length
vlc_tick_t length
Valid length >= VLC_TICK_0 or VLC_TICK_INVALID.
Definition: vlc_player.h:3266
_
#define _(str)
Definition: vlc_fixups.h:374
vlc_playlist_item::media
input_item_t * media
Definition: item.h:31
vlc_player_track
Player track structure.
Definition: vlc_player.h:1334
vlc_player_title_list::rc
vlc_atomic_rc_t rc
Definition: player.h:51
vlc_player_InvalidateNextMedia
void vlc_player_InvalidateNextMedia(vlc_player_t *player)
Invalidate the next media.
Definition: player.c:1123
vlc_player_track_priv_Delete
void vlc_player_track_priv_Delete(struct vlc_player_track_priv *trackpriv)
Definition: track.c:139
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
var_SetChecked
int() var_SetChecked(vlc_object_t *p_this, const char *psz_name, int expected_type, vlc_value_t val)
Definition: variables.c:676
vlc_player_title::chapters
const struct vlc_player_chapter * chapters
Array of chapters, can be NULL.
Definition: vlc_player.h:968
vlc_player_vout_Snapshot
void vlc_player_vout_Snapshot(vlc_player_t *player)
Take a snapshot on all vouts.
Definition: vout.c:206
vlc_playlist_item
Definition: item.h:29
vlc_player_program_DupTitle
static char * vlc_player_program_DupTitle(int id, const char *title)
Definition: track.c:31
vlc_timer
Definition: thread.c:825
vlc_timer::handle
HANDLE handle
Definition: timer.c:50
vlc_timer::thread
vlc_thread_t thread
Definition: timer.c:61
vlc_player_track_vector::data
struct vlc_player_track_priv ** data
Definition: player.h:46
input_title_t::i_length
vlc_tick_t i_length
Definition: vlc_input.h:97
VLC_TIMER_DISARM
#define VLC_TIMER_DISARM
Definition: vlc_threads.h:937
vlc_player_track::name
const char * name
Track name, always valid.
Definition: vlc_player.h:1339
vlc_playlist_Expand
int vlc_playlist_Expand(vlc_playlist_t *playlist, size_t index, input_item_t *const media[], size_t count)
Definition: content.c:353
asprintf
int asprintf(char **, const char *,...)
vlc_player_track_priv::selected_by_user
bool selected_by_user
Definition: player.h:58
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
playlist_item_vector_t::size
size_t size
Definition: playlist.h:46
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
vlc_player_timer_smpte_cbs::on_update
void(* on_update)(const struct vlc_player_timer_smpte_timecode *tc, void *data)
Called when a new frame is displayed.
Definition: vlc_player.h:3353
vlc_player_program_vector_FindById
struct vlc_player_program * vlc_player_program_vector_FindById(vlc_player_program_vector *vec, int id, size_t *idx)
Definition: track.c:89
vlc_player_vout_listener_id::node
struct vlc_list node
Definition: player.h:152
VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM
@ VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM
Definition: vlc_playlist.h:126
vlc_player_timer_point_Interpolate
int vlc_player_timer_point_Interpolate(const struct vlc_player_timer_point *point, vlc_tick_t system_now, vlc_tick_t *out_ts, float *out_pos)
Interpolate the last timer value to now.
Definition: timer.c:474
MSTRTIME_MAX_SIZE
#define MSTRTIME_MAX_SIZE
Definition: vlc_tick.h:198
vlc_player_vout_SetWallpaperModeEnabled
void vlc_player_vout_SetWallpaperModeEnabled(vlc_player_t *player, bool enabled)
Enable or disable the player wallpaper-mode.
Definition: vout.c:198
input_title_GetName
static char * input_title_GetName(const struct input_title_t *input_title, int idx, int title_offset)
Definition: title.c:59
vlc_timer_do
static void CALLBACK vlc_timer_do(void *val, BOOLEAN timeout)
Definition: timer.c:37
var_TriggerCallback
void() var_TriggerCallback(vlc_object_t *p_this, const char *psz_name)
Triggers callbacks on a variable.
Definition: variables.c:864
vlc_player_track_priv::vout
vout_thread_t * vout
Definition: player.h:53
vlc_timer_schedule
void vlc_timer_schedule(vlc_timer_t timer, bool absolute, vlc_tick_t value, vlc_tick_t interval)
Arms or disarms an initialized timer.
Definition: timer.c:143
vlc_clone
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
VLC_VOUT_ORDER_NONE
@ VLC_VOUT_ORDER_NONE
Definition: vlc_vout.h:72
vlc_playlist_ItemsRemoving
static void vlc_playlist_ItemsRemoving(vlc_playlist_t *playlist, size_t index, size_t count)
Definition: content.c:125
vlc_playlist::has_prev
bool has_prev
Definition: playlist.h:58
vlc_playlist_RemoveOne
static void vlc_playlist_RemoveOne(vlc_playlist_t *playlist, size_t index)
Remove an item at a given index.
Definition: vlc_playlist.h:544
vlc_value_t::b_bool
bool b_bool
Definition: vlc_common.h:460
vlc_playlist_Insert
int vlc_playlist_Insert(vlc_playlist_t *playlist, size_t index, input_item_t *const media[], size_t count)
Insert a list of media at a given index.
Definition: content.c:265
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
input_title_t::i_flags
unsigned i_flags
Definition: vlc_input.h:99
preparse.h
SEC_FROM_VLC_TICK
#define SEC_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:53
vlc_player_timer::lock
vlc_mutex_t lock
Definition: player.h:212
randomizer_Add
bool randomizer_Add(struct randomizer *r, vlc_playlist_item_t *items[], size_t count)
Add items to the randomizer.
Definition: randomizer.c:424
vlc_player_vout_TriggerOption
static void vlc_player_vout_TriggerOption(vlc_player_t *player, const char *option)
Definition: vout.c:170
vlc_player_GetTimerPoint
int vlc_player_GetTimerPoint(vlc_player_t *player, vlc_tick_t system_now, vlc_tick_t *out_ts, float *out_pos)
Definition: timer.c:400
vlc_player_program
Player program structure.
Definition: vlc_player.h:1174
vlc_player_vout_listener_id
Definition: player.h:148
vlc_tick_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
vlc_playlist_ClearItems
void vlc_playlist_ClearItems(vlc_playlist_t *playlist)
Definition: content.c:34
osd_vars
static const char osd_vars[][sizeof("secondary-sub-margin")]
Definition: vout.c:133
vlc_playlist::current
ssize_t current
Definition: playlist.h:57
vlc_timer::interval
ULONG interval
Definition: thread.c:830
vlc_player_SetCurrentMedia
int vlc_player_SetCurrentMedia(vlc_player_t *player, input_item_t *media)
Set the current media.
Definition: player.c:1000
vlc_player_vout_RemoveListener
void vlc_player_vout_RemoveListener(vlc_player_t *player, vlc_player_vout_listener_id *id)
Remove a vout listener callback.
Definition: vout.c:89
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
es_format_t
Definition: vlc_es.h:617
vlc_player_timer_id::node
struct vlc_list node
Definition: player.h:181
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_playlist_Expand
int vlc_playlist_Expand(vlc_playlist_t *playlist, size_t index, input_item_t *const media[], size_t count)
Definition: content.c:353
vlc_playlist_ComputeHasPrev
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
vlc_list_remove
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
vlc_playlist_state
Definition: notify.h:36
vlc_player_timer_source
Definition: player.h:184
vlc_list_append
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
vlc_playlist_AutoPreparse
void vlc_playlist_AutoPreparse(vlc_playlist_t *playlist, input_item_t *input)
Definition: preparse.c:131
vlc_player_vout_OSDCallback
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:281
vlc_player_vout_IsFullscreen
bool vlc_player_vout_IsFullscreen(vlc_player_t *player)
Check if the player is fullscreen.
Definition: vout.c:101
vlc_player_SendSmpteTimerSourceUpdates
static void vlc_player_SendSmpteTimerSourceUpdates(vlc_player_t *player, struct vlc_player_timer_source *source, const struct vlc_player_timer_point *point)
Definition: timer.c:69
vlc_playlist_IndexOfMedia
ssize_t vlc_playlist_IndexOfMedia(vlc_playlist_t *playlist, const input_item_t *media)
Return the index of a given media.
Definition: content.c:206
vlc_playlist_Remove
void vlc_playlist_Remove(vlc_playlist_t *playlist, size_t index, size_t count)
Remove a slice of items at a given index.
Definition: content.c:306
vlc_player_timer_smpte_timecode::drop_frame
bool drop_frame
True if the source is NTSC 29.97fps or 59.94fps DF.
Definition: vlc_player.h:3293
vlc_player_title_list_GetAt
const struct vlc_player_title * vlc_player_title_list_GetAt(struct vlc_player_title_list *titles, size_t idx)
Get the title at a given index.
Definition: title.c:164
vlc_player_vout_SetFullscreen
void vlc_player_vout_SetFullscreen(vlc_player_t *player, bool enabled)
Enable or disable the player fullscreen state.
Definition: vout.c:181
randomizer_Remove
void randomizer_Remove(struct randomizer *r, vlc_playlist_item_t *const items[], size_t count)
Remove items from the randomizer.
Definition: randomizer.c:528
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
vlc_player_timer_point::system_date
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:3272
vlc_list_is_empty
static bool vlc_list_is_empty(const struct vlc_list *head)
Checks if a list is empty.
Definition: vlc_list.h:167
vlc_player_UpdateTimerSource
static void vlc_player_UpdateTimerSource(vlc_player_t *player, struct vlc_player_timer_source *source, double rate, vlc_tick_t ts, vlc_tick_t system_date)
Definition: timer.c:232
VLC_PLAYER_TIMER_TYPE_COUNT
@ VLC_PLAYER_TIMER_TYPE_COUNT
Definition: player.h:166
vlc_player_t::timer
struct vlc_player_timer timer
Definition: player.h:280
vlc_player_timer_source::smpte
struct vlc_player_timer_source::@109::@111 smpte
vlc_player_vout_AddCallbacks
void vlc_player_vout_AddCallbacks(vlc_player_t *player, vout_thread_t *vout)
Definition: vout.c:140
vlc_player_title::flags
unsigned flags
Bit flag of VLC_PLAYER_TITLE_MENU and VLC_PLAYER_TITLE_INTERACTIVE.
Definition: vlc_player.h:964
vlc_player_UpdateSmpteTimerFPS
static void vlc_player_UpdateSmpteTimerFPS(vlc_player_t *player, struct vlc_player_timer_source *source, unsigned frame_rate, unsigned frame_rate_base)
Definition: timer.c:137
vlc_playlist_ItemsReset
static void vlc_playlist_ItemsReset(vlc_playlist_t *playlist)
Definition: content.c:43
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
vlc_player_program_Delete
void vlc_player_program_Delete(struct vlc_player_program *prgm)
Delete a duplicated program.
Definition: track.c:82
vlc_player_timer_id
Definition: player.h:169
vlc_player_track::es_id
vlc_es_id_t * es_id
Id used for any player actions, like vlc_player_SelectEsId()
Definition: vlc_player.h:1337
VLC_PLAYER_TIMER_STATE_PAUSED
@ VLC_PLAYER_TIMER_STATE_PAUSED
Definition: player.h:206
vlc_player_timer::sources
struct vlc_player_timer_source sources[VLC_PLAYER_TIMER_TYPE_COUNT]
Definition: player.h:222
vlc_timer::func
void(* func)(void *)
Definition: thread.c:832
vlc_player_track_priv
Definition: player.h:32
vlc_player_title_list_Create
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
vlc_player_timer_id::period
vlc_tick_t period
Definition: player.h:171
vlc_playlist::order
enum vlc_playlist_playback_order order
Definition: playlist.h:62
player.h
vlc_timer::live
bool live
Definition: timer.c:67
vlc_player_timer_point::rate
double rate
Rate of the player.
Definition: vlc_player.h:3261
vlc_player_chapter
Player chapter structure.
Definition: vlc_player.h:942
vlc_playlist_ItemsMoved
static void vlc_playlist_ItemsMoved(vlc_playlist_t *playlist, size_t index, size_t count, size_t target)
Definition: content.c:87
vlc_vector_remove_slice
#define vlc_vector_remove_slice(pv, index, count)
Remove a slice of items.
Definition: vlc_vector.h:549
vlc_player_vout_IsWallpaperModeEnabled
bool vlc_player_vout_IsWallpaperModeEnabled(vlc_player_t *player)
Check if the player has wallpaper-mode enaled.
Definition: vout.c:189
input_title_t
Definition: vlc_input.h:93
vlc_playlist_AssertLocked
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
vlc_es_id_GetCat
enum es_format_category_e vlc_es_id_GetCat(vlc_es_id_t *id)
Get the ES category.
Definition: es_out.c:4538
vlc_es_id_t
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:94
vlc_player_UpdateTimerState
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
vlc_playlist_item::id
uint64_t id
Definition: item.h:32
vlc_player_track_priv::t
struct vlc_player_track t
Definition: player.h:52
vlc_player_track_vector
Definition: player.h:46
vlc_player_DestroyTimer
void vlc_player_DestroyTimer(vlc_player_t *player)
Definition: timer.c:546
container_of
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
vlc_playlist_Notify
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
vlc_player_timer_smpte_timecode::seconds
unsigned seconds
Seconds [0;59].
Definition: vlc_player.h:3287
randomizer_Clear
void randomizer_Clear(struct randomizer *r)
Clear the randomizer.
Definition: randomizer.c:538
vlc_player_timer_id::cbs
const struct vlc_player_timer_cbs * cbs
Definition: player.h:176
vlc_playlist_Move
void vlc_playlist_Move(vlc_playlist_t *playlist, size_t index, size_t count, size_t target)
Move a slice of items to a given target index.
Definition: content.c:292
vlc_playlist_Get
vlc_playlist_item_t * vlc_playlist_Get(vlc_playlist_t *playlist, size_t index)
Return the item at a given index.
Definition: content.c:189
playlist_item_vector_t::data
vlc_playlist_item_t ** data
Definition: playlist.h:46
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
vlc_player_vout_SetVar
static void vlc_player_vout_SetVar(vlc_player_t *player, const char *name, int type, vlc_value_t val)
Definition: vout.c:160
vlc_vector_clear
#define vlc_vector_clear(pv)
Clear a vector.
Definition: vlc_vector.h:101
vlc_player_timer_id::smpte_cbs
const struct vlc_player_timer_smpte_cbs * smpte_cbs
Definition: player.h:177
vlc_player_title::length
vlc_tick_t length
Length of the title.
Definition: vlc_player.h:961
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
VLC_THREAD_PRIORITY_INPUT
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:208
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
vlc_vector_index_of
#define vlc_vector_index_of(pv, item, pidx)
Return the index of an item.
Definition: vlc_vector.h:615
vlc_player_title_list::count
size_t count
Definition: player.h:52
vlc_player_UpdateTimer
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
vlc_playlist_item_New
vlc_playlist_item_t * vlc_playlist_item_New(input_item_t *media, uint64_t id)
Definition: item.c:31
vlc_player_timer_source::point
struct vlc_player_timer_point point
Definition: player.h:188
vlc_player_track_priv::vout_order
enum vlc_vout_order vout_order
Definition: player.h:56
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_timer::overruns
atomic_uint overruns
Definition: timer.c:68
vlc_player_AddTimer
vlc_player_timer_id * vlc_player_AddTimer(vlc_player_t *player, vlc_tick_t min_period, const struct vlc_player_timer_cbs *cbs, void *data)
Add a timer in order to get times updates.
Definition: timer.c:418
vlc_player_t::resource
input_resource_t * resource
Definition: player.h:250
vlc_player_InitTimer
void vlc_player_InitTimer(vlc_player_t *player)
Definition: timer.c:532
strdup
char * strdup(const char *)
vlc_player_title_list_GetCount
size_t vlc_player_title_list_GetCount(struct vlc_player_title_list *titles)
Get the number of title of a list.
Definition: title.c:171
vlc_timer_thread
static void * vlc_timer_thread(void *data)
Definition: timer.c:53
vlc_playlist::has_next
bool has_next
Definition: playlist.h:59
vlc_player_chapter::name
const char * name
Chapter name, always valid.
Definition: vlc_player.h:945
vlc_player_timer::last_ts
vlc_tick_t last_ts
Definition: player.h:219
VLC_TICK_FROM_SEC
#define VLC_TICK_FROM_SEC(sec)
Definition: vlc_tick.h:52
vlc_es_id_Hold
vlc_es_id_t * vlc_es_id_Hold(vlc_es_id_t *id)
Increase the ES track id reference count.
Definition: es_out.c:4507
vlc_player_program_vector::data
struct vlc_player_program ** data
Definition: player.h:43
var_GetBool
static bool var_GetBool(vlc_object_t *p_obj, const char *psz_name)
Get a boolean value.
Definition: vlc_variables.h:390
vlc_player_timer_point::ts
vlc_tick_t ts
Valid time >= VLC_TICK_0 or VLC_TICK_INVALID, subtract this time with VLC_TICK_0 to get the original ...
Definition: vlc_player.h:3264
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
vlc_timer_destroy
void vlc_timer_destroy(vlc_timer_t timer)
Destroys an initialized timer.
Definition: timer.c:132
vlc_player_ResetTimer
void vlc_player_ResetTimer(vlc_player_t *player)
Definition: timer.c:30
vlc_player_track::selected
bool selected
True if the track is selected.
Definition: vlc_player.h:1343
name
const char name[16]
Definition: httpd.c:1268
vlc_cond_t
Condition variable.
Definition: vlc_threads.h:349
VLC_TICK_0
#define VLC_TICK_0
Definition: vlc_config.h:45
vlc_player_t::vout_listeners
struct vlc_list vout_listeners
Definition: player.h:248
vlc_player_title_list
Definition: player.h:49
vlc_player_AddSmpteTimer
vlc_player_timer_id * vlc_player_AddSmpteTimer(vlc_player_t *player, const struct vlc_player_timer_smpte_cbs *cbs, void *data)
Add a smpte timer in order to get accurate video frame updates.
Definition: timer.c:440
vlc_player_RemoveTimerSource
void vlc_player_RemoveTimerSource(vlc_player_t *player, vlc_es_id_t *es_source)
Definition: timer.c:383
vlc_playlist_state_Save
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
vlc_playlist::idgen
uint64_t idgen
Definition: playlist.h:63
input_resource_HoldVouts
void input_resource_HoldVouts(input_resource_t *p_resource, vout_thread_t ***ppp_vout, size_t *pi_vout)
This function returns all current vouts if any.
Definition: resource.c:529
vlc_list_foreach
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
vlc_player_chapter::time
vlc_tick_t time
Position of this chapter.
Definition: vlc_player.h:947
vlc_playlist_ItemsRemoved
static bool vlc_playlist_ItemsRemoved(vlc_playlist_t *playlist, size_t index, size_t count)
Definition: content.c:134
vlc_player_timer_smpte_timecode
Player smpte timecode.
Definition: vlc_player.h:3280
VLC_PLAYER_TIMER_STATE_PLAYING
@ VLC_PLAYER_TIMER_STATE_PLAYING
Definition: player.h:205
vlc_player_timer_smpte_timecode::frame_resolution
unsigned frame_resolution
Maximum number of digits needed to display the frame number.
Definition: vlc_player.h:3291
vlc_playlist_Replace
static int vlc_playlist_Replace(vlc_playlist_t *playlist, size_t index, input_item_t *media)
Definition: content.c:327
vlc_playlist_Clear
void vlc_playlist_Clear(vlc_playlist_t *playlist)
Clear the playlist.
Definition: content.c:230
vlc_playlist::randomizer
struct randomizer randomizer
Definition: playlist.h:56
input_resource_HoldVout
vout_thread_t * input_resource_HoldVout(input_resource_t *p_resource)
This function returns one of the current vout if any.
Definition: resource.c:510
vlc_vector_move_slice
#define vlc_vector_move_slice(pv, index, count, target)
Move a slice of items to a given target index.
Definition: vlc_vector.h:490
vlc_player_GetFirstSelectedTrackId
int vlc_player_GetFirstSelectedTrackId(const vlc_player_track_vector *tracks)
Definition: track.c:212
vlc_player_vout_SendEvent
#define vlc_player_vout_SendEvent(player, event,...)
Definition: vout.c:31
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
seekpoint_t::i_time_offset
vlc_tick_t i_time_offset
Definition: vlc_input.h:55
vlc_playlist_SetCurrentMedia
int vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:152
vlc_player_timer_source::listeners
struct vlc_list listeners
Definition: player.h:186
playlist_item_vector_t
Definition: playlist.h:46
mul_overflow
#define mul_overflow(a, b, r)
Overflowing multiplication.
Definition: vlc_common.h:934
playlist.h
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:55
vlc_player_track_vector_FindById
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
vlc_playlist::items
playlist_item_vector_t items
Definition: playlist.h:55
vlc_player_track::fmt
es_format_t fmt
Es format.
Definition: vlc_player.h:1341
vlc_playlist_ItemReplaced
static void vlc_playlist_ItemReplaced(vlc_playlist_t *playlist, size_t index)
Definition: content.c:166
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
vlc_cond_timedwait
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
input_title_t::seekpoint
seekpoint_t ** seekpoint
Definition: vlc_input.h:103
state
static thread_local struct @76 state
vlc_player_timer::state
enum vlc_player_timer_state state
Definition: player.h:214
vlc_atomic_rc_init
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
vlc_player_timer_point
Player timer point.
Definition: vlc_player.h:3256
vlc_join
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
vlc_player_timer_smpte_timecode::frames
unsigned frames
Frame number [0;n].
Definition: vlc_player.h:3289
vlc_player_track_priv::delay
vlc_tick_t delay
Definition: player.h:54
vlc_value_t
VLC value structure.
Definition: vlc_common.h:457
vlc_player_program_vector::size
size_t size
Definition: player.h:43
vlc_player_timer_cbs
Player timer callbacks.
Definition: vlc_player.h:3301
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vlc_player_timer_cbs::on_discontinuity
void(* on_discontinuity)(vlc_tick_t system_date, void *data)
The player is paused or a discontinuity occurred, likely caused by seek from the user or because the ...
Definition: vlc_player.h:3333
vlc_player_vout_AddListener
vlc_player_vout_listener_id * vlc_player_vout_AddListener(vlc_player_t *player, const struct vlc_player_vout_cbs *cbs, void *cbs_data)
Add a listener callback for video output events.
Definition: vout.c:68
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:436
var
const char var[sizeof("video")]
Definition: player.c:1732
vlc_player_VoutCallback
static int vlc_player_VoutCallback(vlc_object_t *this, const char *var, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition: vout.c:110
vlc_player_vout_Hold
vout_thread_t * vlc_player_vout_Hold(vlc_player_t *player)
Get and hold the main video output.
Definition: vout.c:43
vlc_player_timer_source::es
vlc_es_id_t * es
Definition: player.h:187
vlc_playlist_Count
size_t vlc_playlist_Count(vlc_playlist_t *playlist)
Return the number of items.
Definition: content.c:182
vlc_timer_create
int vlc_timer_create(vlc_timer_t *id, void(*func)(void *), void *data)
Initializes an asynchronous timer.
Definition: timer.c:105
vlc_player_timer::input_length
vlc_tick_t input_length
Definition: player.h:217
vlc_timer::data
void * data
Definition: thread.c:833
vlc_playlist_ItemsInserted
static void vlc_playlist_ItemsInserted(vlc_playlist_t *playlist, size_t index, size_t count)
Definition: content.c:61
vlc_player_RemoveTimer
void vlc_player_RemoveTimer(vlc_player_t *player, vlc_player_timer_id *timer)
Remove a player timer.
Definition: timer.c:462
secstotimestr
char * secstotimestr(char *psz_buffer, int32_t i_seconds)
Convert seconds to a time in the format h:mm:ss.
Definition: mtime.c:41
vlc_vector_insert_hole
#define vlc_vector_insert_hole(pv, index, count)
Insert an hole of size count to the given index.
Definition: vlc_vector.h:357
vlc_player_vout_DelCallbacks
void vlc_player_vout_DelCallbacks(vlc_player_t *player, vout_thread_t *vout)
Definition: vout.c:150
vlc_vector_foreach
#define vlc_vector_foreach(item, pv)
For-each loop.
Definition: vlc_vector.h:637
vlc_playlist_item_Release
void vlc_playlist_item_Release(vlc_playlist_item_t *item)
Release a playlist item.
Definition: item.c:51
vlc_player_timer::input_position
float input_position
Definition: player.h:220