VLC  4.0.0-dev
event.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * event.h: Input event functions
3  *****************************************************************************
4  * Copyright (C) 2008 Laurent Aimar
5  *
6  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ fr>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 
23 #ifndef LIBVLC_INPUT_EVENT_H
24 #define LIBVLC_INPUT_EVENT_H 1
25 
26 #include <vlc_common.h>
27 #include <vlc_input.h>
28 #include "input_internal.h"
29 
30 static inline void input_SendEvent(input_thread_t *p_input,
31  const struct vlc_input_event *event)
32 {
33  input_thread_private_t *priv = input_priv(p_input);
34  if(priv->events_cb)
35  priv->events_cb(p_input, event, priv->events_data);
36 }
37 
38 /*****************************************************************************
39  * Event for input.c
40  *****************************************************************************/
41 static inline void input_SendEventDead(input_thread_t *p_input)
42 {
43  input_SendEvent(p_input, &(struct vlc_input_event) {
44  .type = INPUT_EVENT_DEAD,
45  });
46 }
47 
48 static inline void input_SendEventCapabilities(input_thread_t *p_input,
49  int i_capabilities)
50 {
51  input_SendEvent(p_input, &(struct vlc_input_event) {
53  .capabilities = i_capabilities
54  });
55 }
56 
57 static inline void input_SendEventTimes(input_thread_t *p_input,
58  double f_position, vlc_tick_t i_time,
59  vlc_tick_t i_normal_time,
60  vlc_tick_t i_length)
61 {
62  input_SendEvent(p_input, &(struct vlc_input_event) {
63  .type = INPUT_EVENT_TIMES,
64  .times = { f_position, i_time, i_normal_time, i_length }
65  });
66 }
67 
68 static inline void input_SendEventOutputClock(input_thread_t *p_input,
69  vlc_es_id_t *id, bool master,
70  vlc_tick_t system_ts,
71  vlc_tick_t ts, double rate,
72  unsigned frame_rate,
73  unsigned frame_rate_base)
74 {
75  input_SendEvent(p_input, &(struct vlc_input_event) {
77  .output_clock = { id, master, system_ts, ts, rate,
78  frame_rate, frame_rate_base }
79  });
80 }
81 
82 static inline void input_SendEventStatistics(input_thread_t *p_input,
83  const struct input_stats_t *stats)
84 {
85  input_SendEvent(p_input, &(struct vlc_input_event) {
86  .type = INPUT_EVENT_STATISTICS,
87  .stats = stats,
88  });
89 }
90 
91 static inline void input_SendEventRate(input_thread_t *p_input, float rate)
92 {
93  input_SendEvent(p_input, &(struct vlc_input_event) {
94  .type = INPUT_EVENT_RATE,
95  .rate = rate,
96  });
97 }
98 
99 static inline void input_SendEventRecord(input_thread_t *p_input,
100  bool b_recording)
101 {
102  input_SendEvent(p_input, &(struct vlc_input_event) {
103  .type = INPUT_EVENT_RECORD,
104  .record = b_recording
105  });
106 }
107 
108 static inline void input_SendEventTitle(input_thread_t *p_input,
109  const struct vlc_input_event_title *title)
110 {
111  input_SendEvent(p_input, &(struct vlc_input_event) {
112  .type = INPUT_EVENT_TITLE,
113  .title = *title
114  });
115 }
116 
117 static inline void input_SendEventSeekpoint(input_thread_t *p_input,
118  int i_title, int i_seekpoint)
119 {
120  input_SendEvent(p_input, &(struct vlc_input_event) {
121  .type = INPUT_EVENT_CHAPTER,
122  .chapter = { i_title, i_seekpoint }
123  });
124 }
125 
126 static inline void input_SendEventSignal(input_thread_t *p_input,
127  double f_quality, double f_strength)
128 {
129  input_SendEvent(p_input, &(struct vlc_input_event) {
130  .type = INPUT_EVENT_SIGNAL,
131  .signal = { f_quality, f_strength }
132  });
133 }
134 
135 static inline void input_SendEventState(input_thread_t *p_input, int i_state,
136  vlc_tick_t state_date)
137 {
138  input_SendEvent(p_input, &(struct vlc_input_event) {
139  .type = INPUT_EVENT_STATE,
140  .state = { i_state, state_date, },
141  });
142 }
143 
144 static inline void input_SendEventCache(input_thread_t *p_input, double f_level)
145 {
146  input_SendEvent(p_input, &(struct vlc_input_event) {
147  .type = INPUT_EVENT_CACHE,
148  .cache = f_level
149  });
150 }
151 
152 static inline void input_SendEventMeta(input_thread_t *p_input)
153 {
154  input_SendEvent(p_input, &(struct vlc_input_event) {
155  .type = INPUT_EVENT_ITEM_META,
156  });
157 }
158 
159 static inline void input_SendEventMetaInfo(input_thread_t *p_input)
160 {
161  input_SendEvent(p_input, &(struct vlc_input_event) {
162  .type = INPUT_EVENT_ITEM_INFO,
163  });
164 }
165 
166 static inline void input_SendEventMetaEpg(input_thread_t *p_input)
167 {
168  input_SendEvent(p_input, &(struct vlc_input_event) {
169  .type = INPUT_EVENT_ITEM_EPG,
170  });
171 }
172 
173 static inline void input_SendEventSubsFPS(input_thread_t *p_input, float fps)
174 {
175  input_SendEvent(p_input, &(struct vlc_input_event) {
176  .type = INPUT_EVENT_SUBS_FPS,
177  .subs_fps = fps,
178  });
179 }
180 
181 /*****************************************************************************
182  * Event for es_out.c
183  *****************************************************************************/
184 static inline void input_SendEventProgramAdd(input_thread_t *p_input,
185  int i_program, const char *psz_text)
186 {
187  input_SendEvent(p_input, &(struct vlc_input_event) {
188  .type = INPUT_EVENT_PROGRAM,
189  .program = {
190  .action = VLC_INPUT_PROGRAM_ADDED,
191  .id = i_program,
192  .title = psz_text
193  }
194  });
195 }
196 static inline void input_SendEventProgramUpdated(input_thread_t *p_input,
197  int i_program, const char *psz_text)
198 {
199  input_SendEvent(p_input, &(struct vlc_input_event) {
200  .type = INPUT_EVENT_PROGRAM,
201  .program = {
202  .action = VLC_INPUT_PROGRAM_UPDATED,
203  .id = i_program,
204  .title = psz_text
205  }
206  });
207 }
208 static inline void input_SendEventProgramDel(input_thread_t *p_input,
209  int i_program)
210 {
211  input_SendEvent(p_input, &(struct vlc_input_event) {
212  .type = INPUT_EVENT_PROGRAM,
213  .program = {
214  .action = VLC_INPUT_PROGRAM_DELETED,
215  .id = i_program
216  }
217  });
218 }
219 static inline void input_SendEventProgramSelect(input_thread_t *p_input,
220  int i_program)
221 {
222  input_SendEvent(p_input, &(struct vlc_input_event) {
223  .type = INPUT_EVENT_PROGRAM,
224  .program = {
225  .action = VLC_INPUT_PROGRAM_SELECTED,
226  .id = i_program
227  }
228  });
229 }
231  int i_group, bool b_scrambled)
232 {
233  input_SendEvent(p_input, &(struct vlc_input_event) {
234  .type = INPUT_EVENT_PROGRAM,
235  .program = {
236  .action = VLC_INPUT_PROGRAM_SCRAMBLED,
237  .id = i_group,
238  .scrambled = b_scrambled
239  }
240  });
241 }
242 
243 static inline void input_SendEventEs(input_thread_t *p_input,
244  const struct vlc_input_event_es *es_event)
245 {
246  input_SendEvent(p_input, &(struct vlc_input_event) {
247  .type = INPUT_EVENT_ES,
248  .es = *es_event,
249  });
250 }
251 
252 static inline void input_SendEventParsing(input_thread_t *p_input,
253  input_item_node_t *p_root)
254 {
255  input_SendEvent(p_input, &(struct vlc_input_event) {
256  .type = INPUT_EVENT_SUBITEMS,
257  .subitems = p_root,
258  });
259 }
260 
261 static inline void input_SendEventVbiPage(input_thread_t *p_input, unsigned page)
262 {
263  input_SendEvent(p_input, &(struct vlc_input_event) {
264  .type = INPUT_EVENT_VBI_PAGE,
265  .vbi_page = page,
266  });
267 }
268 
269 static inline void input_SendEventVbiTransparency(input_thread_t *p_input,
270  bool transparent)
271 {
272  input_SendEvent(p_input, &(struct vlc_input_event) {
274  .vbi_transparent = transparent,
275  });
276 }
277 
278 /*****************************************************************************
279  * Event for resource.c
280  *****************************************************************************/
281 static inline void input_SendEventVout(input_thread_t *p_input,
282  const struct vlc_input_event_vout *event)
283 {
284  input_SendEvent(p_input, &(struct vlc_input_event) {
285  .type = INPUT_EVENT_VOUT,
286  .vout = *event,
287  });
288 }
289 
290 /*****************************************************************************
291  * Event for control.c/input.c
292  *****************************************************************************/
293 static inline void input_SendEventBookmark(input_thread_t *p_input)
294 {
295  input_SendEvent(p_input, &(struct vlc_input_event) {
296  .type = INPUT_EVENT_BOOKMARK
297  });
298 }
299 
300 #endif
INPUT_EVENT_ES
@ INPUT_EVENT_ES
Definition: input_internal.h:107
ControlLockedGetWakeup
static int ControlLockedGetWakeup(es_out_t *p_out, vlc_tick_t *pi_wakeup)
Definition: es_out_timeshift.c:543
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
es_out_sys_t::p_out
es_out_t * p_out
Definition: es_out_timeshift.c:255
input_SendEventOutputClock
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
input_CanPaceControl
bool input_CanPaceControl(input_thread_t *input)
Definition: input.c:3547
count
size_t count
Definition: core.c:401
ControlLockedSetRate
static int ControlLockedSetRate(es_out_t *p_out, float src_rate, float rate)
Definition: es_out_timeshift.c:605
ts_thread_t::rate_source
float rate_source
Definition: es_out_timeshift.c:232
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:61
ts_storage_t::p_cmd_r
uint8_t * p_cmd_r
Definition: es_out_timeshift.c:206
es_out_sys_t::input_rate
float input_rate
Definition: es_out_timeshift.c:271
EsOutSourceDel
static void EsOutSourceDel(es_out_t *out, es_out_id_t *es)
Definition: es_out_source.c:60
INPUT_EVENT_TITLE
@ INPUT_EVENT_TITLE
Definition: input_internal.h:99
es_out_sys_t::p_input
input_thread_t * p_input
Definition: es_out.c:174
ES_OUT_PRIV_SET_VBI_TRANSPARENCY
@ ES_OUT_PRIV_SET_VBI_TRANSPARENCY
Definition: es_out.h:99
ts_cmd_add_t
Definition: es_out_timeshift.c:77
input_SendEventVbiTransparency
static void input_SendEventVbiTransparency(input_thread_t *p_input, bool transparent)
Definition: event.h:269
ts_thread_t::p_tsout
es_out_t * p_tsout
Definition: es_out_timeshift.c:216
ES_OUT_MODIFY_PCR_SYSTEM
@ ES_OUT_MODIFY_PCR_SYSTEM
Definition: vlc_es_out.h:100
es_out_sys_t::p_ts
ts_thread_t * p_ts
Definition: es_out_timeshift.c:266
input_SendEventMetaEpg
static void input_SendEventMetaEpg(input_thread_t *p_input)
Definition: event.h:166
es_out_callbacks::add
es_out_id_t *(* add)(es_out_t *, input_source_t *in, const es_format_t *)
Definition: vlc_es_out.h:132
ts_thread_t::p_input
input_thread_t * p_input
Definition: es_out_timeshift.c:215
ControlLockedGetBuffering
static int ControlLockedGetBuffering(es_out_t *p_out, bool *pb_buffering)
Definition: es_out_timeshift.c:559
Send
static int Send(es_out_t *p_out, es_out_id_t *p_es, block_t *p_block)
Definition: es_out_timeshift.c:472
ES_OUT_SET_GROUP_EPG_EVENT
@ ES_OUT_SET_GROUP_EPG_EVENT
Definition: vlc_es_out.h:79
input_SendEventVbiPage
static void input_SendEventVbiPage(input_thread_t *p_input, unsigned page)
Definition: event.h:261
input_SendEventDead
static void input_SendEventDead(input_thread_t *p_input)
Definition: event.h:41
ts_cmd_header_t::i_type
int8_t i_type
Definition: es_out_timeshift.c:73
input_SendEventSignal
static void input_SendEventSignal(input_thread_t *p_input, double f_quality, double f_strength)
Definition: event.h:126
ES_OUT_SET_META
@ ES_OUT_SET_META
Definition: vlc_es_out.h:96
ts_thread_t::p_out
es_out_t * p_out
Definition: es_out_timeshift.c:217
ts_cmd_send_t::p_block
block_t * p_block
Definition: es_out_timeshift.c:96
input_SendEventMeta
static void input_SendEventMeta(input_thread_t *p_input)
Definition: event.h:152
vlc_meta_Merge
void vlc_meta_Merge(vlc_meta_t *dst, const vlc_meta_t *src)
Merging meta.
Definition: meta.c:175
ts_cmd_control_t::int_epg_evt
struct ts_cmd_control_t::@16::@20 int_epg_evt
ts_cmd_control_t::p_meta
vlc_meta_t * p_meta
Definition: es_out_timeshift.c:121
vlc_spu_highlight_t
Definition: vlc_subpicture.h:85
es_out_sys_t::out
es_out_t out
Definition: es_out.c:231
ts_cmd_privcontrol_t::i_cr_average
int i_cr_average
Definition: es_out_timeshift.c:163
ts_cmd_send_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:94
vlc_sem_init
void vlc_sem_init(vlc_sem_t *sem, unsigned value)
Initializes a semaphore.
Definition: threads.c:442
vlc_epg_event_t
Definition: vlc_epg.h:32
input_SendEventProgramSelect
static void input_SendEventProgramSelect(input_thread_t *p_input, int i_program)
Definition: event.h:219
es_out_sys_t::input_rate_source
float input_rate_source
Definition: es_out_timeshift.c:272
TsStorageNew
static ts_storage_t * TsStorageNew(const char *psz_path, int64_t i_tmp_size_max)
Definition: es_out_timeshift.c:1212
TsChangeRate
static int TsChangeRate(ts_thread_t *, float src_rate, float rate)
Definition: es_out_timeshift.c:1072
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
INPUT_EVENT_PROGRAM
@ INPUT_EVENT_PROGRAM
Definition: input_internal.h:105
ES_OUT_PRIV_GET_WAKE_UP
@ ES_OUT_PRIV_GET_WAKE_UP
Definition: es_out.h:49
input_SendEventSeekpoint
static void input_SendEventSeekpoint(input_thread_t *p_input, int i_title, int i_seekpoint)
Definition: event.h:117
ts_thread_t::p_storage_w
ts_storage_t * p_storage_w
Definition: es_out_timeshift.c:241
ts_thread_t::i_rate_delay
vlc_tick_t i_rate_delay
Definition: es_out_timeshift.c:234
vlc_common.h
ES_OUT_VOUT_SET_MOUSE_EVENT
@ ES_OUT_VOUT_SET_MOUSE_EVENT
Definition: vlc_es_out.h:104
INPUT_EVENT_VBI_PAGE
@ INPUT_EVENT_VBI_PAGE
Definition: input_internal.h:137
CmdExecuteSend
static int CmdExecuteSend(es_out_t *, ts_cmd_send_t *)
Definition: es_out_timeshift.c:1472
input_source_Hold
input_source_t * input_source_Hold(input_source_t *in)
Hold the input_source_t.
Definition: input.c:2836
CmdClean
static void CmdClean(ts_cmd_t *)
Definition: es_out_timeshift.c:1406
ts_cmd_header_t
Definition: es_out_timeshift.c:71
ES_OUT_DEL_GROUP
@ ES_OUT_DEL_GROUP
Definition: vlc_es_out.h:83
ts_cmd_privcontrol_t::i_pts_delay
vlc_tick_t i_pts_delay
Definition: es_out_timeshift.c:161
input_SendEventVout
static void input_SendEventVout(input_thread_t *p_input, const struct vlc_input_event_vout *event)
Definition: event.h:281
DIR_SEP
#define DIR_SEP
Definition: vlc_common.h:1221
input_SendEventProgramDel
static void input_SendEventProgramDel(input_thread_t *p_input, int i_program)
Definition: event.h:208
ES_OUT_PRIV_UNSET_ES
@ ES_OUT_PRIV_UNSET_ES
Definition: es_out.h:45
vlc_mkstemp
int vlc_mkstemp(char *template)
Definition: filesystem.c:204
ES_OUT_SET_NEXT_DISPLAY_TIME
@ ES_OUT_SET_NEXT_DISPLAY_TIME
Definition: vlc_es_out.h:74
ES_OUT_PRIV_STOP_ALL_ES
@ ES_OUT_PRIV_STOP_ALL_ES
Definition: es_out.h:58
ES_OUT_VOUT_DEL_OVERLAY
@ ES_OUT_VOUT_DEL_OVERLAY
Definition: vlc_es_out.h:111
es_out_sys_t::lock
vlc_mutex_t lock
Definition: es_out.c:179
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
ES_OUT_PRIV_SET_VBI_PAGE
@ ES_OUT_PRIV_SET_VBI_PAGE
Definition: es_out.h:96
vlc_es_out.h
ts_cmd_privcontrol_t::times
struct ts_cmd_privcontrol_t::@24::@26 times
ts_cmd_privcontrol_t::i_time
vlc_tick_t i_time
Definition: es_out_timeshift.c:168
input_SendEventProgramScrambled
static void input_SendEventProgramScrambled(input_thread_t *p_input, int i_group, bool b_scrambled)
Definition: event.h:230
input_SendEventTimes
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
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
ts_cmd_control_t::in
input_source_t * in
Definition: es_out_timeshift.c:105
es_out.h
es_out_GetWakeup
static vlc_tick_t es_out_GetWakeup(es_out_t *p_out)
Definition: es_out.h:134
input_EsOutSourceNew
es_out_t * input_EsOutSourceNew(es_out_t *parent_out, input_source_t *in)
Definition: es_out_source.c:80
ts_thread_t::p_storage_r
ts_storage_t * p_storage_r
Definition: es_out_timeshift.c:240
es_out_sys_t
Definition: es_out.c:172
TsAutoStop
static void TsAutoStop(es_out_t *)
Definition: es_out_timeshift.c:925
ES_OUT_GET_ES_STATE
@ ES_OUT_GET_ES_STATE
Definition: vlc_es_out.h:51
es_out_sys_t::b_input_paused_source
bool b_input_paused_source
Definition: es_out_timeshift.c:270
es_out_vaPrivControl
static int es_out_vaPrivControl(es_out_t *out, int query, va_list args)
Definition: es_out.h:102
CmdInitSend
static void CmdInitSend(ts_cmd_send_t *, es_out_id_t *, block_t *)
Definition: es_out_timeshift.c:1465
ts_cmd_privcontrol_t::jitter
struct ts_cmd_privcontrol_t::@24::@25 jitter
ts_storage_t
Definition: es_out_timeshift.c:192
es_out_cbs
static const struct es_out_callbacks es_out_cbs
Definition: es_out.c:527
ES_OUT_SET_EPG_TIME
@ ES_OUT_SET_EPG_TIME
Definition: vlc_es_out.h:80
ES_OUT_PRIV_SET_ES
@ ES_OUT_PRIV_SET_ES
Definition: es_out.h:44
INPUT_EVENT_RECORD
@ INPUT_EVENT_RECORD
Definition: input_internal.h:110
ES_OUT_SET_ES_SCRAMBLED_STATE
@ ES_OUT_SET_ES_SCRAMBLED_STATE
Definition: vlc_es_out.h:86
vlc_charset.h
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_input_event_es
Definition: input_internal.h:218
ts_thread_t::i_pause_date
vlc_tick_t i_pause_date
Definition: es_out_timeshift.c:228
ts_cmd_control_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:103
ES_OUT_PRIV_START_ALL_ES
@ ES_OUT_PRIV_START_ALL_ES
Definition: es_out.h:60
input_source_Release
void input_source_Release(input_source_t *in)
Release the input_source_t.
Definition: input.c:2842
TsStoragePopCmd
static void TsStoragePopCmd(ts_storage_t *p_storage, ts_cmd_t *p_cmd, bool b_flush)
Definition: es_out_timeshift.c:1366
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
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
input_SendEventMetaInfo
static void input_SendEventMetaInfo(input_thread_t *p_input)
Definition: event.h:159
INPUT_EVENT_CAPABILITIES
@ INPUT_EVENT_CAPABILITIES
Definition: input_internal.h:89
ES_OUT_PRIV_SET_DELAY
@ ES_OUT_PRIV_SET_DELAY
Definition: es_out.h:69
ES_OUT_PRIV_SET_TIMES
@ ES_OUT_PRIV_SET_TIMES
Definition: es_out.h:84
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
var_InheritString
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
TsStop
static void TsStop(ts_thread_t *)
Definition: es_out_timeshift.c:937
input_stats_t
Definition: vlc_input_item.h:507
es_out_callbacks::control
int(* control)(es_out_t *, input_source_t *in, int query, va_list)
Definition: vlc_es_out.h:135
ts_cmd_control_t::p_evt
vlc_epg_event_t * p_evt
Definition: es_out_timeshift.c:131
EsOutSourceAdd
static es_out_id_t * EsOutSourceAdd(es_out_t *out, input_source_t *in, const es_format_t *fmt)
Definition: es_out_source.c:46
es_out_timeshift_cbs
static const struct es_out_callbacks es_out_timeshift_cbs
Definition: es_out_timeshift.c:327
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
ts_storage_t::i_file_size
int64_t i_file_size
Definition: es_out_timeshift.c:201
vlc_input_event
Definition: input_internal.h:261
CmdInitAdd
static int CmdInitAdd(ts_cmd_add_t *, input_source_t *, es_out_id_t *, const es_format_t *, bool b_copy)
Definition: es_out_timeshift.c:1429
ES_OUT_SET_GROUP
@ ES_OUT_SET_GROUP
Definition: vlc_es_out.h:57
ts_cmd_send_t
Definition: es_out_timeshift.c:91
vlc_input.h
ts_thread_t::wait
vlc_cond_t wait
Definition: es_out_timeshift.c:223
input_EsOutTimeshiftNew
es_out_t * input_EsOutTimeshiftNew(input_thread_t *p_input, es_out_t *p_next_out, float rate)
Definition: es_out_timeshift.c:332
ts_cmd_t::del
ts_cmd_del_t del
Definition: es_out_timeshift.c:179
block_t::i_length
vlc_tick_t i_length
Definition: vlc_block.h:131
ts_cmd_control_t::i_cat
int i_cat
Definition: es_out_timeshift.c:145
ES_OUT_GET_PCR_SYSTEM
@ ES_OUT_GET_PCR_SYSTEM
Definition: vlc_es_out.h:99
ts_storage_t::p_next
ts_storage_t * p_next
Definition: es_out_timeshift.c:194
ts_cmd_control_t::p_fmt
es_format_t * p_fmt
Definition: es_out_timeshift.c:141
Destroy
static void Destroy(es_out_t *p_out)
Definition: es_out_timeshift.c:425
INPUT_EVENT_SIGNAL
@ INPUT_EVENT_SIGNAL
Definition: input_internal.h:122
ts_cmd_control_t
Definition: es_out_timeshift.c:101
C_SEND
@ C_SEND
Definition: es_out_timeshift.c:65
asprintf
int asprintf(char **, const char *,...)
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
ts_cmd_privcontrol_t::i_normal_time
vlc_tick_t i_normal_time
Definition: es_out_timeshift.c:169
INPUT_EVENT_CACHE
@ INPUT_EVENT_CACHE
Definition: input_internal.h:128
ts_cmd_t::control
ts_cmd_control_t control
Definition: es_out_timeshift.c:181
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
TsDestroy
static void TsDestroy(ts_thread_t *p_ts)
Definition: es_out_timeshift.c:878
input_SendEventStatistics
static void input_SendEventStatistics(input_thread_t *p_input, const struct input_stats_t *stats)
Definition: event.h:82
INPUT_CONTROL_SET_RATE
@ INPUT_CONTROL_SET_RATE
Definition: input_internal.h:551
ES_OUT_SPU_SET_HIGHLIGHT
@ ES_OUT_SPU_SET_HIGHLIGHT
Definition: vlc_es_out.h:114
TsChangePause
static int TsChangePause(ts_thread_t *, bool b_source_paused, bool b_paused, vlc_tick_t i_date)
Definition: es_out_timeshift.c:1040
es_out_t::cbs
const struct es_out_callbacks * cbs
Definition: vlc_es_out.h:145
ES_OUT_PRIV_SET_PAUSE_STATE
@ ES_OUT_PRIV_SET_PAUSE_STATE
Definition: es_out.h:75
vlc_meta_t
Definition: meta.c:39
ts_thread_t::done
vlc_sem_t done
Definition: es_out_timeshift.c:224
C_ADD
@ C_ADD
Definition: es_out_timeshift.c:64
ES_OUT_SET_ES_DEFAULT
@ ES_OUT_SET_ES_DEFAULT
Definition: vlc_es_out.h:46
ts_storage_t::i_file_max
size_t i_file_max
Definition: es_out_timeshift.c:200
C_PRIVCONTROL
@ C_PRIVCONTROL
Definition: es_out_timeshift.c:68
ts_thread_t::i_buffering_delay
vlc_tick_t i_buffering_delay
Definition: es_out_timeshift.c:237
ES_OUT_PRIV_SET_MODE
@ ES_OUT_PRIV_SET_MODE
Definition: es_out.h:41
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
es_out_id_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:249
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
ts_cmd_del_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:88
es_out_t
Definition: vlc_es_out.h:143
ts_cmd_del_t
Definition: es_out_timeshift.c:85
GetTmpFile
static int GetTmpFile(char **ppsz_file, const char *psz_path)
Definition: es_out_timeshift.c:1824
ES_OUT_PRIV_SET_JITTER
@ ES_OUT_PRIV_SET_JITTER
Definition: es_out.h:87
CmdExecuteAdd
static void CmdExecuteAdd(es_out_t *, ts_cmd_add_t *)
Definition: es_out_timeshift.c:1450
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
INPUT_EVENT_DEAD
@ INPUT_EVENT_DEAD
Definition: input_internal.h:83
vlc_mutex_init_recursive
void vlc_mutex_init_recursive(vlc_mutex_t *mtx)
Initializes a recursive mutex.
Definition: threads.c:128
es_out_SetPauseState
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
PrivControlLocked
static int PrivControlLocked(es_out_t *p_tsout, int i_query, va_list args)
Definition: es_out_timeshift.c:779
vlc_fopen
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
TsHasCmd
static bool TsHasCmd(ts_thread_t *)
Definition: es_out_timeshift.c:1018
TsStoragePack
static void TsStoragePack(ts_storage_t *p_storage)
Definition: es_out_timeshift.c:1294
input_SendEventProgramUpdated
static void input_SendEventProgramUpdated(input_thread_t *p_input, int i_program, const char *psz_text)
Definition: event.h:196
ControlLockedSetPauseState
static int ControlLockedSetPauseState(es_out_t *p_out, bool b_source_paused, bool b_paused, vlc_tick_t i_date)
Definition: es_out_timeshift.c:570
var_CreateGetInteger
static int64_t var_CreateGetInteger(vlc_object_t *p_obj, const char *psz_name)
Create a integer variable with inherit and get its value.
Definition: vlc_variables.h:523
Del
static void Del(es_out_t *, es_out_id_t *)
Definition: es_out_timeshift.c:492
ts_thread_t::i_cmd_delay
vlc_tick_t i_cmd_delay
Definition: es_out_timeshift.c:243
ts_cmd_control_t::es_fmt
struct ts_cmd_control_t::@16::@22 es_fmt
es_out_SetRate
static int es_out_SetRate(es_out_t *p_out, float source_rate, float rate)
Definition: es_out.h:198
ts_cmd_control_t::i_i64
int64_t i_i64
Definition: es_out_timeshift.c:111
vlc_tick_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
Control
static int Control(es_out_t *p_tsout, input_source_t *in, int i_query, va_list args)
Definition: es_out_timeshift.c:763
ts_thread_t::lock
vlc_mutex_t lock
Definition: es_out_timeshift.c:222
ts_thread_t::i_rate_date
vlc_tick_t i_rate_date
Definition: es_out_timeshift.c:233
INPUT_EVENT_STATE
@ INPUT_EVENT_STATE
Definition: input_internal.h:81
es_format_t
Definition: vlc_es.h:617
ES_OUT_PRIV_SET_FRAME_NEXT
@ ES_OUT_PRIV_SET_FRAME_NEXT
Definition: es_out.h:81
TsStart
static int TsStart(es_out_t *)
Definition: es_out_timeshift.c:882
vlc_value_t::f_float
float f_float
Definition: vlc_common.h:461
vlc_atomic.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
ts_cmd_t::send
ts_cmd_send_t send
Definition: es_out_timeshift.c:180
block_Alloc
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
block_t::i_flags
uint32_t i_flags
Definition: vlc_block.h:126
subpicture_t
Video subtitle.
Definition: vlc_subpicture.h:166
CmdInitDel
static int CmdInitDel(ts_cmd_del_t *, es_out_id_t *)
Definition: es_out_timeshift.c:1493
ts_cmd_privcontrol_t::i_length
vlc_tick_t i_length
Definition: es_out_timeshift.c:170
input_SendEventTitle
static void input_SendEventTitle(input_thread_t *p_input, const struct vlc_input_event_title *title)
Definition: event.h:108
ts_storage_t::p_filew
FILE * p_filew
Definition: es_out_timeshift.c:202
ts_cmd_send_t::i_offset
int i_offset
Definition: es_out_timeshift.c:97
Add
static es_out_id_t * Add(es_out_t *p_out, input_source_t *in, const es_format_t *p_fmt)
Definition: es_out_timeshift.c:443
input_thread_private_t
Private input fields.
Definition: input_internal.h:465
INPUT_EVENT_ITEM_INFO
@ INPUT_EVENT_ITEM_INFO
Definition: input_internal.h:115
ES_OUT_SET_ES
@ ES_OUT_SET_ES
Definition: vlc_es_out.h:41
ts_thread_t::thread
vlc_thread_t thread
Definition: es_out_timeshift.c:214
vlc_meta_Delete
void vlc_meta_Delete(vlc_meta_t *m)
Definition: meta.c:108
block_t::i_nb_samples
unsigned i_nb_samples
Definition: vlc_block.h:127
input_SendEventCapabilities
static void input_SendEventCapabilities(input_thread_t *p_input, int i_capabilities)
Definition: event.h:48
lock
vlc_mutex_t lock
Definition: rand.c:50
input_SendEventProgramAdd
static void input_SendEventProgramAdd(input_thread_t *p_input, int i_program, const char *psz_text)
Definition: event.h:184
CmdExecuteControl
static int CmdExecuteControl(es_out_t *, ts_cmd_control_t *)
Definition: es_out_timeshift.c:1652
vlc_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:79
ts_cmd_t::privcontrol
ts_cmd_privcontrol_t privcontrol
Definition: es_out_timeshift.c:182
ts_storage_t::p_cmd_buf
uint8_t * p_cmd_buf
Definition: es_out_timeshift.c:208
ts_cmd_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:177
input_SendEventEs
static void input_SendEventEs(input_thread_t *p_input, const struct vlc_input_event_es *es_event)
Definition: event.h:243
ControlLockedSetFrameNext
static int ControlLockedSetFrameNext(es_out_t *p_out)
Definition: es_out_timeshift.c:641
vlc_meta_New
vlc_meta_t * vlc_meta_New(void)
vlc_meta contructor.
Definition: meta.c:90
INPUT_EVENT_CHAPTER
@ INPUT_EVENT_CHAPTER
Definition: input_internal.h:101
ts_thread_t::b_paused
bool b_paused
Definition: es_out_timeshift.c:227
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
input_source_t
Definition: input_internal.h:373
CmdInitControl
static int CmdInitControl(ts_cmd_control_t *, input_source_t *, int i_query, va_list, bool b_copy)
Definition: es_out_timeshift.c:1509
ts_thread_t::rate
float rate
Definition: es_out_timeshift.c:231
ES_OUT_SET_ES_STATE
@ ES_OUT_SET_ES_STATE
Definition: vlc_es_out.h:50
TsStoragePushCmd
static void TsStoragePushCmd(ts_storage_t *, const ts_cmd_t *p_cmd, bool b_flush)
Definition: es_out_timeshift.c:1328
EsOutSourceDestroy
static void EsOutSourceDestroy(es_out_t *out)
Definition: es_out_source.c:74
input_thread_private_t::events_cb
input_thread_events_cb events_cb
Definition: input_internal.h:469
es_out_GetBuffering
static bool es_out_GetBuffering(es_out_t *p_out)
Definition: es_out.h:164
es_out_sys_t::pp_es
es_out_id_t ** pp_es
Definition: es_out_timeshift.c:276
block_t::i_pts
vlc_tick_t i_pts
Definition: vlc_block.h:129
es_out_callbacks
Definition: vlc_es_out.h:130
ts_cmd_control_t::b_bool
bool b_bool
Definition: es_out_timeshift.c:109
ES_OUT_GET_EMPTY
@ ES_OUT_GET_EMPTY
Definition: vlc_es_out.h:93
es_out_id_t
Definition: es_out.c:105
INPUT_EVENT_ITEM_META
@ INPUT_EVENT_ITEM_META
Definition: input_internal.h:113
MAX_COMMAND_SIZE
#define MAX_COMMAND_SIZE
Definition: es_out_timeshift.c:1200
ts_cmd_control_t::int_i64
struct ts_cmd_control_t::@16::@17 int_i64
ControlLockedGetEmpty
static int ControlLockedGetEmpty(es_out_t *p_out, input_source_t *in, bool *pb_empty)
Definition: es_out_timeshift.c:528
input_SendEventSubsFPS
static void input_SendEventSubsFPS(input_thread_t *p_input, float fps)
Definition: event.h:173
static_assert
#define static_assert
Definition: vlc_fixups.h:370
ES_OUT_PRIV_RESTART_ES
@ ES_OUT_PRIV_RESTART_ES
Definition: es_out.h:46
TsRun
static void * TsRun(void *)
Definition: es_out_timeshift.c:1090
ts_cmd_add_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:79
vlc_es_id_t
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:94
ts_cmd_privcontrol_t::i_int
int i_int
Definition: es_out_timeshift.c:158
ts_storage_t::i_cmd_buf
size_t i_cmd_buf
Definition: es_out_timeshift.c:209
ES_OUT_SET_ES_FMT
@ ES_OUT_SET_ES_FMT
Definition: vlc_es_out.h:71
TsStorageIsFull
static bool TsStorageIsFull(ts_storage_t *, const ts_cmd_t *p_cmd)
Definition: es_out_timeshift.c:1311
input_ControlPushHelper
static int input_ControlPushHelper(input_thread_t *p_input, int i_type, vlc_value_t *val)
Definition: input_internal.h:610
TsIsUnused
static bool TsIsUnused(ts_thread_t *)
Definition: es_out_timeshift.c:1028
EsOutSourceControl
static int EsOutSourceControl(es_out_t *out, input_source_t *in, int query, va_list args)
Definition: es_out_source.c:66
container_of
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
C_DEL
@ C_DEL
Definition: es_out_timeshift.c:66
vlc_fs.h
ts_thread_t
Definition: es_out_timeshift.c:212
ts_cmd_privcontrol_t::i_pts_jitter
vlc_tick_t i_pts_jitter
Definition: es_out_timeshift.c:162
ts_thread_t::psz_tmp_path
const char * psz_tmp_path
Definition: es_out_timeshift.c:219
vlc_input_event_vout
Definition: input_internal.h:250
ts_cmd_add_t::p_fmt
es_format_t * p_fmt
Definition: es_out_timeshift.c:82
es_out_SetFrameNext
static int es_out_SetFrameNext(es_out_t *p_out)
Definition: es_out.h:202
CmdCleanControl
static void CmdCleanControl(ts_cmd_control_t *)
Definition: es_out_timeshift.c:1723
DIR_SEP_CHAR
#define DIR_SEP_CHAR
Definition: vlc_common.h:1220
vlc_epg_t
Definition: vlc_epg.h:51
vlc_mouse.h
TsStorageSizeofCommand
static const size_t TsStorageSizeofCommand[]
Definition: es_out_timeshift.c:1203
ts_cmd_control_t::int_epg
struct ts_cmd_control_t::@16::@19 int_epg
es_out_Del
static void es_out_Del(es_out_t *out, es_out_id_t *id)
Definition: vlc_es_out.h:154
input_thread_private_t::events_data
void * events_data
Definition: input_internal.h:470
CmdExecuteDel
static void CmdExecuteDel(es_out_t *, ts_cmd_del_t *)
Definition: es_out_timeshift.c:1500
ts_cmd_privcontrol_t::f_position
double f_position
Definition: es_out_timeshift.c:167
es_out_sys_t::i_es
int i_es
Definition: es_out_timeshift.c:275
VLC_THREAD_PRIORITY_INPUT
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:208
INPUT_EVENT_TIMES
@ INPUT_EVENT_TIMES
Definition: input_internal.h:92
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
input_SendEventCache
static void input_SendEventCache(input_thread_t *p_input, double f_level)
Definition: event.h:144
vlc_sem_t
Semaphore.
Definition: vlc_threads.h:449
INPUT_EVENT_OUTPUT_CLOCK
@ INPUT_EVENT_OUTPUT_CLOCK
Definition: input_internal.h:95
ts_cmd_t
Definition: es_out_timeshift.c:175
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
es_out_PrivControl
static int es_out_PrivControl(es_out_t *out, int query,...)
Definition: es_out.h:108
ES_OUT_RESET_PCR
@ ES_OUT_RESET_PCR
Definition: vlc_es_out.h:67
EsOutSourceSend
static int EsOutSourceSend(es_out_t *out, es_out_id_t *es, block_t *block)
Definition: es_out_source.c:54
ts_cmd_t::add
ts_cmd_add_t add
Definition: es_out_timeshift.c:178
strdup
char * strdup(const char *)
ES_OUT_SET_PCR
@ ES_OUT_SET_PCR
Definition: vlc_es_out.h:65
ES_OUT_PRIV_SET_ES_LIST
@ ES_OUT_PRIV_SET_ES_LIST
Definition: es_out.h:52
INPUT_EVENT_SUBS_FPS
@ INPUT_EVENT_SUBS_FPS
Definition: input_internal.h:142
vlc_sem_trywait
int vlc_sem_trywait(vlc_sem_t *sem)
Tries to decrement a semaphore.
Definition: threads.c:500
TsStorageDelete
static void TsStorageDelete(ts_storage_t *)
Definition: es_out_timeshift.c:1273
ts_storage_t::p_cmd_w
uint8_t * p_cmd_w
Definition: es_out_timeshift.c:207
INPUT_EVENT_SUBITEMS
@ INPUT_EVENT_SUBITEMS
Definition: input_internal.h:134
ES_OUT_PRIV_SET_ES_DELAY
@ ES_OUT_PRIV_SET_ES_DELAY
Definition: es_out.h:66
ts_storage_t::p_filer
FILE * p_filer
Definition: es_out_timeshift.c:203
input_priv
static input_thread_private_t * input_priv(input_thread_t *input)
Definition: input_internal.h:537
TsPushCmd
static void TsPushCmd(ts_thread_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:962
ts_cmd_control_t::es_bool
struct ts_cmd_control_t::@16::@21 es_bool
vlc_block.h
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
TsPopCmdLocked
static int TsPopCmdLocked(ts_thread_t *, ts_cmd_t *, bool b_flush)
Definition: es_out_timeshift.c:997
TAB_INIT
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:55
ts_cmd_control_t::es_policy
struct ts_cmd_control_t::@16::@23 es_policy
es_out_in_vaControl
static int es_out_in_vaControl(es_out_t *p_out, input_source_t *in, int i_query, va_list args)
Definition: es_out_timeshift.c:510
ES_OUT_POST_SUBNODE
@ ES_OUT_POST_SUBNODE
Definition: vlc_es_out.h:102
vlc_cond_t
Condition variable.
Definition: vlc_threads.h:349
es_out_sys_t::b_input_paused
bool b_input_paused
Definition: es_out_timeshift.c:269
vlc_epg_Delete
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:198
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:106
vlc_input_event_title
Definition: input_internal.h:180
vlc_unlink
int vlc_unlink(const char *filename)
Removes a file.
Definition: filesystem.c:183
es_out_sys_t::i_tmp_size_max
int64_t i_tmp_size_max
Definition: es_out_timeshift.c:258
C_CONTROL
@ C_CONTROL
Definition: es_out_timeshift.c:67
vlc_sem_post
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: threads.c:447
vlc_epg_event_Duplicate
vlc_epg_event_t * vlc_epg_event_Duplicate(const vlc_epg_event_t *p_src)
Returns a vlc_epg_event_t * duplicated from p_src.
Definition: epg.c:74
ts_cmd_header_t::i_date
vlc_tick_t i_date
Definition: es_out_timeshift.c:74
ts_cmd_control_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:112
ES_OUT_SET_GROUP_META
@ ES_OUT_SET_GROUP_META
Definition: vlc_es_out.h:76
ts_cmd_control_t::int_meta
struct ts_cmd_control_t::@16::@18 int_meta
ts_cmd_control_t::u
union ts_cmd_control_t::@16 u
INPUT_EVENT_RATE
@ INPUT_EVENT_RATE
Definition: input_internal.h:86
vlc_mouse_event
void(* vlc_mouse_event)(const vlc_mouse_t *mouse, void *user_data)
Mouse event callback.
Definition: vlc_mouse.h:62
TS_STORAGE_COMMAND_PREALLOC
#define TS_STORAGE_COMMAND_PREALLOC
Definition: es_out_timeshift.c:1201
block_t::i_dts
vlc_tick_t i_dts
Definition: vlc_block.h:130
ts_cmd_add_t::in
input_source_t * in
Definition: es_out_timeshift.c:80
input_SendEventState
static void input_SendEventState(input_thread_t *p_input, int i_state, vlc_tick_t state_date)
Definition: event.h:135
ts_cmd_del_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:87
ts_cmd_privcontrol_t::i_query
int i_query
Definition: es_out_timeshift.c:154
es_out_sys_t::parent_out
es_out_t * parent_out
Definition: es_out_source.c:63
ES_OUT_SET_GROUP_PCR
@ ES_OUT_SET_GROUP_PCR
Definition: vlc_es_out.h:66
input_SendEvent
static void input_SendEvent(input_thread_t *p_input, const struct vlc_input_event *event)
Definition: event.h:30
ControlLocked
static int ControlLocked(es_out_t *p_out, input_source_t *in, int i_query, va_list args)
Definition: es_out_timeshift.c:648
INPUT_EVENT_VOUT
@ INPUT_EVENT_VOUT
Definition: input_internal.h:131
ts_cmd_privcontrol_t::u
union ts_cmd_privcontrol_t::@24 u
ts_cmd_add_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:81
ts_cmd_control_t::i_policy
int i_policy
Definition: es_out_timeshift.c:146
ts_thread_t::i_tmp_size_max
int64_t i_tmp_size_max
Definition: es_out_timeshift.c:218
vlc_sem_timedwait
int vlc_sem_timedwait(vlc_sem_t *sem, vlc_tick_t deadline)
Waits on a semaphore within a deadline.
Definition: threads.c:479
es_out_sys_t::in
input_source_t * in
Definition: es_out_source.c:62
ES_OUT_UNSET_ES
@ ES_OUT_UNSET_ES
Definition: vlc_es_out.h:42
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
INPUT_EVENT_ITEM_EPG
@ INPUT_EVENT_ITEM_EPG
Definition: input_internal.h:117
ES_OUT_SET_ES_CAT_POLICY
@ ES_OUT_SET_ES_CAT_POLICY
Definition: vlc_es_out.h:54
input_SendEventRecord
static void input_SendEventRecord(input_thread_t *p_input, bool b_recording)
Definition: event.h:99
ES_OUT_SET_GROUP_EPG
@ ES_OUT_SET_GROUP_EPG
Definition: vlc_es_out.h:78
ts_cmd_control_t::i_int
int i_int
Definition: es_out_timeshift.c:110
input_SendEventParsing
static void input_SendEventParsing(input_thread_t *p_input, input_item_node_t *p_root)
Definition: event.h:252
ES_OUT_PRIV_SET_EOS
@ ES_OUT_PRIV_SET_EOS
Definition: es_out.h:93
vlc_epg_Duplicate
vlc_epg_t * vlc_epg_Duplicate(const vlc_epg_t *p_src)
Returns a duplicated p_src and its associated events.
Definition: epg.c:221
INPUT_EVENT_VBI_TRANSPARENCY
@ INPUT_EVENT_VBI_TRANSPARENCY
Definition: input_internal.h:139
input_thread_t
Main structure representing an input thread.
Definition: input_internal.h:48
PrivControl
static int PrivControl(es_out_t *p_tsout, int i_query, va_list args)
Definition: es_out_timeshift.c:849
ts_cmd_privcontrol_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:153
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
input_item_node_t
Definition: vlc_input_item.h:194
ES_OUT_PRIV_SET_RECORD_STATE
@ ES_OUT_PRIV_SET_RECORD_STATE
Definition: es_out.h:72
ts_cmd_privcontrol_t
Definition: es_out_timeshift.c:151
attribute_packed
#define attribute_packed
Definition: es_out_timeshift.c:59
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
CmdCleanAdd
static void CmdCleanAdd(ts_cmd_add_t *)
Definition: es_out_timeshift.c:1457
ES_OUT_PRIV_GET_GROUP_FORCED
@ ES_OUT_PRIV_GET_GROUP_FORCED
Definition: es_out.h:90
input_internal.h
CmdCleanSend
static void CmdCleanSend(ts_cmd_send_t *)
Definition: es_out_timeshift.c:1487
block_Release
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
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
ES_OUT_PRIV_SET_RATE
@ ES_OUT_PRIV_SET_RATE
Definition: es_out.h:78
INPUT_EVENT_STATISTICS
@ INPUT_EVENT_STATISTICS
Definition: input_internal.h:120
vlc_value_t
VLC value structure.
Definition: vlc_common.h:457
TsStorageIsEmpty
static bool TsStorageIsEmpty(ts_storage_t *)
Definition: es_out_timeshift.c:1323
es_out_sys_t::b_delayed
bool b_delayed
Definition: es_out_timeshift.c:265
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
ts_storage_cmd_type_e
ts_storage_cmd_type_e
Definition: es_out_timeshift.c:62
es_out_in_Control
static int es_out_in_Control(es_out_t *p_out, input_source_t *in, int i_query,...)
Definition: es_out_timeshift.c:516
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:436
es_out_Send
static int es_out_Send(es_out_t *out, es_out_id_t *id, block_t *p_block)
Definition: vlc_es_out.h:159
block_t
Definition: vlc_block.h:117
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
vlc_epg_event_Delete
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:47
INPUT_EVENT_BOOKMARK
@ INPUT_EVENT_BOOKMARK
Definition: input_internal.h:125
es_out_sys_t::psz_tmp_path
char * psz_tmp_path
Definition: es_out_timeshift.c:259
CmdExecutePrivControl
static int CmdExecutePrivControl(es_out_t *, ts_cmd_privcontrol_t *)
Definition: es_out_timeshift.c:1798
ES_OUT_VOUT_ADD_OVERLAY
@ ES_OUT_VOUT_ADD_OVERLAY
Definition: vlc_es_out.h:108
input_SendEventRate
static void input_SendEventRate(input_thread_t *p_input, float rate)
Definition: event.h:91
ts_cmd_control_t::p_epg
vlc_epg_t * p_epg
Definition: es_out_timeshift.c:126
ES_OUT_PRIV_GET_BUFFERING
@ ES_OUT_PRIV_GET_BUFFERING
Definition: es_out.h:63
ts_cmd_control_t::i_query
int i_query
Definition: es_out_timeshift.c:104
input_SendEventBookmark
static void input_SendEventBookmark(input_thread_t *p_input)
Definition: event.h:293
CmdInitPrivControl
static int CmdInitPrivControl(ts_cmd_privcontrol_t *, int i_query, va_list, bool b_copy)
Definition: es_out_timeshift.c:1753
ES_OUT_RESTART_ES
@ ES_OUT_RESTART_ES
Definition: vlc_es_out.h:43
ts_cmd_send_t::header
ts_cmd_header_t header
Definition: es_out_timeshift.c:93
ES_OUT_PRIV_SET_ES_CAT_IDS
@ ES_OUT_PRIV_SET_ES_CAT_IDS
Definition: es_out.h:54