Go to the documentation of this file.
24 #ifndef LIBVLC_INPUT_ES_OUT_H
25 #define LIBVLC_INPUT_ES_OUT_H 1
111 va_start( args, query );
150 const char *str_ids )
211 i_normal_time, i_length );
218 i_pts_delay, i_pts_jitter, i_cr_average );
static void es_out_SetEsDelay(es_out_t *p_out, vlc_es_id_t *es, vlc_tick_t i_delay)
Definition: es_out.h:180
@ COLOR_SPACE_BT601
Definition: vlc_es.h:314
@ COLOR_PRIMARIES_BT2020
Definition: vlc_es.h:272
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
@ MULTIVIEW_STEREO_COL
Definition: vlc_es.h:241
struct vlc_list es
Definition: es_out.c:189
void vlc_clock_main_Delete(vlc_clock_main_t *main_clock)
Destroy the clock main.
Definition: clock.c:473
static void input_SendEventOutputClock(input_thread_t *p_input, vlc_es_id_t *id, bool master, vlc_tick_t system_ts, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
Definition: event.h:68
size_t count
Definition: core.c:401
es_out_mode_e
Definition: es_out.h:29
bool b_active
Definition: es_out.c:193
@ MULTIVIEW_STEREO_CHECKERBOARD
Definition: vlc_es.h:247
static es_out_id_t es_cat[DATA_ES]
Definition: es_out.c:716
@ TRANSFER_FUNC_BT470_M
Definition: vlc_es.h:294
@ VIDEO_ES
Definition: vlc_es.h:603
vlc_clock_master_source
Definition: clock.h:23
input_thread_t * p_input
Definition: es_out.c:174
In-memory stream object.
Definition: vlc_memstream.h:41
enum vlc_clock_master_source val
Definition: es_out.c:270
static void EsOutGlobalMeta(es_out_t *p_out, const vlc_meta_t *p_meta)
Definition: es_out.c:1930
static void ProgramDelete(es_out_pgrm_t *p_pgrm)
Definition: es_out.c:653
@ ES_OUT_PRIV_SET_VBI_TRANSPARENCY
Definition: es_out.h:99
static void input_SendEventVbiTransparency(input_thread_t *p_input, bool transparent)
Definition: event.h:269
char * psz_name
Definition: vlc_epg.h:53
int i_count
Definition: es_out.c:160
@ ES_OUT_MODIFY_PCR_SYSTEM
Definition: vlc_es_out.h:100
@ COLOR_RANGE_FULL
Definition: vlc_es.h:341
es_out_id_t *(* add)(es_out_t *, input_source_t *in, const es_format_t *)
Definition: vlc_es_out.h:132
static void input_SendEventMetaEpg(input_thread_t *p_input)
Definition: event.h:166
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:52
es_out_query_private_e
Definition: es_out.h:38
unsigned int aout_BitsPerSample(vlc_fourcc_t i_format)
Definition: common.c:41
static es_out_id_t * EsOutAdd(es_out_t *out, input_source_t *source, const es_format_t *fmt)
Definition: es_out.c:2191
@ ES_OUT_PRIVATE_START
Definition: vlc_es_out.h:118
@ VLC_VIDEOS_DIR
Definition: vlc_configuration.h:319
@ CHROMA_LOCATION_CENTER
Definition: vlc_es.h:330
@ ES_OUT_MODE_END
Definition: es_out.h:56
int strcasecmp(const char *, const char *)
const char * psz_name
Definition: text_style.c:53
bool b_buffering
Definition: es_out.c:220
@ ES_OUT_SET_GROUP_EPG_EVENT
Definition: vlc_es_out.h:79
static void input_SendEventVbiPage(input_thread_t *p_input, unsigned page)
Definition: event.h:261
int vlc_input_decoder_GetVbiPage(vlc_input_decoder_t *owner, bool *opaque)
Definition: decoder.c:2588
void vlc_es_id_Release(vlc_es_id_t *id)
Decrease the ES track id reference count.
Definition: es_out.c:4514
bool vlc_input_decoder_IsEmpty(vlc_input_decoder_t *p_owner)
This function returns true if the decoder fifo is empty and false otherwise.
Definition: decoder.c:2247
@ ES_OUT_SET_META
Definition: vlc_es_out.h:96
static void EsOutStopFreeVout(es_out_t *out)
Definition: es_out.c:964
void vlc_clock_main_SetDejitter(vlc_clock_main_t *main_clock, vlc_tick_t dejitter)
This function sets the dejitter delay to absorb the clock jitter.
Definition: clock.c:435
static void input_SendEventMeta(input_thread_t *p_input)
Definition: event.h:152
static void EsOutMeta(es_out_t *p_out, const vlc_meta_t *p_meta, const vlc_meta_t *p_progmeta)
Definition: es_out.c:1884
Definition: vlc_subpicture.h:85
enum es_format_category_e i_cat
Definition: es_out.c:97
static void EsOutCreateDecoder(es_out_t *out, es_out_id_t *p_es)
Definition: es_out.c:2234
@ VLC_CLOCK_MASTER_AUDIO
Definition: clock.h:44
char * ptr
Buffer start address.
Definition: vlc_memstream.h:48
static void EsOutSendEsEvent(es_out_t *out, es_out_id_t *es, int action, bool forced)
Definition: es_out.c:1262
static bool EsOutIsGroupSticky(es_out_t *p_out, input_source_t *source, int i_group)
Definition: es_out.c:1324
es_out_t out
Definition: es_out.c:231
static void es_out_SetEsCatIds(es_out_t *p_out, enum es_format_category_e cat, const char *str_ids)
Definition: es_out.h:148
@ TRANSFER_FUNC_BT470_BG
Definition: vlc_es.h:293
void vlc_input_decoder_GetCcDesc(vlc_input_decoder_t *p_owner, decoder_cc_desc_t *p_desc)
This function get cc channels descriptions.
Definition: decoder.c:2354
static void input_SendEventProgramSelect(input_thread_t *p_input, int i_program)
Definition: event.h:219
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
es_out_pgrm_t * p_pgrm
Definition: es_out.c:113
@ ES_OUT_PRIV_GET_WAKE_UP
Definition: es_out.h:49
static int LanguageArrayIndex(char **ppsz_langs, const char *psz_lang)
Definition: es_out.c:4055
static int demux_Control(demux_t *p_demux, int i_query,...)
Definition: vlc_demux.h:301
@ ES_OUT_VOUT_SET_MOUSE_EVENT
Definition: vlc_es_out.h:104
uint8_t i_608_channels
Definition: vlc_codec.h:207
static void EsOutDecoderChangeDelay(es_out_t *out, es_out_id_t *p_es)
Definition: es_out.c:1120
void vlc_input_decoder_ChangeRate(vlc_input_decoder_t *owner, float rate)
Changes the decoder rate.
Definition: decoder.c:2464
static void decoder_on_new_audio_stats(vlc_input_decoder_t *decoder, unsigned decoded, unsigned lost, unsigned played, void *userdata)
Definition: es_out.c:418
static char * LanguageGetCode(const char *psz_lang)
Definition: es_out.c:3984
@ ES_OUT_DEL_GROUP
Definition: vlc_es_out.h:83
input_source_t * main_source
Definition: es_out.c:176
vlc_stream_fifo_t * vlc_stream_fifo_New(vlc_object_t *parent, stream_t **reader)
Creates a FIFO stream.
Definition: stream_fifo.c:106
#define BLOCK_FLAG_CORRUPTED
This block is corrupted and/or there is data loss
Definition: vlc_block.h:87
void vlc_input_decoder_Decode(vlc_input_decoder_t *p_owner, block_t *p_block, bool b_do_pace)
Put a block_t in the decoder's fifo.
Definition: decoder.c:2217
static void EsOutProgramSelect(es_out_t *out, es_out_pgrm_t *p_pgrm)
Definition: es_out.c:1342
@ CHROMA_LOCATION_LEFT
Definition: vlc_es.h:329
static void input_SendEventVout(input_thread_t *p_input, const struct vlc_input_event_vout *event)
Definition: event.h:281
@ CHROMA_LOCATION_BOTTOM_LEFT
Definition: vlc_es.h:333
static void input_SendEventProgramDel(input_thread_t *p_input, int i_program)
Definition: event.h:208
@ ES_OUT_PRIV_UNSET_ES
Definition: es_out.h:45
@ ES_OUT_ES_POLICY_EXCLUSIVE
Definition: vlc_es_out.h:123
@ ES_OUT_SET_NEXT_DISPLAY_TIME
Definition: vlc_es_out.h:74
@ ES_OUT_PRIV_STOP_ALL_ES
Definition: es_out.h:58
vlc_input_decoder_t * p_dec
Definition: es_out.c:131
static int EsOutPrivControlLocked(es_out_t *out, int i_query,...)
Definition: es_out.c:3911
#define ES_PRIORITY_NOT_DEFAULTABLE
Definition: vlc_es.h:614
static void EsOutEpgTime(es_out_t *out, int64_t time)
Definition: es_out.c:1842
#define COLOR_SPACE_MAX
Definition: vlc_es.h:320
#define vlc_pgettext(ctx, id)
Definition: vlc_common.h:1162
static int EsOutSetRecord(es_out_t *, bool b_record)
Definition: es_out.c:785
@ ES_OUT_VOUT_DEL_OVERLAY
Definition: vlc_es_out.h:111
vlc_mutex_t lock
Definition: es_out.c:179
@ ES_OUT_PRIV_SET_VBI_PAGE
Definition: es_out.h:96
#define BLOCK_FLAG_PREROLL
This block has to be decoded but not be displayed.
Definition: vlc_block.h:85
static char * EsOutCreateStrId(es_out_id_t *es, bool stable, const char *id, es_out_id_t *p_master)
Definition: es_out.c:2008
void vlc_clock_Delete(vlc_clock_t *clock)
This function free the resources allocated by vlc_clock*Create*()
Definition: clock.c:650
int i_es
Definition: es_out.c:97
enum vlc_clock_master_source active_clock_source
Definition: es_out.c:105
static void input_SendEventProgramScrambled(input_thread_t *p_input, int i_group, bool b_scrambled)
Definition: event.h:230
static void input_SendEventTimes(input_thread_t *p_input, double f_position, vlc_tick_t i_time, vlc_tick_t i_normal_time, vlc_tick_t i_length)
Definition: event.h:57
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
int vlc_input_decoder_SetVbiOpaque(vlc_input_decoder_t *owner, bool opaque)
Definition: decoder.c:2605
bool stable
Definition: es_out.c:101
@ VLC_CLOCK_MASTER_INPUT
Definition: clock.h:45
#define AUDIO_REPLAY_GAIN_TRACK
Definition: vlc_es.h:53
Definition: vlc_codec.h:205
#define TRANSFER_FUNC_MAX
Definition: vlc_es.h:305
static es_out_es_props_t * GetPropsByCat(es_out_sys_t *p_sys, int i_cat)
Definition: es_out.c:471
@ COLOR_RANGE_UNDEF
Definition: vlc_es.h:340
static vlc_tick_t es_out_GetWakeup(es_out_t *p_out)
Definition: es_out.h:134
static void EsOutSelectListFromProps(es_out_t *out, enum es_format_category_e cat)
Definition: es_out.c:2691
vlc_tick_t delay
Definition: es_out.c:139
static void info_category_AddCodecInfo(info_category_t *p_cat, const char *psz_info, vlc_fourcc_t i_fourcc, const char *psz_description)
Definition: es_out.c:4113
@ DATA_ES
Definition: vlc_es.h:606
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
static void EsOutChangePosition(es_out_t *out, bool b_flush)
Definition: es_out.c:925
es_out_id_t * p_main_es
Definition: es_out.c:161
struct vlc_demux_chained_t::@12 stats
vlc_tick_t i_last_pcr
Definition: es_out.c:107
const char * psz_eng_name
Definition: vlc_iso_lang.h:32
static bool EsIsSelected(es_out_id_t *es)
Definition: es_out.c:2204
@ ES_OUT_GET_ES_STATE
Definition: vlc_es_out.h:51
static int es_out_vaPrivControl(es_out_t *out, int query, va_list args)
Definition: es_out.h:102
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
@ ES_OUT_ES_POLICY_AUTO
Definition: vlc_es_out.h:127
bool sout_instance_ControlsPace(sout_instance_t *sout)
Definition: stream_output.c:149
static int EsOutControl(es_out_t *out, input_source_t *source, int i_query, va_list args)
Definition: es_out.c:3895
static const struct es_out_callbacks es_out_cbs
Definition: es_out.c:527
static void EsOutDeleteInfoEs(es_out_t *, es_out_id_t *es)
Definition: es_out.c:4484
static vlc_tick_t EsOutGetWakeup(es_out_t *out)
Definition: es_out.c:695
@ ES_OUT_SET_EPG_TIME
Definition: vlc_es_out.h:80
int i_id
Definition: es_out.c:96
@ ES_OUT_PRIV_SET_ES
Definition: es_out.h:44
es_out_t * input_EsOutNew(input_thread_t *, input_source_t *main_source, float rate)
Definition: es_out.c:532
size_t i_event
Definition: vlc_epg.h:56
static char * var_GetNonEmptyString(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:447
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Appends a nul-terminated string to a byte stream.
Definition: memstream.c:156
@ ES_OUT_SET_ES_SCRAMBLED_STATE
Definition: vlc_es_out.h:86
static void EsOutDestroyDecoder(es_out_t *out, es_out_id_t *p_es)
Definition: es_out.c:2317
const char * vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
It returns the description of the given fourcc or NULL if not found.
Definition: fourcc.c:197
bool vlc_input_decoder_HasFormatChanged(vlc_input_decoder_t *p_owner, es_format_t *p_fmt, vlc_meta_t **pp_meta)
This function will return true if the ES format or meta data have changed since the last call.
Definition: decoder.c:2544
void vlc_input_decoder_ChangeDelay(vlc_input_decoder_t *owner, vlc_tick_t delay)
This function changes the delay.
Definition: decoder.c:2471
void vlc_input_decoder_SetVoutMouseEvent(vlc_input_decoder_t *owner, vlc_mouse_event mouse_event, void *user_data)
Definition: decoder.c:2613
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
es_format_t fmt_out
Definition: es_out.c:125
@ ES_OUT_PRIV_START_ALL_ES
Definition: es_out.h:60
Definition: vlc_input_item.h:53
static void EsOutProgramMeta(es_out_t *out, input_source_t *source, int i_group, const vlc_meta_t *p_meta)
Definition: es_out.c:1614
float pf_peak[(2)]
Definition: vlc_es.h:60
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
es_out_t * out
Definition: es_out.c:110
static void input_SendEventMetaInfo(input_thread_t *p_input)
Definition: event.h:159
@ COLOR_PRIMARIES_BT601_525
Definition: vlc_es.h:269
#define vlc_tick_sleep(d)
Definition: vlc_threads.h:902
#define _(str)
Definition: vlc_fixups.h:374
@ PROJECTION_MODE_RECTANGULAR
Definition: vlc_es.h:257
@ ES_OUT_PRIV_SET_DELAY
Definition: es_out.h:69
static info_t * info_category_AddInfo(info_category_t *cat, const char *name, const char *format,...)
Definition: info.h:95
void vlc_stream_fifo_Close(vlc_stream_fifo_t *writer)
Terminates a FIFO stream.
Definition: stream_fifo.c:162
@ ES_OUT_PRIV_SET_TIMES
Definition: es_out.h:84
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
int i_demux_id
Definition: es_out.c:167
static int EsOutPrivControl(es_out_t *out, int query, va_list args)
Definition: es_out.c:3921
static void es_out_SetTimes(es_out_t *p_out, double f_position, vlc_tick_t i_time, vlc_tick_t i_normal_time, vlc_tick_t i_length)
Definition: es_out.h:206
int vlc_input_decoder_DelVoutOverlay(vlc_input_decoder_t *owner, size_t channel)
Definition: decoder.c:2657
static int es_out_SetVbiTransparency(es_out_t *p_out, vlc_es_id_t *id, bool enabled)
Definition: es_out.h:238
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
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
@ ES_OUT_SET_GROUP
Definition: vlc_es_out.h:57
static void EsTerminate(es_out_id_t *es)
Definition: es_out.c:577
static es_out_pgrm_t * EsOutProgramAdd(es_out_t *out, input_source_t *source, int i_group)
Definition: es_out.c:1434
static info_category_t * info_category_New(const char *name)
Definition: info.h:46
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
static char ** LanguageSplit(const char *psz_langs)
Definition: es_out.c:4003
vlc_stream_fifo_t * writer
Definition: demux_chained.c:58
static int clock_source_mapping_cmp(const void *key, const void *val)
Definition: es_out.c:273
@ CHROMA_LOCATION_UNDEF
Definition: vlc_es.h:328
void(* on_update)(vlc_tick_t system_ts, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base, void *data)
Called when a clock is updated.
Definition: clock.h:53
es_out_t * input_EsOutNew(input_thread_t *p_input, input_source_t *main_source, float rate)
Definition: es_out.c:532
vlc_tick_t i_length
Definition: vlc_block.h:131
static void es_out_SetJitter(es_out_t *p_out, vlc_tick_t i_pts_delay, vlc_tick_t i_pts_jitter, int i_cr_average)
Definition: es_out.h:214
Doubly-linked list node.
Definition: vlc_list.h:43
@ ES_OUT_GET_PCR_SYSTEM
Definition: vlc_es_out.h:99
char * key
Definition: vlc_fixups.h:493
void vlc_demux_chained_Send(vlc_demux_chained_t *dc, block_t *block)
Sends data to a chained demuxer.
Definition: demux_chained.c:133
es_out_es_props_t audio
Definition: es_out.c:196
input_clock_t * p_input_clock
Definition: es_out.c:103
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
static enum vlc_clock_master_source clock_source_Inherit(vlc_object_t *obj)
Definition: es_out.c:280
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
bool b_paused
Definition: es_out.c:213
static void EsOutDecodersChangePause(es_out_t *out, bool b_paused, vlc_tick_t i_date)
Definition: es_out.c:1068
static int var_CountChoices(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:658
Video picture.
Definition: vlc_picture.h:120
int asprintf(char **, const char *,...)
static int EsOutVaControlLocked(es_out_t *, input_source_t *, int, va_list)
Control query handler.
Definition: es_out.c:3095
enum vlc_clock_master_source clock_source
Definition: es_out.c:185
static void EsOutDrainCCChannels(es_out_id_t *parent)
Definition: es_out.c:2429
struct es_out_id_t::@13 cc
static void es_out_SetMode(es_out_t *p_out, int i_mode)
Definition: es_out.h:117
@ TRANSFER_FUNC_LINEAR
Definition: vlc_es.h:291
vlc_clock_main_t * vlc_clock_main_New(void)
This function creates the vlc_clock_main_t of the program.
Definition: clock.c:362
Mutex.
Definition: vlc_threads.h:225
static void EsOutDecodersStopBuffering(es_out_t *out, bool b_forced)
Definition: es_out.c:973
unsigned demux_TestAndClearFlags(demux_t *p_demux, unsigned flags)
Definition: demux.c:414
vlc_clock_t * vlc_clock_main_CreateMaster(vlc_clock_main_t *main_clock, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new master vlc_clock_t interface.
Definition: clock.c:559
static void EsRelease(es_out_id_t *es)
Definition: es_out.c:619
@ ES_OUT_SPU_SET_HIGHLIGHT
Definition: vlc_es_out.h:114
vlc_tick_t length
Definition: demux_chained.c:67
static void EsOutFrameNext(es_out_t *out)
Definition: es_out.c:1148
const struct es_out_callbacks * cbs
Definition: vlc_es_out.h:145
@ ES_OUT_PRIV_SET_PAUSE_STATE
Definition: es_out.h:75
int vlc_input_decoder_AddVoutOverlay(vlc_input_decoder_t *owner, subpicture_t *sub, size_t *channel)
Definition: decoder.c:2627
@ ES_OUT_SET_ES_DEFAULT
Definition: vlc_es_out.h:46
@ DEMUX_GET_TIME
Definition: vlc_demux.h:189
@ DEMUX_SET_GROUP_ALL
Definition: vlc_demux.h:210
const char psz_iso639_2B[4]
Definition: vlc_iso_lang.h:35
vlc_fourcc_t vlc_fourcc_GetCodec(int cat, vlc_fourcc_t fourcc)
It returns the codec associated to a fourcc within an ES category.
Definition: fourcc.c:112
int(* priv_control)(es_out_t *, int query, va_list)
Private control callback, must be NULL for es_out created from modules.
Definition: vlc_es_out.h:140
sout_instance_t * p_sout_record
Definition: es_out.c:226
es_format_category_e
ES Categories.
Definition: vlc_es.h:600
static int es_out_RestartEs(es_out_t *p_out, vlc_es_id_t *id)
Definition: es_out.h:130
@ ES_OUT_PRIV_SET_MODE
Definition: es_out.h:41
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_tick_t i_pts_jitter
Definition: es_out.c:208
@ VLC_VOUT_ORDER_NONE
Definition: vlc_vout.h:72
static void es_out_SetDelay(es_out_t *p_out, int i_cat, vlc_tick_t i_delay)
Definition: es_out.h:185
void vlc_clock_main_SetInputDejitter(vlc_clock_main_t *main_clock, vlc_tick_t delay)
Definition: clock.c:427
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
Definition: vlc_es_out.h:143
vlc_thread_t thread
Definition: demux_chained.c:61
bool b_selected
Definition: es_out.c:99
@ COLOR_SPACE_BT2020
Definition: vlc_es.h:316
void vlc_clock_main_Reset(vlc_clock_main_t *main_clock)
Reset the vlc_clock_main_t.
Definition: clock.c:404
@ ES_OUT_PRIV_SET_JITTER
Definition: es_out.h:87
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
int i_group_id
Definition: es_out.c:199
static int es_out_SetPauseState(es_out_t *p_out, bool b_source_paused, bool b_paused, vlc_tick_t i_date)
Definition: es_out.h:194
static void EsOutSelectList(es_out_t *, enum es_format_category_e cat, vlc_es_id_t *const *es_id_list)
Definition: es_out.c:2744
static char * var_GetString(vlc_object_t *p_obj, const char *psz_name)
Get a string value.
Definition: vlc_variables.h:437
const char * aout_FormatPrintChannels(const audio_sample_format_t *p_format)
Definition: common.c:105
vlc_tick_t i_buffering_extra_stream
Definition: es_out.c:222
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:273
char * psz_language_code
Definition: es_out.c:127
@ TRANSFER_FUNC_SRGB
Definition: vlc_es.h:292
static int EsOutProgramDel(es_out_t *out, input_source_t *source, int i_group)
Definition: es_out.c:1525
static void input_SendEventProgramUpdated(input_thread_t *p_input, int i_program, const char *psz_text)
Definition: event.h:196
static int decoder_get_attachments(vlc_input_decoder_t *decoder, input_attachment_t ***ppp_attachment, void *userdata)
Definition: es_out.c:443
vlc_fourcc_t type
Definition: es_out.c:144
static int EsOutEsUpdateFmt(es_out_t *out, es_out_id_t *es, const es_format_t *fmt)
Definition: es_out.c:4072
block_t * p_next
Definition: vlc_block.h:119
static void EsOutDel(es_out_t *, es_out_id_t *)
Definition: es_out.c:3038
#define COLOR_PRIMARIES_BT470_M
Definition: vlc_es.h:281
static void EsOutDelete(es_out_t *out)
Definition: es_out.c:638
static int es_out_SetRate(es_out_t *p_out, float source_rate, float rate)
Definition: es_out.h:198
int vlc_memstream_printf(struct vlc_memstream *ms, const char *fmt,...)
Appends a formatted string to a byte stream.
Definition: memstream.c:194
static int es_out_GetGroupForced(es_out_t *p_out)
Definition: es_out.h:221
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
vlc_fourcc_t i_fourcc
Definition: vlc_codecs.h:316
static void EsOutDrainDecoder(es_out_t *out, es_out_id_t *es)
Definition: es_out.c:2948
Definition: stream_fifo.c:37
@ COLOR_PRIMARIES_UNDEF
Definition: vlc_es.h:268
static bool EsOutDecodersIsEmpty(es_out_t *out)
Definition: es_out.c:730
static void EsOutProgramsChangeRate(es_out_t *out)
Definition: es_out.c:1139
static int es_out_Control(es_out_t *out, int i_query,...)
Definition: vlc_es_out.h:170
static void es_out_Eos(es_out_t *p_out)
Definition: es_out.h:228
static block_t * block_Duplicate(const block_t *p_block)
Duplicates a block.
Definition: vlc_block.h:223
bool b_autoselect
Definition: es_out.c:165
char * psz_language
Definition: es_out.c:126
#define COLOR_PRIMARIES_MAX
Definition: vlc_es.h:282
static void decoder_on_vout_stopped(vlc_input_decoder_t *decoder, vout_thread_t *vout, void *userdata)
Definition: es_out.c:349
vlc_tick_t i_preroll_end
Definition: es_out.c:217
@ DEMUX_GET_LENGTH
Definition: vlc_demux.h:188
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
static void decoder_on_new_video_stats(vlc_input_decoder_t *decoder, unsigned decoded, unsigned lost, unsigned displayed, unsigned late, void *userdata)
Definition: es_out.c:391
@ ES_OUT_PRIV_SET_FRAME_NEXT
Definition: es_out.h:81
const input_source_t * vlc_es_id_GetSource(vlc_es_id_t *id)
Definition: es_out.c:4543
es_out_es_props_t sub
Definition: es_out.c:196
es_out_id_t * p_master
Definition: es_out.c:150
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
const char * vlc_es_id_GetStrId(vlc_es_id_t *id)
Get the unique string identifier.
Definition: es_out.c:4532
bool pb_peak[(2)]
Definition: vlc_es.h:58
int i_channel
Definition: es_out.c:168
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
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
static bool EsOutSelectHasExplicitParams(const es_out_es_props_t *p_esprops)
Definition: es_out.c:2517
uint32_t i_flags
Definition: vlc_block.h:126
Video subtitle.
Definition: vlc_subpicture.h:166
char * config_StringEscape(const char *str)
This function will escape a string that can be unescaped by config_StringUnescape.
Definition: chain.c:473
#define foreach_es_then_es_slaves(pos)
Definition: es_out.c:321
bool b_scrambled
Definition: es_out.c:116
static void EsOutPropsCleanup(es_out_es_props_t *p_props)
Definition: es_out.c:485
es_out_id_t * vlc_es_id_get_out(vlc_es_id_t *id)
Definition: es_out.c:4501
vlc_tick_t i_buffering_extra_initial
Definition: es_out.c:221
@ ES_OUT_MODE_ALL
Definition: es_out.h:53
int vlc_es_id_GetInputId(vlc_es_id_t *id)
Get the ES track input id.
Definition: es_out.c:4520
float yaw
Definition: vlc_viewpoint.h:42
@ ES_OUT_SET_ES
Definition: vlc_es_out.h:41
demux_t * demux_New(vlc_object_t *p_obj, const char *psz_name, stream_t *s, es_out_t *out)
Definition: demux.c:72
float roll
Definition: vlc_viewpoint.h:44
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
static char * LanguageGetName(const char *psz_code)
Definition: es_out.c:3945
static void input_SendEventProgramAdd(input_thread_t *p_input, int i_program, const char *psz_text)
Definition: event.h:184
vlc_tick_t i_tracks_pts_delay
Definition: es_out.c:207
@ CHROMA_LOCATION_BOTTOM_CENTER
Definition: vlc_es.h:334
static bool vlc_list_is_empty(const struct vlc_list *head)
Checks if a list is empty.
Definition: vlc_list.h:167
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:79
static es_out_id_t * EsOutAddLocked(es_out_t *out, input_source_t *source, const es_format_t *fmt, es_out_id_t *p_master)
Definition: es_out.c:2048
static vlc_tick_t EsOutGetBuffering(es_out_t *out)
Definition: es_out.c:1215
void vlc_input_decoder_StartWait(vlc_input_decoder_t *p_owner)
This function makes the decoder start waiting for a valid data block from its fifo.
Definition: decoder.c:2478
static void input_SendEventEs(input_thread_t *p_input, const struct vlc_input_event_es *es_event)
Definition: event.h:243
static bool EsOutIsProgramVisible(es_out_t *out, input_source_t *source, int i_group)
Definition: es_out.c:1331
int vlc_memstream_putc(struct vlc_memstream *ms, int c)
Appends a single byte to a byte stream.
Definition: memstream.c:151
Thread handle.
Definition: vlc_threads.h:180
int i_id
Definition: es_out.c:94
@ VLC_CLOCK_MASTER_MONOTONIC
Definition: clock.h:46
@ ES_OUT_SET_ES_STATE
Definition: vlc_es_out.h:50
char * strtok_r(char *, const char *, char **)
static void EsDeleteCCChannels(es_out_t *out, es_out_id_t *parent)
Definition: es_out.c:2442
float pf_gain[(2)]
Definition: vlc_es.h:65
const iso639_lang_t * GetLang_2T(const char *psz_code)
Definition: iso_lang.c:57
static bool es_out_GetBuffering(es_out_t *p_out)
Definition: es_out.h:164
stream_t definition
Definition: vlc_stream.h:46
void vlc_input_decoder_Flush(vlc_input_decoder_t *p_owner)
Requests that the decoder immediately discard all pending buffers.
Definition: decoder.c:2298
@ MULTIVIEW_STEREO_FRAME
Definition: vlc_es.h:244
vlc_tick_t i_pts
Definition: vlc_block.h:129
#define CHROMA_LOCATION_MAX
Definition: vlc_es.h:335
char * str_ids
Definition: es_out.c:166
static void EsOutProgramHandleClockSource(es_out_t *out, es_out_pgrm_t *p_pgrm)
Definition: es_out.c:1277
int vlc_input_decoder_SetSpuHighlight(vlc_input_decoder_t *p_owner, const vlc_spu_highlight_t *spu_hl)
Definition: decoder.c:2674
uint64_t i_bitmap
Definition: es_out.c:145
struct vlc_list es_slaves
Definition: es_out.c:190
void vlc_clock_main_ChangePause(vlc_clock_main_t *main_clock, vlc_tick_t now, bool paused)
This function allows changing the pause status.
Definition: clock.c:443
Definition: vlc_es_out.h:130
static bool EsOutIsExtraBufferingAllowed(es_out_t *out)
Definition: es_out.c:1084
es_out_pgrm_t * p_pgrm
Definition: es_out.c:183
@ ES_OUT_GET_EMPTY
Definition: vlc_es_out.h:93
bool master
Definition: es_out.c:136
const iso639_lang_t * GetLang_1(const char *psz_code)
Definition: iso_lang.c:46
static void EsOutPropsInit(es_out_es_props_t *p_props, bool autoselect, input_thread_t *p_input, enum es_out_policy_e e_default_policy, const char *psz_trackidvar, const char *psz_trackvar, const char *psz_langvar, const char *psz_debug)
Definition: es_out.c:496
vlc_meta_t * p_meta
Definition: es_out.c:109
@ CHROMA_LOCATION_TOP_LEFT
Definition: vlc_es.h:331
#define static_assert
Definition: vlc_fixups.h:370
@ ES_OUT_PRIV_RESTART_ES
Definition: es_out.h:46
input_source_t * source
Definition: es_out.c:91
vlc_mutex_t lock
Definition: demux_chained.c:62
static void EsOutUnselectEs(es_out_t *out, es_out_id_t *es, bool b_update)
Definition: es_out.c:2469
char ** ppsz_language
Definition: es_out.c:169
enum es_format_category_e vlc_es_id_GetCat(vlc_es_id_t *id)
Get the ES category.
Definition: es_out.c:4538
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:94
@ MULTIVIEW_STEREO_TB
Definition: vlc_es.h:235
@ ES_OUT_SET_ES_FMT
Definition: vlc_es_out.h:71
@ AUDIO_ES
Definition: vlc_es.h:604
int vlc_input_decoder_SetVbiPage(vlc_input_decoder_t *owner, unsigned page)
Definition: decoder.c:2597
int i_channel
Definition: es_out.c:119
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
struct vlc_list node
Definition: es_out.c:152
vlc_clock_main_t * p_main_clock
Definition: es_out.c:104
es_format_t fmt
Definition: es_out.c:124
@ MULTIVIEW_2D
Definition: vlc_es.h:229
int i_prev_stream_level
Definition: es_out.c:229
char key[sizeof("monotonic")]
Definition: es_out.c:269
@ PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD
Definition: vlc_es.h:260
Callbacks for the owner of the main clock.
Definition: clock.h:37
static int es_out_StopAllEs(es_out_t *p_out, vlc_es_id_t ***context)
Definition: es_out.h:156
@ UNKNOWN_ES
Definition: vlc_es.h:602
void vlc_input_decoder_Drain(vlc_input_decoder_t *p_owner)
Signals that there are no further blocks to decode, and requests that the decoder drain all pending b...
Definition: decoder.c:2286
static int es_out_SetFrameNext(es_out_t *p_out)
Definition: es_out.h:202
const char psz_iso639_2T[4]
Definition: vlc_iso_lang.h:34
VLC object common members.
Definition: vlc_objects.h:43
static void ClockUpdate(vlc_tick_t system_ts, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base, void *data)
Definition: es_out.c:2223
vlc_tick_t time
Definition: demux_chained.c:68
es_out_id_t * pp_es[64]
Definition: es_out.c:146
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
vlc_tick_t i_audio_delay
Definition: es_out.c:202
vlc_input_decoder_t * vlc_input_decoder_New(vlc_object_t *parent, es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *resource, sout_instance_t *p_sout, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *cbs_userdata)
Spawns a new decoder thread from the input thread.
Definition: decoder.c:2122
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:208
static char * var_CreateGetNonEmptyString(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:570
void sout_DeleteInstance(sout_instance_t *p_sout)
Definition: stream_output.c:137
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define sout_NewInstance(a, b)
Definition: stream_output.h:42
es_out_es_props_t video
Definition: es_out.c:196
Definition: vlc_iso_lang.h:30
void vlc_input_decoder_ChangePause(vlc_input_decoder_t *p_owner, bool b_paused, vlc_tick_t i_date)
This function changes the pause state.
Definition: decoder.c:2450
static char * EsGetTitle(es_out_id_t *es)
Definition: es_out.c:584
vlc_fourcc_t vlc_fourcc_GetCodecAudio(vlc_fourcc_t i_fourcc, int i_bits)
It converts the given fourcc to an audio codec when possible.
Definition: fourcc.c:127
static void input_SendEventCache(input_thread_t *p_input, double f_level)
Definition: event.h:144
vlc_tick_t i_pts_delay
Definition: es_out.c:206
@ TRANSFER_FUNC_HLG
Definition: vlc_es.h:298
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static int es_out_PrivControl(es_out_t *out, int query,...)
Definition: es_out.h:108
es_out_t * input_EsOutSourceNew(es_out_t *master_out, input_source_t *in)
Definition: es_out_source.c:80
static void EsOutTerminate(es_out_t *)
Definition: es_out.c:664
const input_source_t * vlc_es_id_GetSource(vlc_es_id_t *id)
Definition: es_out.c:4543
static int es_out_SetRecordState(es_out_t *p_out, bool b_record)
Definition: es_out.h:190
@ ES_OUT_RESET_PCR
Definition: vlc_es_out.h:67
@ COLOR_SPACE_UNDEF
Definition: vlc_es.h:313
es_out_t * input_EsOutTimeshiftNew(input_thread_t *, es_out_t *, float i_rate)
Definition: es_out_timeshift.c:332
@ COLOR_SPACE_BT709
Definition: vlc_es.h:315
char * strdup(const char *)
@ ES_OUT_SET_PCR
Definition: vlc_es_out.h:65
char * psz_name
Definition: vlc_epg.h:38
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
uint64_t i_708_channels
Definition: vlc_codec.h:208
static void EsOutProgramEpg(es_out_t *out, input_source_t *source, int i_group, const vlc_epg_t *p_epg)
Definition: es_out.c:1762
vlc_input_decoder_t * p_dec_record
Definition: es_out.c:132
@ ES_OUT_PRIV_SET_ES_LIST
Definition: es_out.h:52
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
@ COLOR_PRIMARIES_BT601_625
Definition: vlc_es.h:270
bool b_present
Definition: vlc_epg.h:58
struct vlc_list programs
Definition: es_out.c:182
char psz_value[8]
Definition: vout_intf.c:99
uint16_t i_source_id
Definition: vlc_epg.h:55
@ CHROMA_LOCATION_TOP_CENTER
Definition: vlc_es.h:332
static int es_out_SetVbiPage(es_out_t *p_out, vlc_es_id_t *id, unsigned page)
Definition: es_out.h:233
@ ES_OUT_ES_POLICY_SIMULTANEOUS
Definition: vlc_es_out.h:124
int vlc_input_decoder_GetCcState(vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel, bool *pb_decode)
This function returns an error if the requested channel does not exist and set pb_decode to the chann...
Definition: decoder.c:2438
@ ES_OUT_PRIV_SET_ES_DELAY
Definition: es_out.h:66
static char * EsInfoCategoryName(es_out_id_t *es)
Definition: es_out.c:1604
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
static bool var_GetBool(vlc_object_t *p_obj, const char *psz_name)
Get a boolean value.
Definition: vlc_variables.h:390
int vlc_input_decoder_SetCcState(vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel, bool b_decode)
This function activates the request closed caption channel.
Definition: decoder.c:2383
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:271
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
bool b_terminated
Definition: es_out.c:129
const char name[16]
Definition: httpd.c:1268
vlc_clock_t * p_clock
Definition: es_out.c:133
#define MULTIVIEW_STEREO_MAX
Definition: vlc_es.h:249
char name[]
Definition: demux_chained.c:72
@ PROJECTION_MODE_EQUIRECTANGULAR
Definition: vlc_es.h:258
static int es_out_StartAllEs(es_out_t *p_out, vlc_es_id_t **context)
Definition: es_out.h:160
input_source_t * source
Definition: es_out.c:100
@ VLC_CLOCK_MASTER_AUTO
Definition: clock.h:43
Definition: demux_chained.c:35
Definition: fourcc_gen.c:51
bool b_scrambled
Definition: es_out.c:100
@ ES_OUT_POST_SUBNODE
Definition: vlc_es_out.h:102
#define VLC_FOURCC(a, b, c, d)
Definition: fourcc_gen.c:37
#define VLC_TICK_0
Definition: vlc_config.h:45
static void EsOutUpdateEsLanguageTitle(es_out_id_t *es, const es_format_t *fmt)
Definition: es_out.c:1937
@ ES_OUT_MODE_PARTIAL
Definition: es_out.h:55
static int EsOutGetClosedCaptionsChannel(const es_format_t *p_fmt)
Definition: es_out.c:309
vlc_vout_order
vout or spu_channel order
Definition: vlc_vout.h:70
static int es_out_SetEs(es_out_t *p_out, vlc_es_id_t *id)
Definition: es_out.h:122
static es_out_pgrm_t * EsOutProgramSearch(es_out_t *p_out, input_source_t *source, int i_group)
Definition: es_out.c:1500
#define N_(str)
Definition: vlc_fixups.h:375
vlc_clock_t * vlc_clock_main_CreateSlave(vlc_clock_main_t *main_clock, enum es_format_category_e cat, const struct vlc_clock_cbs *cbs, void *cbs_data)
This function creates a new slave vlc_clock_t interface.
Definition: clock.c:609
@ VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:313
vlc_tick_t i_pts_level
Definition: es_out.c:138
@ SPU_ES
Definition: vlc_es.h:605
static void decoder_on_vout_started(vlc_input_decoder_t *decoder, vout_thread_t *vout, enum vlc_vout_order order, void *userdata)
Definition: es_out.c:326
int vlc_stream_fifo_Queue(vlc_stream_fifo_t *writer, block_t *block)
Writes a block to a FIFO stream.
Definition: stream_fifo.c:132
@ DEMUX_GET_POSITION
Definition: vlc_demux.h:184
static void EsHold(es_out_id_t *es)
Definition: es_out.c:633
static void EsOutProgramChangePause(es_out_t *out, bool b_paused, vlc_tick_t i_date)
Definition: es_out.c:1108
void vlc_input_decoder_Delete(vlc_input_decoder_t *p_owner)
Kills a decoder thread and waits until it's finished.
Definition: decoder.c:2151
const iso639_lang_t * GetLang_2B(const char *psz_code)
Definition: iso_lang.c:68
@ TRANSFER_FUNC_UNDEF
Definition: vlc_es.h:290
static bool EsOutSelectMatchExplicitParams(const es_out_es_props_t *p_esprops, const es_out_id_t *es)
Definition: es_out.c:2522
void vlc_clock_main_SetFirstPcr(vlc_clock_main_t *main_clock, vlc_tick_t system_now, vlc_tick_t ts)
Definition: clock.c:413
@ MULTIVIEW_STEREO_ROW
Definition: vlc_es.h:238
vlc_mouse_event mouse_event_cb
Definition: es_out.c:154
static void EsOutChangeRate(es_out_t *out, float rate)
Definition: es_out.c:912
char * psz_title
Definition: es_out.c:128
static int es_out_SetEsList(es_out_t *p_out, enum es_format_category_e cat, vlc_es_id_t **ids)
Definition: es_out.h:142
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
@ ES_OUT_SET_GROUP_META
Definition: vlc_es_out.h:76
@ TRANSFER_FUNC_SMPTE_240
Definition: vlc_es.h:297
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:133
es_out_policy_e
Definition: vlc_es_out.h:121
const vlc_epg_event_t * p_current
Definition: vlc_epg.h:59
void vlc_input_decoder_FrameNext(vlc_input_decoder_t *p_owner, vlc_tick_t *pi_duration)
This function force the display of the next picture and fills the stream time consumed.
Definition: decoder.c:2524
size_t i_pos
Definition: es_out.c:123
size_t vlc_input_decoder_GetFifoSize(vlc_input_decoder_t *p_owner)
This function returns the current size in bytes of the decoder fifo.
Definition: decoder.c:2577
@ ES_OUT_MODE_AUTO
Definition: es_out.h:54
enum es_out_policy_e e_policy
Definition: es_out.c:162
void(* vlc_mouse_event)(const vlc_mouse_t *mouse, void *user_data)
Mouse event callback.
Definition: vlc_mouse.h:62
static int EsOutSend(es_out_t *out, es_out_id_t *es, block_t *p_block)
Send a block for the given es_out.
Definition: es_out.c:2834
vlc_tick_t i_dts
Definition: vlc_block.h:130
void vlc_demux_chained_Delete(vlc_demux_chained_t *dc)
Destroys a chained demuxer.
Definition: demux_chained.c:163
int demux_Demux(demux_t *demux)
Definition: demux.c:202
struct vlc_list node
Definition: es_out.c:110
@ ES_OUT_SET_GROUP_PCR
Definition: vlc_es_out.h:66
static void input_SendEvent(input_thread_t *p_input, const struct vlc_input_event *event)
Definition: event.h:30
static es_out_id_t * EsOutGetSelectedCat(es_out_t *out, enum es_format_category_e cat)
Definition: es_out.c:718
double position
Definition: demux_chained.c:66
static void EsOutDelLocked(es_out_t *, es_out_id_t *)
Definition: es_out.c:2972
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
int i_cr_average
Definition: es_out.c:209
vlc_tick_t i_buffering_extra_system
Definition: es_out.c:223
vlc_tick_t i_pause_date
Definition: es_out.c:214
@ COLOR_PRIMARIES_BT709
Definition: vlc_es.h:271
@ ES_OUT_UNSET_ES
Definition: vlc_es_out.h:42
vlc_tick_t i_spu_delay
Definition: es_out.c:203
static const struct vlc_input_decoder_callbacks decoder_cbs
Definition: es_out.c:459
static void EsOutSetEsDelay(es_out_t *out, es_out_id_t *es, vlc_tick_t delay)
Definition: es_out.c:752
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
static void EsOutFillEsFmt(es_out_t *out, es_format_t *fmt)
Definition: es_out.c:1950
@ ES_OUT_SET_ES_CAT_POLICY
Definition: vlc_es_out.h:54
stream_t * reader
Definition: demux_chained.c:59
@ ES_OUT_SET_GROUP_EPG
Definition: vlc_es_out.h:78
static void input_SendEventParsing(input_thread_t *p_input, input_item_node_t *p_root)
Definition: event.h:252
Video output thread descriptor.
Definition: vlc_vout.h:55
@ TRANSFER_FUNC_BT709
Definition: vlc_es.h:295
@ COLOR_RANGE_LIMITED
Definition: vlc_es.h:342
@ ES_OUT_PRIV_SET_EOS
Definition: es_out.h:93
static void EsOutProgramEpgEvent(es_out_t *out, input_source_t *source, int i_group, const vlc_epg_event_t *p_event)
Definition: es_out.c:1744
#define BLOCK_FLAG_DISCONTINUITY
The content doesn't follow the last block, possible some blocks in between have been lost.
Definition: vlc_block.h:67
@ TRANSFER_FUNC_SMPTE_ST2084
Definition: vlc_es.h:296
vlc_clock_t * vlc_clock_main_CreateInputMaster(vlc_clock_main_t *main_clock)
This function creates a new input master vlc_clock_t interface.
Definition: clock.c:583
@ ES_OUT_PRIV_SET_RECORD_STATE
Definition: es_out.h:72
es_out_id_t * vlc_es_id_get_out(vlc_es_id_t *id)
Definition: es_out.c:4501
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
int i_id
Definition: es_out.c:188
static void EsOutSetDelay(es_out_t *out, int i_cat, vlc_tick_t i_delay)
Definition: es_out.c:767
static vlc_tick_t EsOutGetTracksDelay(es_out_t *out)
Definition: es_out.c:3057
int i_mode
Definition: es_out.c:194
int vlc_demux_chained_ControlVa(vlc_demux_chained_t *dc, int query, va_list ap)
Controls a chained demuxer.
Definition: demux_chained.c:138
static es_out_pgrm_t * EsOutProgramInsert(es_out_t *p_out, input_source_t *source, int i_group)
Definition: es_out.c:1515
static int EsOutControlLocked(es_out_t *out, input_source_t *, int i_query,...)
Definition: es_out.c:3047
void vlc_input_decoder_Wait(vlc_input_decoder_t *p_owner)
This function waits for the decoder to actually receive data.
Definition: decoder.c:2500
static void demux_Delete(demux_t *demux)
Definition: vlc_demux.h:290
@ ES_OUT_PRIV_GET_GROUP_FORCED
Definition: es_out.h:90
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
static void * vlc_demux_chained_Thread(void *data)
Definition: demux_chained.c:54
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
static bool es_out_GetEmpty(es_out_t *p_out)
Definition: es_out.h:172
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
@ ES_OUT_PRIV_SET_RATE
Definition: es_out.h:78
Stream output instance.
Definition: stream_output.h:33
static void EsOutSelect(es_out_t *, es_out_id_t *es, bool b_force)
Select an ES given the current mode XXX: you need to take a the lock before (stream....
Definition: es_out.c:2563
static void EsOutChangePause(es_out_t *out, bool b_paused, vlc_tick_t i_date)
Definition: es_out.c:871
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
static void EsOutCreateCCChannels(es_out_t *out, vlc_fourcc_t codec, uint64_t i_bitmap, const char *psz_descfmt, es_out_id_t *parent)
Definition: es_out.c:2787
static void EsOutUpdateInfo(es_out_t *, es_out_id_t *es, const vlc_meta_t *)
Definition: es_out.c:4129
static void EsOutProgramUpdateScrambled(es_out_t *p_out, es_out_pgrm_t *p_pgrm)
Definition: es_out.c:1851
void * mouse_event_userdata
Definition: es_out.c:155
Definition: vlc_atomic.h:41
vlc_es_id_t id
Definition: es_out.c:107
Definition: vlc_block.h:117
static int es_out_UnsetEs(es_out_t *p_out, vlc_es_id_t *id)
Definition: es_out.h:126
void vlc_input_decoder_StopWait(vlc_input_decoder_t *p_owner)
This function exits the waiting mode of the decoder.
Definition: decoder.c:2490
@ ES_OUT_MODE_NONE
Definition: es_out.h:52
static void decoder_on_thumbnail_ready(vlc_input_decoder_t *decoder, picture_t *pic, void *userdata)
Definition: es_out.c:371
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
bool vlc_es_id_IsStrIdStable(vlc_es_id_t *id)
Return whether the ES track identifier is stable.
Definition: es_out.c:4526
bool pb_gain[(2)]
Definition: vlc_es.h:63
@ ES_OUT_VOUT_ADD_OVERLAY
Definition: vlc_es_out.h:108
@ VLC_MUSIC_DIR
Definition: vlc_configuration.h:317
#define VLC_CODEC_CEA708
Definition: vlc_fourcc.h:614
@ ES_OUT_PRIV_GET_BUFFERING
Definition: es_out.h:63
static void EsOutSelectEs(es_out_t *out, es_out_id_t *es, bool b_force)
Definition: es_out.c:2340
float pitch
Definition: vlc_viewpoint.h:43
static char * EsOutProgramGetMetaName(es_out_pgrm_t *p_pgrm)
Definition: es_out.c:1572
vlc_demux_chained_t * vlc_demux_chained_New(vlc_object_t *parent, const char *name, es_out_t *out)
Creates a chained demuxer.
Definition: demux_chained.c:100
float rate
Definition: es_out.c:210
static int EsOutVaPrivControlLocked(es_out_t *out, int query, va_list args)
Definition: es_out.c:3592
#define COLOR_RANGE_MAX
Definition: vlc_es.h:344
static bool EsOutSelectMatchPrioritized(const es_out_es_props_t *p_esprops, const es_out_id_t *es)
Definition: es_out.c:2503
vlc_atomic_rc_t rc
Definition: es_out.c:121
@ MULTIVIEW_STEREO_SBS
Definition: vlc_es.h:232
@ ES_OUT_RESTART_ES
Definition: vlc_es_out.h:43
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
es_out_t * out
Definition: demux_chained.c:71
@ COLOR_PRIMARIES_DCI_P3
Definition: vlc_es.h:273
float fov
Definition: vlc_viewpoint.h:45
#define VLC_CODEC_CEA608
Definition: vlc_fourcc.h:613
@ ES_OUT_PRIV_SET_ES_CAT_IDS
Definition: es_out.h:54
char * str_id
Definition: es_out.c:102
static char * EsOutProgramGetProgramName(es_out_pgrm_t *p_pgrm)
Definition: es_out.c:1589