Go to the documentation of this file.
23 #ifndef LIBVLC_VOUT_CHRONO_H
24 #define LIBVLC_VOUT_CHRONO_H
41 chrono->
shift = shift;
43 chrono->
avg = avg_initial;
46 chrono->
var = avg_initial / 2;
60 return chrono->
avg + 2 * chrono->
var;
64 return __MAX(chrono->
avg - 2 * chrono->
var, 0);
77 chrono->
avg = (((1 << chrono->
shift) - 1) * chrono->
avg + duration) >> chrono->
shift;
void * vlc_iconv_t
Definition: vlc_charset.h:140
char * vlc_player_GetCategoryLanguage(vlc_player_t *player, enum es_format_category_e cat)
Get the language of an ES category.
Definition: player.c:725
size_t vlc_towc(const char *str, uint32_t *restrict pwc)
Decodes a code point from UTF-8.
Definition: unicode.c:113
int shift_var
Definition: chrono.h:53
char * vlc_uri_decode_duplicate(const char *str)
Decodes an URI component.
Definition: url.c:43
#define add_overflow(a, b, r)
Overflowing addition.
Definition: vlc_common.h:860
In-memory stream object.
Definition: vlc_memstream.h:41
char * vlc_strfplayer(vlc_player_t *player, input_item_t *item, const char *s)
Formats input meta-data.
Definition: strings.c:542
static bool vlc_uri_component_validate(const char *str, const char *extras)
Definition: url.c:378
static void vout_chrono_Reset(vout_chrono_t *chrono)
Definition: chrono.h:84
static const char urihex[]
Definition: url.c:104
void vlc_xml_decode(char *psz_value)
Decodes XML entities.
Definition: strings.c:197
vlc_tick_t vlc_player_GetTime(vlc_player_t *player)
Get the time of the current media.
Definition: player.c:1356
#define clz(x)
Count leading zeroes.
Definition: vlc_common.h:697
static bool vlc_uri_path_validate(const char *str)
Definition: url.c:405
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vlc_tick_t avg
Definition: chrono.h:50
int error
Definition: vlc_memstream.h:46
float aout_VolumeGet(audio_output_t *aout)
Gets the volume of the audio output stream (independent of mute).
Definition: output.c:645
long long rem
Definition: vlc_fixups.h:78
int shift
Definition: chrono.h:49
static bool isurisubdelim(int c)
Definition: url.c:92
#define DIR_SEP
Definition: vlc_common.h:1221
static int write_meta(struct vlc_memstream *stream, input_item_t *item, vlc_meta_type_t type)
Definition: strings.c:527
size_t length
Buffer length in bytes.
Definition: vlc_memstream.h:49
VLC_EXPORT int vlc_iconv_close(vlc_iconv_t)
ssize_t vlc_player_GetSelectedChapterIdx(vlc_player_t *player)
Get the selected chapter index for the current media.
Definition: player.c:895
input_item_t * vlc_player_GetCurrentMedia(vlc_player_t *player)
Get the current played media.
Definition: player.c:1043
const char * psz_eng_name
Definition: vlc_iso_lang.h:32
size_t vlc_b64_decode_binary(uint8_t **pp_dst, const char *psz_src)
Definition: strings.c:461
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Appends a nul-terminated string to a byte stream.
Definition: memstream.c:156
static bool isurihex(int c)
Definition: url.c:97
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:598
char * psz_password
Definition: vlc_url.h:149
Player track structure.
Definition: vlc_player.h:1334
int vlc_memstream_vprintf(struct vlc_memstream *ms, const char *fmt, va_list args)
Appends a formatted string to a byte stream.
Definition: memstream.c:162
char * vlc_strcasestr(const char *haystack, const char *needle)
Look for an UTF-8 string within another one in a case-insensitive fashion.
Definition: unicode.c:198
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
const char psz_iso639_1[3]
Definition: vlc_iso_lang.h:33
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
Definition: vlc_fixups.h:75
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
static char * EnsureUTF8(char *str)
Removes non-UTF-8 sequences.
Definition: vlc_charset.h:115
static char * vlc_uri_fixup_inner(const char *str, const char *extras)
Definition: url.c:836
char * psz_option
Definition: vlc_url.h:153
int vlc_UrlParseFixup(vlc_url_t *url, const char *str)
Parses an URI or IRI and fix up the path part.
Definition: url.c:573
static char * vlc_iri2uri(const char *iri)
Definition: url.c:336
vlc_tick_t var
Definition: chrono.h:54
static bool isurisafe(int c)
Definition: url.c:86
int asprintf(char **, const char *,...)
static int vlc_UrlParseInner(vlc_url_t *restrict url, const char *str)
Definition: url.c:410
char * strndup(const char *, size_t)
lldiv_t lldiv(long long, long long)
size_t vlc_b64_decode_binary_to_buffer(void *dst, size_t size, const char *restrict src)
Definition: strings.c:416
static vlc_tick_t vout_chrono_GetHigh(vout_chrono_t *chrono)
Definition: chrono.h:58
void aout_Release(audio_output_t *aout)
Definition: output.c:382
const char psz_iso639_2B[4]
Definition: vlc_iso_lang.h:35
static void write_duration(struct vlc_memstream *stream, vlc_tick_t duration)
Definition: strings.c:515
static char * encode_URI_bytes(const char *str, size_t *restrict lenp)
Definition: url.c:106
float vlc_player_GetPosition(vlc_player_t *player)
Get the position of the current media.
Definition: player.c:1367
char * psz_host
Definition: vlc_url.h:150
static char * vlc_idna_to_ascii(const char *)
Converts a UTF-8 nul-terminated IDN to nul-terminated ASCII domain name.
Definition: url.c:943
#define CLOCK_FREQ
Definition: vlc_config.h:47
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
Audio output object.
Definition: vlc_aout.h:141
long long quot
Definition: vlc_fixups.h:77
static const struct vlc_player_track * vlc_player_GetSelectedTrack(vlc_player_t *player, enum es_format_category_e cat)
Helper to get the selected track from an ES category.
Definition: vlc_player.h:1513
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
void filename_sanitize(char *str)
Sanitize a file name.
Definition: strings.c:915
VLC_EXPORT size_t vlc_iconv(vlc_iconv_t, const char **, size_t *, char **, size_t *)
char * psz_fragment
Definition: vlc_url.h:154
static bool vlc_uri_host_validate(const char *str)
Definition: url.c:400
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Appends a formatted string to a byte stream.
Definition: memstream.c:194
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
static void vlc_uri_putc(struct vlc_memstream *s, int c, const char *extras)
Definition: url.c:868
static vlc_tick_t vout_chrono_GetLow(vout_chrono_t *chrono)
Definition: chrono.h:62
FILE * stream
Definition: vlc_memstream.h:45
char * psz_protocol
Definition: vlc_url.h:147
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:558
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
char * psz_username
Definition: vlc_url.h:148
char * vlc_uri2path(const char *url)
Converts a URI to a local path.
Definition: url.c:247
static char * vlc_uri_merge_paths(const char *base, const char *ref)
Merge paths.
Definition: url.c:610
vlc_tick_t vlc_player_GetLength(vlc_player_t *player)
Get the length of the current media.
Definition: player.c:1349
void * memrchr(const void *, int, size_t)
void vlc_hex_encode_binary(const void *input, size_t size, char *output)
Encode binary data as hex string.
Definition: strings.c:350
char * vlc_b64_encode_binary(const void *src, size_t length)
Base64 encoding.
Definition: strings.c:360
char * vlc_b64_decode(const char *psz_src)
Definition: strings.c:471
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
VLC_EXPORT vlc_iconv_t vlc_iconv_open(const char *, const char *)
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Appends a single byte to a byte stream.
Definition: memstream.c:151
static const iso639_lang_t unknown_language
Definition: iso_lang.c:43
static char * vlc_uri_remove_dot_segments(char *str)
Remove dot segments.
Definition: url.c:639
char * vlc_strftime(const char *tformat)
Convenience wrapper for strftime().
Definition: strings.c:485
const iso639_lang_t * GetLang_2T(const char *psz_code)
Definition: iso_lang.c:57
char * FromCharset(const char *charset, const void *data, size_t data_size)
Converts a string from the given character encoding to utf-8.
Definition: unicode.c:237
static const struct xml_entity_s xml_entities[]
const iso639_lang_t * GetLang_1(const char *psz_code)
Definition: iso_lang.c:46
#define static_assert
Definition: vlc_fixups.h:370
ssize_t vlc_player_GetSelectedTitleIdx(vlc_player_t *player)
Get the selected title index for the current media.
Definition: player.c:821
@ AUDIO_ES
Definition: vlc_es.h:604
static void vout_chrono_Clean(vout_chrono_t *chrono)
Definition: chrono.h:50
const char psz_iso639_2T[4]
Definition: vlc_iso_lang.h:34
#define DIR_SEP_CHAR
Definition: vlc_common.h:1220
Definition: vlc_url.h:145
char psz_entity[8]
Definition: strings.c:59
int vlc_filenamecmp(const char *a, const char *b)
Definition: strings.c:869
static void vout_chrono_Start(vout_chrono_t *chrono)
Definition: chrono.h:54
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
static bool isurialnum(int c)
Definition: url.c:79
Definition: vlc_iso_lang.h:30
char * strdup(const char *)
char psz_char[4]
Definition: strings.c:60
char psz_value[8]
Definition: vout_intf.c:99
unsigned i_port
Definition: vlc_url.h:151
static const iso639_lang_t p_languages[]
Definition: iso-639_def.h:37
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
#define strcoll
Definition: strings.c:42
static void vout_chrono_Stop(vout_chrono_t *chrono)
Definition: chrono.h:67
const char name[16]
Definition: httpd.c:1268
char * vlc_getcwd(void)
Determines the current working directory.
Definition: filesystem.c:218
char * vlc_uri_encode(const char *str)
Encodes a URI component.
Definition: url.c:134
char * vlc_uri_resolve(const char *base, const char *ref)
Resolves an URI reference.
Definition: url.c:772
char * psz_pathbuffer
Definition: vlc_url.h:157
@ SPU_ES
Definition: vlc_es.h:605
const iso639_lang_t * GetLang_2B(const char *psz_code)
Definition: iso_lang.c:68
char * vlc_b64_encode(const char *src)
Base64 encoding (string).
Definition: strings.c:408
void * ToCharset(const char *charset, const char *in, size_t *outsize)
Converts a nul-terminated UTF-8 string to a given character encoding.
Definition: unicode.c:279
vlc_tick_t avg_initial
Definition: chrono.h:51
char * vlc_xml_encode(const char *str)
Encodes XML entites.
Definition: strings.c:289
struct tm * localtime_r(const time_t *, struct tm *)
int utf8_vfprintf(FILE *stream, const char *fmt, va_list ap)
Formats an UTF-8 string as vfprintf(), then print it, with appropriate conversion to local encoding.
Definition: unicode.c:52
float vlc_player_GetRate(vlc_player_t *player)
Get the rate of the player.
Definition: player.c:1282
audio_output_t * vlc_player_aout_Hold(vlc_player_t *player)
Get the audio output.
Definition: aout.c:44
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
char * vlc_uri_decode(char *str)
Decodes an URI component in place.
Definition: url.c:54
#define DECLARE_VLC_VERSION(func, var)
Definition: version.c:37
es_format_t fmt
Es format.
Definition: vlc_player.h:1341
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
static int cmp_entity(const void *key, const void *elem)
Definition: strings.c:189
vlc_tick_t start
Definition: chrono.h:56
size_t vlc_memstream_write(struct vlc_memstream *ms, const void *ptr, size_t len)
Appends a binary blob to a byte stream.
Definition: memstream.c:127
int vlc_memstream_flush(struct vlc_memstream *ms)
Flushes a byte stream object.
Definition: memstream.c:115
char * vlc_uri_fixup(const char *str)
Fixes up a URI string.
Definition: url.c:876
char * psz_path
Definition: vlc_url.h:152
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
const char var[sizeof("video")]
Definition: player.c:1732
int utf8_fprintf(FILE *stream, const char *fmt,...)
Formats an UTF-8 string as fprintf(), then print it, with appropriate conversion to local encoding.
Definition: unicode.c:102
int vasprintf(char **, const char *, va_list)
static void vout_chrono_Init(vout_chrono_t *chrono, int shift, vlc_tick_t avg_initial)
Definition: chrono.h:39
char * vlc_uri_compose(const vlc_url_t *uri)
Composes an URI.
Definition: url.c:710