VLC  4.0.0-dev
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
es_out_timeshift.c File Reference
Include dependency graph for es_out_timeshift.c:

Data Structures

struct  ts_cmd_add_t
 
struct  ts_cmd_del_t
 
struct  ts_cmd_send_t
 
struct  ts_cmd_control_t
 
struct  ts_cmd_t
 
struct  ts_storage_t
 
struct  ts_thread_t
 
struct  es_out_id_t
 
struct  es_out_sys_t
 

Macros

#define attribute_packed
 

Typedefs

typedef struct ts_storage_t ts_storage_t
 

Enumerations

enum  { C_ADD, C_SEND, C_DEL, C_CONTROL }
 

Functions

static void Del (es_out_t *, es_out_id_t *)
 
static int TsStart (es_out_t *)
 
static void TsAutoStop (es_out_t *)
 
static void TsStop (ts_thread_t *)
 
static void TsPushCmd (ts_thread_t *, ts_cmd_t *)
 
static int TsPopCmdLocked (ts_thread_t *, ts_cmd_t *, bool b_flush)
 
static bool TsHasCmd (ts_thread_t *)
 
static bool TsIsUnused (ts_thread_t *)
 
static int TsChangePause (ts_thread_t *, bool b_source_paused, bool b_paused, vlc_tick_t i_date)
 
static int TsChangeRate (ts_thread_t *, float src_rate, float rate)
 
static void * TsRun (void *)
 
static ts_storage_tTsStorageNew (const char *psz_path, int64_t i_tmp_size_max)
 
static void TsStorageDelete (ts_storage_t *)
 
static void TsStoragePack (ts_storage_t *p_storage)
 
static bool TsStorageIsFull (ts_storage_t *, const ts_cmd_t *p_cmd)
 
static bool TsStorageIsEmpty (ts_storage_t *)
 
static void TsStoragePushCmd (ts_storage_t *, const ts_cmd_t *p_cmd, bool b_flush)
 
static void TsStoragePopCmd (ts_storage_t *p_storage, ts_cmd_t *p_cmd, bool b_flush)
 
static void CmdClean (ts_cmd_t *)
 
static void cmd_cleanup_routine (void *p)
 
static int CmdInitAdd (ts_cmd_t *, es_out_id_t *, const es_format_t *, bool b_copy)
 
static void CmdInitSend (ts_cmd_t *, es_out_id_t *, block_t *)
 
static int CmdInitDel (ts_cmd_t *, es_out_id_t *)
 
static int CmdInitControl (ts_cmd_t *, int i_query, va_list, bool b_copy)
 
static void CmdCleanAdd (ts_cmd_t *)
 
static void CmdCleanSend (ts_cmd_t *)
 
static void CmdCleanControl (ts_cmd_t *p_cmd)
 
static void CmdExecuteAdd (es_out_t *, ts_cmd_t *)
 
static int CmdExecuteSend (es_out_t *, ts_cmd_t *)
 
static void CmdExecuteDel (es_out_t *, ts_cmd_t *)
 
static int CmdExecuteControl (es_out_t *, ts_cmd_t *)
 
static int GetTmpFile (char **ppsz_file, const char *psz_path)
 
es_out_tinput_EsOutTimeshiftNew (input_thread_t *p_input, es_out_t *p_next_out, float rate)
 
static void Destroy (es_out_t *p_out)
 
static es_out_id_tAdd (es_out_t *p_out, const es_format_t *p_fmt)
 
static int Send (es_out_t *p_out, es_out_id_t *p_es, block_t *p_block)
 
static int ControlLockedGetEmpty (es_out_t *p_out, bool *pb_empty)
 
static int ControlLockedGetWakeup (es_out_t *p_out, vlc_tick_t *pi_wakeup)
 
static int ControlLockedGetBuffering (es_out_t *p_out, bool *pb_buffering)
 
static int ControlLockedSetPauseState (es_out_t *p_out, bool b_source_paused, bool b_paused, vlc_tick_t i_date)
 
static int ControlLockedSetRate (es_out_t *p_out, float src_rate, float rate)
 
static int ControlLockedSetFrameNext (es_out_t *p_out)
 
static int ControlLocked (es_out_t *p_out, int i_query, va_list args)
 
static int Control (es_out_t *p_out, int i_query, va_list args)
 
static void TsDestroy (ts_thread_t *p_ts)
 

Variables

static const struct es_out_callbacks es_out_timeshift_cbs
 

Macro Definition Documentation

◆ attribute_packed

#define attribute_packed

Typedef Documentation

◆ ts_storage_t

typedef struct ts_storage_t ts_storage_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
C_ADD 
C_SEND 
C_DEL 
C_CONTROL 

Function Documentation

◆ Add()

static es_out_id_t* Add ( es_out_t p_out,
const es_format_t p_fmt 
)
static

◆ cmd_cleanup_routine()

static void cmd_cleanup_routine ( void *  p)
static

◆ CmdClean()

static void CmdClean ( ts_cmd_t p_cmd)
static

◆ CmdCleanAdd()

static void CmdCleanAdd ( ts_cmd_t p_cmd)
static

◆ CmdCleanControl()

static void CmdCleanControl ( ts_cmd_t p_cmd)
static

◆ CmdCleanSend()

static void CmdCleanSend ( ts_cmd_t p_cmd)
static

◆ CmdExecuteAdd()

static void CmdExecuteAdd ( es_out_t p_out,
ts_cmd_t p_cmd 
)
static

◆ CmdExecuteControl()

static int CmdExecuteControl ( es_out_t p_out,
ts_cmd_t p_cmd 
)
static

◆ CmdExecuteDel()

static void CmdExecuteDel ( es_out_t p_out,
ts_cmd_t p_cmd 
)
static

◆ CmdExecuteSend()

static int CmdExecuteSend ( es_out_t p_out,
ts_cmd_t p_cmd 
)
static

◆ CmdInitAdd()

static int CmdInitAdd ( ts_cmd_t p_cmd,
es_out_id_t p_es,
const es_format_t p_fmt,
bool  b_copy 
)
static

◆ CmdInitControl()

static int CmdInitControl ( ts_cmd_t p_cmd,
int  i_query,
va_list  args,
bool  b_copy 
)
static

◆ CmdInitDel()

static int CmdInitDel ( ts_cmd_t p_cmd,
es_out_id_t p_es 
)
static

◆ CmdInitSend()

static void CmdInitSend ( ts_cmd_t p_cmd,
es_out_id_t p_es,
block_t p_block 
)
static

◆ Control()

static int Control ( es_out_t p_out,
int  i_query,
va_list  args 
)
static

◆ ControlLocked()

static int ControlLocked ( es_out_t p_out,
int  i_query,
va_list  args 
)
static

References es_out_sys_t::b_delayed, CmdExecuteControl(), CmdInitControl(), container_of, ControlLockedGetBuffering(), ControlLockedGetEmpty(), ControlLockedGetWakeup(), ControlLockedSetFrameNext(), ControlLockedSetPauseState(), ControlLockedSetRate(), es_out_Control(), es_out_ControlModifyPcrSystem(), ES_OUT_DEL_GROUP, ES_OUT_GET_BUFFERING, ES_OUT_GET_EMPTY, ES_OUT_GET_ES_STATE, ES_OUT_GET_GROUP_FORCED, ES_OUT_GET_PCR_SYSTEM, ES_OUT_GET_WAKE_UP, ES_OUT_MODIFY_PCR_SYSTEM, ES_OUT_POST_SUBNODE, ES_OUT_RESET_PCR, ES_OUT_RESTART_ES, ES_OUT_RESTART_ES_BY_ID, ES_OUT_SET_DELAY, ES_OUT_SET_EOS, ES_OUT_SET_EPG_TIME, ES_OUT_SET_ES, ES_OUT_SET_ES_BY_ID, ES_OUT_SET_ES_CAT_POLICY, ES_OUT_SET_ES_DEFAULT, ES_OUT_SET_ES_DEFAULT_BY_ID, ES_OUT_SET_ES_DELAY, ES_OUT_SET_ES_FMT, ES_OUT_SET_ES_LIST, ES_OUT_SET_ES_SCRAMBLED_STATE, ES_OUT_SET_ES_STATE, ES_OUT_SET_FRAME_NEXT, ES_OUT_SET_GROUP, ES_OUT_SET_GROUP_EPG, ES_OUT_SET_GROUP_EPG_EVENT, ES_OUT_SET_GROUP_META, ES_OUT_SET_GROUP_PCR, ES_OUT_SET_JITTER, ES_OUT_SET_META, ES_OUT_SET_MODE, ES_OUT_SET_NEXT_DISPLAY_TIME, ES_OUT_SET_PAUSE_STATE, ES_OUT_SET_PCR, ES_OUT_SET_RATE, ES_OUT_SET_RECORD_STATE, ES_OUT_SET_TIMES, ES_OUT_SET_VBI_PAGE, ES_OUT_SET_VBI_TRANSPARENCY, ES_OUT_SPU_SET_HIGHLIGHT, ES_OUT_START_ALL_ES, ES_OUT_STOP_ALL_ES, ES_OUT_UNSET_ES, es_out_vaControl(), ES_OUT_VOUT_ADD_OVERLAY, ES_OUT_VOUT_DEL_OVERLAY, ES_OUT_VOUT_SET_MOUSE_EVENT, es_out_id_t::p_es, es_out_sys_t::p_out, es_out_sys_t::p_ts, TsPushCmd(), vlc_assert_unreachable, VLC_EGENERIC, and VLC_SUCCESS.

Referenced by Control().

◆ ControlLockedGetBuffering()

static int ControlLockedGetBuffering ( es_out_t p_out,
bool *  pb_buffering 
)
static

◆ ControlLockedGetEmpty()

static int ControlLockedGetEmpty ( es_out_t p_out,
bool *  pb_empty 
)
static

◆ ControlLockedGetWakeup()

static int ControlLockedGetWakeup ( es_out_t p_out,
vlc_tick_t pi_wakeup 
)
static

◆ ControlLockedSetFrameNext()

static int ControlLockedSetFrameNext ( es_out_t p_out)
static

◆ ControlLockedSetPauseState()

static int ControlLockedSetPauseState ( es_out_t p_out,
bool  b_source_paused,
bool  b_paused,
vlc_tick_t  i_date 
)
static

◆ ControlLockedSetRate()

static int ControlLockedSetRate ( es_out_t p_out,
float  src_rate,
float  rate 
)
static

◆ Del()

static void Del ( es_out_t p_out,
es_out_id_t p_es 
)
static

◆ Destroy()

static void Destroy ( es_out_t p_out)
static

◆ GetTmpFile()

static int GetTmpFile ( char **  ppsz_file,
const char *  psz_path 
)
static

◆ input_EsOutTimeshiftNew()

es_out_t* input_EsOutTimeshiftNew ( input_thread_t p_input,
es_out_t p_next_out,
float  rate 
)

◆ Send()

static int Send ( es_out_t p_out,
es_out_id_t p_es,
block_t p_block 
)
static

◆ TsAutoStop()

static void TsAutoStop ( es_out_t p_out)
static

◆ TsChangePause()

static int TsChangePause ( ts_thread_t p_ts,
bool  b_source_paused,
bool  b_paused,
vlc_tick_t  i_date 
)
static

◆ TsChangeRate()

static int TsChangeRate ( ts_thread_t p_ts,
float  src_rate,
float  rate 
)
static

◆ TsDestroy()

static void TsDestroy ( ts_thread_t p_ts)
static

◆ TsHasCmd()

static bool TsHasCmd ( ts_thread_t p_ts)
static

◆ TsIsUnused()

static bool TsIsUnused ( ts_thread_t p_ts)
static

◆ TsPopCmdLocked()

static int TsPopCmdLocked ( ts_thread_t p_ts,
ts_cmd_t p_cmd,
bool  b_flush 
)
static

◆ TsPushCmd()

static void TsPushCmd ( ts_thread_t p_ts,
ts_cmd_t p_cmd 
)
static

◆ TsRun()

static void * TsRun ( void *  p_data)
static

◆ TsStart()

static int TsStart ( es_out_t p_out)
static

◆ TsStop()

static void TsStop ( ts_thread_t p_ts)
static

◆ TsStorageDelete()

static void TsStorageDelete ( ts_storage_t p_storage)
static

◆ TsStorageIsEmpty()

static bool TsStorageIsEmpty ( ts_storage_t p_storage)
static

◆ TsStorageIsFull()

static bool TsStorageIsFull ( ts_storage_t p_storage,
const ts_cmd_t p_cmd 
)
static

◆ TsStorageNew()

static ts_storage_t * TsStorageNew ( const char *  psz_path,
int64_t  i_tmp_size_max 
)
static

◆ TsStoragePack()

static void TsStoragePack ( ts_storage_t p_storage)
static

◆ TsStoragePopCmd()

static void TsStoragePopCmd ( ts_storage_t p_storage,
ts_cmd_t p_cmd,
bool  b_flush 
)
static

◆ TsStoragePushCmd()

static void TsStoragePushCmd ( ts_storage_t p_storage,
const ts_cmd_t p_cmd,
bool  b_flush 
)
static

Variable Documentation

◆ es_out_timeshift_cbs

static const struct es_out_callbacks es_out_timeshift_cbs
static
Initial value:
=
{
.add = Add,
.send = Send,
.del = Del,
.control = Control,
.destroy = Destroy,
}
static void Destroy(es_out_t *p_out)
Definition: es_out_timeshift.c:393
static void Del(es_out_t *, es_out_id_t *)
Definition: es_out_timeshift.c:463
static es_out_id_t * Add(es_out_t *p_out, const es_format_t *p_fmt)
Definition: es_out_timeshift.c:412
static int Control(es_out_t *p_out, int i_query, va_list args)
Definition: es_out_timeshift.c:756
static int Send(es_out_t *p_out, es_out_id_t *p_es, block_t *p_block)
Definition: es_out_timeshift.c:443

Referenced by input_EsOutTimeshiftNew().