Go to the documentation of this file.
25 #ifndef LIBVLC_INPUT_CLOCK_H
26 #define LIBVLC_INPUT_CLOCK_H 1
59 bool b_can_pace_control,
bool b_buffering_allowed,
const char * psz_password
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:175
arg1= bool * res=cannot fail
Definition: vlc_stream.h:142
#define vlc_module_begin()
Definition: vlc_plugin.h:253
Definition: vlc_configuration.h:121
mtime_t input_clock_GetWakeup(input_clock_t *cl)
This functions will return a deadline used to control the reading speed.
Definition: clock.c:380
input_clock_t * input_clock_New(int i_rate)
This function creates a new input_clock_t.
Definition: clock.c:188
res=can fail
Definition: vlc_stream.h:146
void input_clock_Delete(input_clock_t *)
This function destroys a input_clock_t created by input_clock_New.
Definition: clock.c:222
void vlc_credential_init(vlc_credential *p_credential, const vlc_url_t *p_url)
Init a credential struct.
Definition: keystore.c:344
ssize_t vlc_stream_ReadPartial(stream_t *s, void *buf, size_t len)
Reads partial data from a byte stream.
Definition: stream.c:431
uint32_t i_value
Definition: vlc_text_style.h:215
stream_t * vlc_access_NewMRL(vlc_object_t *parent, const char *mrl)
Opens a new read-only byte stream.
Definition: access.c:145
int vlc_stream_vaControl(stream_t *s, int cmd, va_list args)
Use to control the "stream_t *".
Definition: stream.c:655
static void Close(vlc_object_t *obj)
Definition: access.c:277
struct vlc_http_resource * resource
Definition: access.c:61
Definition: vlc_configuration.h:133
static char * config_GetAppDir(void)
Definition: dirs.c:224
This structure holds long term average.
Definition: clock.c:107
void stream_CommonDelete(stream_t *s)
Definition: stream.c:101
bool vlc_http_file_can_seek(struct vlc_http_resource *res)
Checks seeking support.
Definition: file.c:195
#define VLC_ACCESS_REDIRECT
Special redirection error code.
Definition: vlc_access.h:45
static mtime_t ClockStreamToSystem(input_clock_t *, mtime_t i_stream)
Definition: clock.c:592
static void AvgRescale(average_t *, int i_divider)
Definition: clock.c:654
block_t * vlc_http_live_read(struct vlc_http_resource *res)
Definition: live.c:74
#define FromLocaleDup
Definition: vlc_charset.h:252
static mtime_t ClockSystemToStream(input_clock_t *, mtime_t i_system)
Definition: clock.c:605
char * vlc_http_res_get_redirect(struct vlc_http_resource *restrict res)
Definition: resource.c:247
bool b_preparsing
True if this access is used to preparse.
Definition: vlc_stream.h:57
int i_divider
Definition: clock.c:114
block_t *(* pf_block)(stream_t *, bool *eof)
Read data block.
Definition: vlc_stream.h:95
Definition: vlc_configuration.h:129
static int NoSeek(stream_t *access, uint64_t pos)
Definition: access.c:123
size_t i_buffer
Payload length.
Definition: vlc_block.h:116
int access_vaDirectoryControlHelper(stream_t *p_access, int i_query, va_list args)
Default pf_control callback for directory accesses.
Definition: access.c:152
#define vlc_http_live_get_type
Definition: live.h:37
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
int vlc_pipe(int fds[2])
Creates a pipe (see "man pipe" for further reference).
Definition: filesystem.c:263
void stats_Update(counter_t *p_counter, uint64_t val, uint64_t *new_val)
Update a counter element with new values.
Definition: stats.c:157
#define set_callbacks(activate, deactivate)
Definition: vlc_plugin.h:304
bool vlc_stream_Eof(const stream_t *s)
Checks for end of stream.
Definition: stream.c:586
char * vlc_uri2path(const char *url)
Converts a URI to a local path.
Definition: url.c:240
#define CR_MAX_GAP
Definition: clock.c:82
mtime_t input_clock_GetJitter(input_clock_t *cl)
This function returns an estimation of the pts_delay needed to avoid rebufferization.
Definition: clock.c:568
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
struct vlc_http_mgr * vlc_http_mgr_create(vlc_object_t *obj, struct vlc_http_cookie_jar_t *jar)
Creates an HTTP connection manager.
Definition: connmgr.c:266
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: netconf.c:44
stream_t * stream_FilterChainNew(stream_t *source, const char *list)
Builds an explicit chain of stream filters.
Definition: stream_filter.c:86
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
void vlc_http_res_destroy(struct vlc_http_resource *res)
Destroys an HTTP resource.
Definition: resource.c:161
mtime_t input_clock_GetJitter(input_clock_t *)
This function returns an estimation of the pts_delay needed to avoid rebufferization.
Definition: clock.c:568
Definition: vlc_configuration.h:131
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
#define set_shortname(shortname)
Definition: vlc_plugin.h:287
uintmax_t vlc_http_file_get_size(struct vlc_http_resource *res)
Gets file size.
Definition: file.c:177
void input_clock_GetSystemOrigin(input_clock_t *, mtime_t *pi_system, mtime_t *pi_delay)
This function returns the original system value date and the delay for the current reference point (a...
Definition: clock.c:515
#define _(str)
Definition: vlc_fixups.h:371
char * psz_password
Definition: vlc_url.h:149
void input_clock_Reset(input_clock_t *)
This function will reset the drift of a input_clock_t.
Definition: clock.c:326
static int FileSeek(stream_t *access, uint64_t pos)
Definition: access.c:57
mtime_t i_system
Definition: clock.c:127
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
arg1= bool res=can fail
Definition: vlc_stream.h:158
static char * getenv(const char *name)
Definition: vlc_fixups.h:293
Definition: vlc_configuration.h:126
static block_t * FileRead(stream_t *access, bool *restrict eof)
Definition: access.c:47
int vlc_http_res_set_login(struct vlc_http_resource *res, const char *username, const char *password)
Definition: resource.c:330
int input_clock_GetState(input_clock_t *cl, mtime_t *pi_stream_start, mtime_t *pi_system_start, mtime_t *pi_stream_duration, mtime_t *pi_system_duration)
This function returns current clock state or VLC_EGENERIC if there is not a reference point.
Definition: clock.c:466
#define config_GetPsz(a, b)
Definition: vlc_configuration.h:146
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
#define set_category(i_id)
Definition: vlc_plugin.h:355
#define change_safe()
Definition: vlc_plugin.h:502
int asprintf(char **, const char *,...)
struct vlc_http_mgr * manager
Definition: access.c:60
int input_clock_ConvertTS(vlc_object_t *, input_clock_t *, int *pi_rate, mtime_t *pi_ts0, mtime_t *pi_ts1, mtime_t i_ts_bound)
This function converts a pair of timestamp from stream clock to system clock.
Definition: clock.c:397
Definition: vlc_configuration.h:127
#define set_description(desc)
Definition: vlc_plugin.h:291
const char * psz_location
Location (URL with the scheme stripped)
Definition: vlc_stream.h:55
char * strndup(const char *, size_t)
arg1= bool * res=cannot fail
Definition: vlc_stream.h:140
block_t * vlc_stream_ReadBlock(stream_t *s)
Reads a data block from a byte stream.
Definition: stream.c:529
#define vlc_module_end()
Definition: vlc_plugin.h:266
int(* pf_readdir)(stream_t *, input_item_node_t *)
Read directory.
Definition: vlc_stream.h:105
char * config_GetLibDir(void)
Definition: dirs.c:38
void input_clock_ChangeRate(input_clock_t *, int i_rate)
This functions allows changing the actual reading speed.
Definition: clock.c:340
bool vlc_killed(void)
Checks if the interruption context was "killed".
Definition: interrupt.c:186
char * psz_name
Definition: vlc_stream.h:53
void input_clock_ChangeSystemOrigin(input_clock_t *cl, bool b_absolute, mtime_t i_system)
This function allows rebasing the original system value date (a valid reference point must have been ...
Definition: clock.c:489
#define CLOCK_FREQ
Definition: vlc_config.h:45
static clock_point_t clock_point_Create(mtime_t i_stream, mtime_t i_system)
Definition: clock.c:130
static char * getAppDependentDir(vlc_userdir_t type)
Definition: dirs.c:120
Definition: vlc_configuration.h:122
static vlc_mutex_t lock
Definition: interface.c:62
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
module_t * p_module
Definition: vlc_stream.h:51
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:88
enum vlc_userdir vlc_userdir_t
static char * config_GetShellDir(int csidl)
Definition: dirs.c:214
stream_t * vlc_stream_CommonNew(vlc_object_t *parent, void(*destroy)(stream_t *))
Allocates a VLC stream object.
Definition: stream.c:67
void input_clock_GetSystemOrigin(input_clock_t *cl, mtime_t *pi_system, mtime_t *pi_delay)
This function returns the original system value date and the delay for the current reference point (a...
Definition: clock.c:515
#define VLC_TS_INVALID
Definition: vlc_config.h:42
void input_clock_ChangePause(input_clock_t *, bool b_paused, mtime_t i_date)
This function allows changing the pause status.
Definition: clock.c:357
int input_clock_GetState(input_clock_t *, mtime_t *pi_stream_start, mtime_t *pi_system_start, mtime_t *pi_stream_duration, mtime_t *pi_system_duration)
This function returns current clock state or VLC_EGENERIC if there is not a reference point.
Definition: clock.c:466
block_t * vlc_http_file_read(struct vlc_http_resource *res)
Reads data.
Definition: file.c:231
int(* pf_seek)(stream_t *, uint64_t)
Seek.
Definition: vlc_stream.h:114
char * psz_url
Full URL or MRL (can be NULL)
Definition: vlc_stream.h:54
int input_clock_GetRate(input_clock_t *cl)
This function returns the current rate.
Definition: clock.c:455
stream_t * stream_FilterAutoNew(stream_t *source)
Probes stream filters automatically.
Definition: stream_filter.c:70
static char * config_GetHomeDir(void)
Definition: dirs.c:60
mtime_t i_value
Definition: clock.c:110
char * config_GetUserDir(vlc_userdir_t type)
Definition: dirs.c:170
void system_Init(void)
Definition: specific.c:166
Definition: resource.h:42
input_thread_t * p_input
Definition: vlc_stream.h:131
void vlc_http_mgr_destroy(struct vlc_http_mgr *mgr)
Destroys an HTTP connection manager.
Definition: connmgr.c:280
#define CR_BUFFERING_TARGET
Definition: clock.c:99
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
stream_t definition
Definition: vlc_stream.h:46
Definition: vlc_configuration.h:123
int input_clock_GetRate(input_clock_t *)
This function returns the current rate.
Definition: clock.c:455
#define change_private()
Definition: vlc_plugin.h:494
void input_clock_ChangePause(input_clock_t *cl, bool b_paused, mtime_t i_date)
This function allows changing the pause status.
Definition: clock.c:357
struct vlc_http_resource * vlc_http_file_create(struct vlc_http_mgr *mgr, const char *uri, const char *ua, const char *ref)
Creates an HTTP file.
Definition: file.c:112
char * vlc_uri_compose(const vlc_url_t *uri)
Composes an URI.
Definition: url.c:706
int vlc_stream_Seek(stream_t *s, uint64_t offset)
Sets the current stream position.
Definition: stream.c:593
Definition: vlc_configuration.h:130
static char * config_GetTypeDir(const char *xdg_name)
Definition: dirs.c:106
arg1= int64_t* res=cannot fail
Definition: vlc_stream.h:149
int(* pf_control)(stream_t *, int i_query, va_list)
Stream control.
Definition: vlc_stream.h:123
#define CR_BUFFERING_RATE
Definition: clock.c:91
#define likely(p)
Definition: vlc_common.h:113
void input_clock_SetJitter(input_clock_t *, mtime_t i_pts_delay, int i_cr_average)
This function allows the set the minimal configuration for the jitter estimation algo.
Definition: clock.c:529
Definition: vlc_url.h:145
int vlc_http_res_get_status(struct vlc_http_resource *res)
Definition: resource.c:130
The main vlc_object_t structure.
Definition: vlc_objects.h:39
#define change_volatile()
Definition: vlc_plugin.h:498
int i_residue
Definition: clock.c:111
#define SUBCAT_INPUT_ACCESS
Definition: vlc_plugin.h:162
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
#define set_capability(cap, score)
Definition: vlc_plugin.h:299
#define var_InheritAddress(o, n)
Definition: vlc_variables.h:650
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
static block_t * LiveRead(stream_t *access, bool *restrict eof)
Definition: access.c:113
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
int input_clock_ConvertTS(vlc_object_t *p_object, input_clock_t *cl, int *pi_rate, mtime_t *pi_ts0, mtime_t *pi_ts1, mtime_t i_ts_bound)
This function converts a pair of timestamp from stream clock to system clock.
Definition: clock.c:397
char * strdup(const char *)
#define vlc_http_file_get_type
Definition: file.h:83
const char * psz_authtype
http authtype to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:171
static int Open(vlc_object_t *obj)
Definition: access.c:158
Definition: vlc_configuration.h:128
void input_clock_Delete(input_clock_t *cl)
This function destroys a input_clock_t created by input_clock_New.
Definition: clock.c:222
static char * config_GetHomeDir(void)
Definition: dirs.c:66
Definition: vlc_configuration.h:132
Definition: vlc_configuration.h:124
#define vlc_credential_store(a, b)
Definition: vlc_keystore.h:258
static mtime_t ClockGetTsOffset(input_clock_t *)
It returns timestamp display offset due to ref/last modfied on rate changes It ensures that currently...
Definition: clock.c:616
void input_clock_Update(input_clock_t *cl, vlc_object_t *p_log, bool *pb_late, bool b_can_pace_control, bool b_buffering_allowed, mtime_t i_ck_stream, mtime_t i_ck_system)
This function will update a input_clock_t with a new clock reference point.
Definition: clock.c:234
const char name[16]
Definition: httpd.c:1249
struct vlc_http_resource * vlc_http_live_create(struct vlc_http_mgr *mgr, const char *uri, const char *ua, const char *ref)
Definition: live.c:57
ssize_t(* pf_read)(stream_t *, void *buf, size_t len)
Read data.
Definition: vlc_stream.h:77
static mtime_t AvgGet(average_t *)
Definition: clock.c:650
arg1= char ** res=can fail
Definition: vlc_stream.h:154
#define N_(str)
Definition: vlc_fixups.h:372
#define add_bool(name, v, text, longtext, advc)
Definition: vlc_plugin.h:442
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
static int FileControl(stream_t *access, int query, va_list args)
Definition: access.c:66
#define CR_MEAN_PTS_GAP
Definition: clock.c:86
Definition: vlc_keystore.h:162
int i_count
Definition: clock.c:113
static void AvgReset(average_t *)
Definition: clock.c:632
char * vlc_http_res_get_basic_realm(struct vlc_http_resource *res)
Definition: resource.c:364
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
input_clock_t * input_clock_New(int i_rate)
This function creates a new input_clock_t.
Definition: clock.c:188
#define unlikely(p)
Definition: vlc_common.h:114
arg1= bool * res=cannot fail
Definition: vlc_stream.h:143
void vlc_credential_clean(vlc_credential *p_credential)
Clean a credential struct.
Definition: keystore.c:354
#define add_string(name, value, text, longtext, advc)
Definition: vlc_plugin.h:372
#define vlc_credential_get(a, b, c, d, e, f,...)
Definition: vlc_keystore.h:243
static char * config_GetHomeDir(void)
Definition: dirs.c:110
void input_clock_Reset(input_clock_t *cl)
This function will reset the drift of a input_clock_t.
Definition: clock.c:326
#define set_subcategory(i_id)
Definition: vlc_plugin.h:359
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
static int LiveControl(stream_t *access, int query, va_list args)
Definition: access.c:130
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
const char * psz_username
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:173
static void AvgInit(average_t *, int i_divider)
Definition: clock.c:623
void input_clock_Update(input_clock_t *, vlc_object_t *p_log, bool *pb_late, bool b_can_pace_control, bool b_buffering_allowed, mtime_t i_clock, mtime_t i_system)
This function will update a input_clock_t with a new clock reference point.
Definition: clock.c:234
char * psz_filepath
Local file path (if applicable)
Definition: vlc_stream.h:56
void input_clock_SetJitter(input_clock_t *cl, mtime_t i_pts_delay, int i_cr_average)
This function allows the set the minimal configuration for the jitter estimation algo.
Definition: clock.c:529
void input_clock_ChangeSystemOrigin(input_clock_t *, bool b_absolute, mtime_t i_system)
This function allows rebasing the original system value date (a valid reference point must have been ...
Definition: clock.c:489
#define CAT_INPUT
Definition: vlc_plugin.h:160
arg1= uint64_t * res=can fail
Definition: vlc_stream.h:145
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
static char * config_GetAppDir(const char *xdg_name, const char *xdg_default)
Definition: dirs.c:82
static void AvgClean(average_t *)
Definition: clock.c:628
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
#define INPUT_CLOCK_LATE_COUNT
Definition: clock.c:137
static void AvgUpdate(average_t *, mtime_t i_value)
Definition: clock.c:638
#define module_unneed(a, b)
Definition: vlc_modules.h:49
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
const char * psz_realm
http realm or smb domain to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:168
arg1= bool * res=cannot fail
Definition: vlc_stream.h:141
void * p_sys
Private data pointer.
Definition: vlc_stream.h:128
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
Definition: vlc_block.h:111
int vlc_http_file_seek(struct vlc_http_resource *res, uintmax_t offset)
Sets the read offset.
Definition: file.c:203
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
void input_clock_ChangeRate(input_clock_t *cl, int i_rate)
This functions allows changing the actual reading speed.
Definition: clock.c:340
mtime_t input_clock_GetWakeup(input_clock_t *)
This functions will return a deadline used to control the reading speed.
Definition: clock.c:380
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
ssize_t getline(char **, size_t *, FILE *)
mtime_t i_stream
Definition: clock.c:126
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:120
#define add_shortcut(...)
Definition: vlc_plugin.h:279
char * config_GetDataDir(void)
Definition: dirs.c:94