VLC  3.0.15
es_out_timeshift.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * es_out_timeshift.h: Es Out timeshift.
3  *****************************************************************************
4  * Copyright (C) 2008 Laurent Aimar
5  * $Id: 14cace6b8a00321e70017d3152867d119b61bd60 $
6  *
7  * Authors: Laurent Aimar < fenrir _AT_ via _DOT_ ecp _DOT_ fr>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_INPUT_ES_OUT_TIMESHIFT_H
25 #define LIBVLC_INPUT_ES_OUT_TIMESHIFT_H 1
26 
27 #include <vlc_common.h>
28 
29 
31 
32 #endif
ts_cmd_control_t::times
struct ts_cmd_control_t::@16::@24 times
C_CONTROL
Definition: es_out_timeshift.c:68
ES_OUT_SET_DELAY
Definition: es_out.h:62
es_out_sys_t::p_out
es_out_t * p_out
Definition: es_out_timeshift.c:225
count
size_t count
Definition: core.c:461
ES_OUT_SET_JITTER
Definition: es_out.h:83
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:46
vlc_fopen
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:46
es_out_sys_t::p_input
input_thread_t * p_input
Definition: es_out.c:125
ts_cmd_add_t
Definition: es_out_timeshift.c:71
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
var_CreateGetInteger
#define var_CreateGetInteger(a, b)
Definition: vlc_variables.h:492
ES_OUT_MODIFY_PCR_SYSTEM
Definition: vlc_es_out.h:97
es_out_sys_t::p_ts
ts_thread_t * p_ts
Definition: es_out_timeshift.c:236
ts_thread_t::p_input
input_thread_t * p_input
Definition: es_out_timeshift.c:187
vlc_cleanup_push
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:975
ControlLockedGetBuffering
static int ControlLockedGetBuffering(es_out_t *p_out, bool *pb_buffering)
Definition: es_out_timeshift.c:522
thread
static thread_local struct vlc_thread * thread
Definition: thread.c:162
ES_OUT_SET_GROUP_EPG_EVENT
Definition: vlc_es_out.h:76
ControlLockedGetWakeup
static int ControlLockedGetWakeup(es_out_t *p_out, mtime_t *pi_wakeup)
Definition: es_out_timeshift.c:506
ES_OUT_SET_META
Definition: vlc_es_out.h:93
ts_cmd_t::u
union ts_cmd_t::@26 u
ts_thread_t::p_out
es_out_t * p_out
Definition: es_out_timeshift.c:188
ts_cmd_send_t::p_block
block_t * p_block
Definition: es_out_timeshift.c:85
vlc_meta_Merge
void vlc_meta_Merge(vlc_meta_t *dst, const vlc_meta_t *src)
Merging meta.
Definition: meta.c:177
ts_cmd_send_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:84
vlc_epg_event_t
Definition: vlc_epg.h:32
TsStorageNew
static ts_storage_t * TsStorageNew(const char *psz_path, int64_t i_tmp_size_max)
Definition: es_out_timeshift.c:1100
es_out_t::pf_del
void(* pf_del)(es_out_t *, es_out_id_t *)
Definition: vlc_es_out.h:115
es_out_t::pf_destroy
void(* pf_destroy)(es_out_t *)
Definition: vlc_es_out.h:117
ts_thread_t::p_storage_w
ts_storage_t * p_storage_w
Definition: es_out_timeshift.c:211
ES_OUT_SET_MODE
Definition: es_out.h:41
CmdInitControl
static int CmdInitControl(ts_cmd_t *, int i_query, va_list, bool b_copy)
Definition: es_out_timeshift.c:1369
vlc_common.h
CmdClean
static void CmdClean(ts_cmd_t *)
Definition: es_out_timeshift.c:1279
ts_cmd_control_t::es_fmt
struct ts_cmd_control_t::@16::@22 es_fmt
ES_OUT_DEL_GROUP
Definition: vlc_es_out.h:80
DIR_SEP
#define DIR_SEP
Definition: vlc_common.h:1023
ES_OUT_SET_NEXT_DISPLAY_TIME
Definition: vlc_es_out.h:71
es_out_sys_t::lock
vlc_mutex_t lock
Definition: es_out.c:128
vlc_es_out.h
cmd_cleanup_routine
static void cmd_cleanup_routine(void *p)
Definition: es_out_timeshift.c:277
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:116
TsChangeRate
static int TsChangeRate(ts_thread_t *, int i_src_rate, int i_rate)
Definition: es_out_timeshift.c:961
vlc_mutex_init_recursive
void vlc_mutex_init_recursive(vlc_mutex_t *p_mutex)
Initializes a recursive mutex.
Definition: thread.c:99
es_out.h
block_t::i_dts
mtime_t i_dts
Definition: vlc_block.h:124
ts_cmd_control_t::u
union ts_cmd_control_t::@16 u
ts_thread_t::p_storage_r
ts_storage_t * p_storage_r
Definition: es_out_timeshift.c:210
es_out_sys_t
Definition: es_out.c:123
TsAutoStop
static void TsAutoStop(es_out_t *)
Definition: es_out_timeshift.c:817
ts_cmd_t::i_type
int8_t i_type
Definition: es_out_timeshift.c:152
ES_OUT_GET_ES_STATE
Definition: vlc_es_out.h:49
es_out_sys_t::b_input_paused_source
bool b_input_paused_source
Definition: es_out_timeshift.c:240
ts_storage_t
Definition: es_out_timeshift.c:164
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:93
ES_OUT_SET_EPG_TIME
Definition: vlc_es_out.h:77
es_out_SetPauseState
static int es_out_SetPauseState(es_out_t *p_out, bool b_source_paused, bool b_paused, mtime_t i_date)
Definition: es_out.h:130
ES_OUT_SET_ES_SCRAMBLED_STATE
Definition: vlc_es_out.h:83
vlc_charset.h
es_out_sys_t::i_input_rate
int i_input_rate
Definition: es_out_timeshift.c:241
input_thread_private_t::b_can_pace_control
bool b_can_pace_control
Definition: input_internal.h:91
ts_storage_t::p_cmd
ts_cmd_t * p_cmd
Definition: es_out_timeshift.c:181
TsStoragePopCmd
static void TsStoragePopCmd(ts_storage_t *p_storage, ts_cmd_t *p_cmd, bool b_flush)
Definition: es_out_timeshift.c:1244
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
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:539
ES_OUT_SET_ES_BY_ID
Definition: es_out.h:47
TsStop
static void TsStop(ts_thread_t *)
Definition: es_out_timeshift.c:829
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
Add
static es_out_id_t * Add(es_out_t *, const es_format_t *)
Definition: es_out_timeshift.c:424
ts_storage_t::i_file_size
int64_t i_file_size
Definition: es_out_timeshift.c:173
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:263
ts_cmd_t::i_date
mtime_t i_date
Definition: es_out_timeshift.c:153
ES_OUT_SET_GROUP
Definition: vlc_es_out.h:55
es_out_t::pf_send
int(* pf_send)(es_out_t *, es_out_id_t *, block_t *)
Definition: vlc_es_out.h:114
ts_cmd_send_t
Definition: es_out_timeshift.c:82
vlc_input.h
ts_thread_t::wait
vlc_cond_t wait
Definition: es_out_timeshift.c:194
ES_OUT_GET_PCR_SYSTEM
Definition: vlc_es_out.h:96
ts_storage_t::p_next
ts_storage_t * p_next
Definition: es_out_timeshift.c:166
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
ts_cmd_control_t
Definition: es_out_timeshift.c:89
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
vlc_cond_t
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
ts_thread_t::i_rate_delay
mtime_t i_rate_delay
Definition: es_out_timeshift.c:204
CmdCleanControl
static void CmdCleanControl(ts_cmd_t *p_cmd)
Definition: es_out_timeshift.c:1611
asprintf
int asprintf(char **, const char *,...)
block_t::i_pts
mtime_t i_pts
Definition: vlc_block.h:123
ts_cmd_t::control
ts_cmd_control_t control
Definition: es_out_timeshift.c:159
vlc_value_t::i_int
int64_t i_int
Definition: vlc_common.h:327
input_EsOutTimeshiftNew
es_out_t * input_EsOutTimeshiftNew(input_thread_t *, es_out_t *, int i_rate)
Definition: es_out_timeshift.c:300
TsDestroy
static void TsDestroy(ts_thread_t *p_ts)
Definition: es_out_timeshift.c:770
INPUT_CONTROL_SET_RATE
Definition: input_internal.h:191
ControlLocked
static int ControlLocked(es_out_t *p_out, int i_query, va_list args)
Definition: es_out_timeshift.c:622
ES_OUT_SET_ES_DEFAULT_BY_ID
Definition: es_out.h:49
vlc_meta_t
Definition: meta.c:41
ES_OUT_SET_ES_DEFAULT
Definition: vlc_es_out.h:44
ts_storage_t::i_file_max
size_t i_file_max
Definition: es_out_timeshift.c:172
block_t::i_length
mtime_t i_length
Definition: vlc_block.h:125
es_out_t::pf_control
int(* pf_control)(es_out_t *, int i_query, va_list)
Definition: vlc_es_out.h:116
CmdExecuteControl
static int CmdExecuteControl(es_out_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:1531
es_out_id_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:219
lock
static vlc_mutex_t lock
Definition: interface.c:62
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
ts_cmd_del_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:79
es_out_t
Definition: vlc_es_out.h:111
es_out_Add
static es_out_id_t * es_out_Add(es_out_t *out, const es_format_t *fmt)
Definition: vlc_es_out.h:123
ts_cmd_del_t
Definition: es_out_timeshift.c:77
GetTmpFile
static int GetTmpFile(char **ppsz_file, const char *psz_path)
Definition: es_out_timeshift.c:1638
ControlLockedSetTime
static int ControlLockedSetTime(es_out_t *p_out, mtime_t i_date)
Definition: es_out_timeshift.c:604
vlc_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:88
TsHasCmd
static bool TsHasCmd(ts_thread_t *)
Definition: es_out_timeshift.c:907
TsStoragePack
static void TsStoragePack(ts_storage_t *p_storage)
Definition: es_out_timeshift.c:1182
ts_thread_t::i_pause_date
mtime_t i_pause_date
Definition: es_out_timeshift.c:198
Del
static void Del(es_out_t *, es_out_id_t *)
Definition: es_out_timeshift.c:475
ES_OUT_SET_RATE
Definition: es_out.h:71
ts_cmd_control_t::i_i64
int64_t i_i64
Definition: es_out_timeshift.c:97
ts_thread_t::i_rate_date
mtime_t i_rate_date
Definition: es_out_timeshift.c:203
vlc_unlink
int vlc_unlink(const char *filename)
Removes a file.
Definition: filesystem.c:180
es_out_Control
static int es_out_Control(es_out_t *out, int i_query,...)
Definition: vlc_es_out.h:144
ts_thread_t::lock
vlc_mutex_t lock
Definition: es_out_timeshift.c:193
CmdCleanAdd
static void CmdCleanAdd(ts_cmd_t *)
Definition: es_out_timeshift.c:1322
i_type
int i_type
Definition: httpd.c:1250
Destroy
static void Destroy(es_out_t *)
Definition: es_out_timeshift.c:404
ControlLockedGetEmpty
static int ControlLockedGetEmpty(es_out_t *p_out, bool *pb_empty)
Definition: es_out_timeshift.c:495
es_format_t
Definition: vlc_es.h:580
TsStart
static int TsStart(es_out_t *)
Definition: es_out_timeshift.c:776
ts_storage_t::i_cmd_max
int i_cmd_max
Definition: es_out_timeshift.c:180
es_out_SetRate
static int es_out_SetRate(es_out_t *p_out, int i_source_rate, int i_rate)
Definition: es_out.h:134
block_t::i_flags
uint32_t i_flags
Definition: vlc_block.h:120
vlc_assert_locked
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
es_out_t::pf_add
es_out_id_t *(* pf_add)(es_out_t *, const es_format_t *)
Definition: vlc_es_out.h:113
ts_storage_t::p_filew
FILE * p_filew
Definition: es_out_timeshift.c:174
ts_cmd_send_t::i_offset
int i_offset
Definition: es_out_timeshift.c:86
ES_OUT_SET_ES
Definition: vlc_es_out.h:39
ts_thread_t::thread
vlc_thread_t thread
Definition: es_out_timeshift.c:186
vlc_meta_Delete
void vlc_meta_Delete(vlc_meta_t *m)
Definition: meta.c:110
block_t::i_nb_samples
unsigned i_nb_samples
Definition: vlc_block.h:121
block_Release
static void block_Release(block_t *block)
Releases a block.
Definition: vlc_block.h:181
Control
static int Control(es_out_t *, int i_query, va_list)
Definition: es_out_timeshift.c:752
ES_OUT_SET_TIMES
Definition: es_out.h:80
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
CmdCleanSend
static void CmdCleanSend(ts_cmd_t *)
Definition: es_out_timeshift.c:1349
es_out_ControlModifyPcrSystem
static int es_out_ControlModifyPcrSystem(es_out_t *out, bool b_absolute, mtime_t i_system)
Definition: vlc_es_out.h:174
ts_storage_t::i_cmd_r
int i_cmd_r
Definition: es_out_timeshift.c:178
vlc_mkstemp
int vlc_mkstemp(char *template)
Definition: filesystem.c:99
ControlLockedSetFrameNext
static int ControlLockedSetFrameNext(es_out_t *p_out)
Definition: es_out_timeshift.c:615
vlc_meta_New
vlc_meta_t * vlc_meta_New(void)
vlc_meta contructor.
Definition: meta.c:92
ts_thread_t::b_paused
bool b_paused
Definition: es_out_timeshift.c:197
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:252
ts_cmd_t
Definition: es_out_timeshift.c:150
ES_OUT_SET_ES_STATE
Definition: vlc_es_out.h:48
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
TsStoragePushCmd
static void TsStoragePushCmd(ts_storage_t *, const ts_cmd_t *p_cmd, bool b_flush)
Definition: es_out_timeshift.c:1209
ES_OUT_SET_TIME
Definition: es_out.h:74
es_out_GetBuffering
static bool es_out_GetBuffering(es_out_t *p_out)
Definition: es_out.h:105
es_out_sys_t::pp_es
es_out_id_t ** pp_es
Definition: es_out_timeshift.c:246
CmdExecuteAdd
static void CmdExecuteAdd(es_out_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:1318
vlc_cleanup_pop
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:983
Send
static int Send(es_out_t *, es_out_id_t *, block_t *)
Definition: es_out_timeshift.c:455
ES_OUT_GET_EMPTY
Definition: vlc_es_out.h:90
es_out_id_t
Definition: es_out.c:76
ES_OUT_RESTART_ALL_ES
Definition: vlc_es_out.h:41
ts_thread_t::i_buffering_delay
mtime_t i_buffering_delay
Definition: es_out_timeshift.c:207
TsRun
static void * TsRun(void *)
Definition: es_out_timeshift.c:979
ES_OUT_SET_ES_FMT
Definition: vlc_es_out.h:68
TsStorageIsFull
static bool TsStorageIsFull(ts_storage_t *, const ts_cmd_t *p_cmd)
Definition: es_out_timeshift.c:1194
TsIsUnused
static bool TsIsUnused(ts_thread_t *)
Definition: es_out_timeshift.c:917
vlc_fs.h
ts_thread_t
Definition: es_out_timeshift.c:184
ts_thread_t::psz_tmp_path
const char * psz_tmp_path
Definition: es_out_timeshift.c:190
es_out_timeshift.h
es_out_sys_t::i_input_rate_source
int i_input_rate_source
Definition: es_out_timeshift.c:242
input_EsOutTimeshiftNew
es_out_t * input_EsOutTimeshiftNew(input_thread_t *p_input, es_out_t *p_next_out, int i_rate)
Definition: es_out_timeshift.c:300
C_SEND
Definition: es_out_timeshift.c:66
ts_cmd_add_t::p_fmt
es_format_t * p_fmt
Definition: es_out_timeshift.c:74
es_out_vaControl
static int es_out_vaControl(es_out_t *out, int i_query, va_list args)
Definition: vlc_es_out.h:139
ts_cmd_control_t::jitter
struct ts_cmd_control_t::@16::@25 jitter
es_out_SetFrameNext
static int es_out_SetFrameNext(es_out_t *p_out)
Definition: es_out.h:142
DIR_SEP_CHAR
#define DIR_SEP_CHAR
Definition: vlc_common.h:1022
vlc_epg_t
Definition: vlc_epg.h:51
CmdInitSend
static void CmdInitSend(ts_cmd_t *, es_out_id_t *, block_t *)
Definition: es_out_timeshift.c:1328
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
es_out_Del
static void es_out_Del(es_out_t *out, es_out_id_t *id)
Definition: vlc_es_out.h:128
es_out_sys_t::i_es
int i_es
Definition: es_out.c:137
ts_cmd_t::add
ts_cmd_add_t add
Definition: es_out_timeshift.c:156
CmdExecuteSend
static int CmdExecuteSend(es_out_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:1335
ts_cmd_control_t::es_bool
struct ts_cmd_control_t::@16::@21 es_bool
VLC_THREAD_PRIORITY_INPUT
#define VLC_THREAD_PRIORITY_INPUT
Definition: vlc_threads.h:322
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
ControlLockedSetPauseState
static int ControlLockedSetPauseState(es_out_t *p_out, bool b_source_paused, bool b_paused, mtime_t i_date)
Definition: es_out_timeshift.c:533
ES_OUT_RESET_PCR
Definition: vlc_es_out.h:65
ts_cmd_control_t::int_epg_evt
struct ts_cmd_control_t::@16::@20 int_epg_evt
ts_thread_t::i_rate_source
int i_rate_source
Definition: es_out_timeshift.c:202
strdup
char * strdup(const char *)
ES_OUT_SET_PCR
Definition: vlc_es_out.h:63
C_DEL
Definition: es_out_timeshift.c:67
TsStorageDelete
static void TsStorageDelete(ts_storage_t *)
Definition: es_out_timeshift.c:1161
ES_OUT_STOP_ALL_ES
Definition: es_out.h:54
ts_storage_t::p_filer
FILE * p_filer
Definition: es_out_timeshift.c:175
input_priv
static input_thread_private_t * input_priv(input_thread_t *input)
Definition: input_internal.h:179
TsPushCmd
static void TsPushCmd(ts_thread_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:851
vlc_block.h
ts_thread_t::i_cmd_delay
mtime_t i_cmd_delay
Definition: es_out_timeshift.c:213
vlc_cond_destroy
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
vlc_cond_init
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
TsPopCmdLocked
static int TsPopCmdLocked(ts_thread_t *, ts_cmd_t *, bool b_flush)
Definition: es_out_timeshift.c:886
TAB_INIT
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:40
vlc_cond_wait
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
es_out_SetTime
static int es_out_SetTime(es_out_t *p_out, mtime_t i_date)
Definition: es_out.h:138
ES_OUT_POST_SUBNODE
Definition: vlc_es_out.h:99
es_out_sys_t::b_input_paused
bool b_input_paused
Definition: es_out_timeshift.c:239
vlc_epg_Delete
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:197
ts_thread_t::i_rate
int i_rate
Definition: es_out_timeshift.c:201
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:91
es_out_sys_t::i_tmp_size_max
int64_t i_tmp_size_max
Definition: es_out_timeshift.c:228
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
ES_OUT_GET_GROUP_FORCED
Definition: es_out.h:86
ES_OUT_SET_RECORD_STATE
Definition: es_out.h:65
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:73
ts_cmd_control_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:98
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
CmdInitDel
static int CmdInitDel(ts_cmd_t *, es_out_id_t *)
Definition: es_out_timeshift.c:1355
ES_OUT_SET_EOS
Definition: es_out.h:89
ts_cmd_control_t::int_meta
struct ts_cmd_control_t::@16::@18 int_meta
ES_OUT_SET_GROUP_META
Definition: vlc_es_out.h:73
block_Alloc
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:119
ControlLockedSetRate
static int ControlLockedSetRate(es_out_t *p_out, int i_src_rate, int i_rate)
Definition: es_out_timeshift.c:568
ES_OUT_SET_FRAME_NEXT
Definition: es_out.h:77
es_out_GetWakeup
static mtime_t es_out_GetWakeup(es_out_t *p_out)
Definition: es_out.h:97
ES_OUT_SET_GROUP_PCR
Definition: vlc_es_out.h:64
vlc_assert_unreachable
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
CmdExecuteDel
static void CmdExecuteDel(es_out_t *, ts_cmd_t *)
Definition: es_out_timeshift.c:1362
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
ts_cmd_control_t::int_epg
struct ts_cmd_control_t::@16::@19 int_epg
ts_cmd_add_t::p_es
es_out_id_t * p_es
Definition: es_out_timeshift.c:73
ts_thread_t::i_tmp_size_max
int64_t i_tmp_size_max
Definition: es_out_timeshift.c:189
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:115
ES_OUT_SET_PAUSE_STATE
Definition: es_out.h:68
ES_OUT_SET_ES_CAT_POLICY
Definition: vlc_es_out.h:52
ES_OUT_SET_GROUP_EPG
Definition: vlc_es_out.h:75
ts_cmd_control_t::i_int
int i_int
Definition: es_out_timeshift.c:96
C_ADD
Definition: es_out_timeshift.c:65
ES_OUT_GET_ES_OBJECTS_BY_ID
Definition: es_out.h:50
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:220
input_thread_t
Main structure representing an input thread.
Definition: vlc_input.h:221
attribute_packed
#define attribute_packed
Definition: es_out_timeshift.c:60
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
ts_cmd_t::del
ts_cmd_del_t del
Definition: es_out_timeshift.c:157
mwait
#define mwait(d)
Definition: vlc_threads.h:879
ts_cmd_control_t::es_policy
struct ts_cmd_control_t::@16::@23 es_policy
ES_OUT_START_ALL_ES
Definition: es_out.h:56
input_ControlPush
void input_ControlPush(input_thread_t *p_input, int i_type, vlc_value_t *p_val)
Definition: input.c:1583
input_internal.h
es_out_GetEmpty
static bool es_out_GetEmpty(es_out_t *p_out)
Definition: es_out.h:113
vlc_value_t
VLC value structure.
Definition: vlc_common.h:325
TsStorageIsEmpty
static bool TsStorageIsEmpty(ts_storage_t *)
Definition: es_out_timeshift.c:1205
es_out_t::p_sys
es_out_sys_t * p_sys
Definition: vlc_es_out.h:119
es_out_sys_t::b_delayed
bool b_delayed
Definition: es_out_timeshift.c:235
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:460
TsChangePause
static int TsChangePause(ts_thread_t *, bool b_source_paused, bool b_paused, mtime_t i_date)
Definition: es_out_timeshift.c:929
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
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:133
block_t
Definition: vlc_block.h:111
ts_cmd_control_t::int_i64
struct ts_cmd_control_t::@16::@17 int_i64
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
vlc_epg_event_Delete
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:46
ES_OUT_GET_BUFFERING
Definition: es_out.h:59
es_out_sys_t::psz_tmp_path
char * psz_tmp_path
Definition: es_out_timeshift.c:229
CmdInitAdd
static int CmdInitAdd(ts_cmd_t *, es_out_id_t *, const es_format_t *, bool b_copy)
Definition: es_out_timeshift.c:1300
ES_OUT_RESTART_ES_BY_ID
Definition: es_out.h:48
ts_cmd_t::send
ts_cmd_send_t send
Definition: es_out_timeshift.c:158
ts_cmd_control_t::i_query
int i_query
Definition: es_out_timeshift.c:91
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:270
ts_storage_t::i_cmd_w
int i_cmd_w
Definition: es_out_timeshift.c:179
mutex_cleanup_push
#define mutex_cleanup_push(lock)
Definition: vlc_threads.h:1013
ES_OUT_RESTART_ES
Definition: vlc_es_out.h:40
ES_OUT_GET_WAKE_UP
Definition: es_out.h:44
p
#define p(t)