VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
input.c File Reference
Include dependency graph for input.c:

Macros

#define INIT_COUNTER(c, compute)
#define EXIT_COUNTER(c)
#define CL_CO(c)   stats_CounterClean( p_input->p->counters.p_##c ); p_input->p->counters.p_##c = NULL;
#define I(c)   stats_Update( p_input->p->counters.c, i_delta, NULL )

Enumerations

enum  { SUB_NOFLAG = 0x00, SUB_FORCED = 0x01, SUB_CANFAIL = 0x02 }

Functions

static void Destructor (input_thread_t *p_input)
 Input destructor (called when the object's refcount reaches 0).
static void * Run (void *)
static input_thread_tCreate (vlc_object_t *, input_item_t *, const char *, bool, input_resource_t *)
static int Init (input_thread_t *p_input)
static void End (input_thread_t *p_input)
static void MainLoop (input_thread_t *p_input, bool b_interactive)
 MainLoop The main input loop.
static void ObjectKillChildrens (input_thread_t *, vlc_object_t *)
static int ControlPop (input_thread_t *, int *, vlc_value_t *, mtime_t i_deadline, bool b_postpone_seek)
static void ControlRelease (int i_type, vlc_value_t val)
static bool ControlIsSeekRequest (int i_type)
static bool Control (input_thread_t *, int, vlc_value_t)
static int UpdateTitleSeekpointFromAccess (input_thread_t *)
static void UpdateGenericFromAccess (input_thread_t *)
static int UpdateTitleSeekpointFromDemux (input_thread_t *)
static void UpdateGenericFromDemux (input_thread_t *)
static void UpdateTitleListfromDemux (input_thread_t *)
static void MRLSections (const char *, int *, int *, int *, int *)
static input_source_tInputSourceNew (input_thread_t *)
static int InputSourceInit (input_thread_t *, input_source_t *, const char *, const char *psz_forced_demux, bool b_in_can_fail)
static void InputSourceClean (input_source_t *)
static void InputSourceMeta (input_thread_t *, input_source_t *, vlc_meta_t *)
static void SlaveDemux (input_thread_t *p_input, bool *pb_demux_polled)
static void SlaveSeek (input_thread_t *p_input)
static void InputMetaUser (input_thread_t *p_input, vlc_meta_t *p_meta)
static void InputUpdateMeta (input_thread_t *p_input, vlc_meta_t *p_meta)
static void InputGetExtraFiles (input_thread_t *p_input, int *pi_list, char ***pppsz_list, const char *psz_access, const char *psz_path)
static void AppendAttachment (int *pi_attachment, input_attachment_t ***ppp_attachment, int i_new, input_attachment_t **pp_new)
static void SubtitleAdd (input_thread_t *p_input, char *psz_subtitle, unsigned i_flags)
static void input_ChangeState (input_thread_t *p_input, int i_state)
input_thread_tinput_Create (((vlc_object_t *)(vlc_object_t *p_parent)), input_item_t *p_item, const char *psz_log, input_resource_t *p_resource)
 Create a new input_thread_t.
input_thread_tinput_CreateAndStart (((vlc_object_t *)(vlc_object_t *p_parent)), input_item_t *p_item, const char *psz_log)
 Create a new input_thread_t and start it.
int input_Read (((vlc_object_t *)(vlc_object_t *p_parent)), input_item_t *p_item)
 Initialize an input thread and run it until it stops by itself.
int input_Preparse (vlc_object_t *p_parent, input_item_t *p_item)
 Initialize an input and initialize it to preparse the item This function is blocking.
int input_Start (input_thread_t *p_input)
 Start a input_thread_t created by input_Create.
void input_Stop (input_thread_t *p_input, bool b_abort)
 Request a running input thread to stop and die.
void input_Join (input_thread_t *p_input)
void input_Release (input_thread_t *p_input)
void input_Close (input_thread_t *p_input)
 Close an input.
input_item_tinput_GetItem (input_thread_t *p_input)
 Get the item from an input thread FIXME it does not increase ref count of the item.
static void MainLoopDemux (input_thread_t *p_input, bool *pb_changed, bool *pb_demux_polled, mtime_t i_start_mdate)
 MainLoopDemux It asks the demuxer to demux some data.
static int MainLoopTryRepeat (input_thread_t *p_input, mtime_t *pi_start_mdate)
static void MainLoopInterface (input_thread_t *p_input)
 MainLoopInterface It update the variables used by the interfaces.
static void MainLoopStatistic (input_thread_t *p_input)
 MainLoopStatistic It updates the globals statics.
static void InitStatistics (input_thread_t *p_input)
static void InitTitle (input_thread_t *p_input)
static void StartTitle (input_thread_t *p_input)
static void LoadSubtitles (input_thread_t *p_input)
static void LoadSlaves (input_thread_t *p_input)
static void UpdatePtsDelay (input_thread_t *p_input)
static void InitPrograms (input_thread_t *p_input)
void input_ControlPush (input_thread_t *p_input, int i_type, vlc_value_t *p_val)
static int ControlGetReducedIndexLocked (input_thread_t *p_input)
static void ControlPause (input_thread_t *p_input, mtime_t i_control_date)
static void ControlUnpause (input_thread_t *p_input, mtime_t i_control_date)
static int UpdateTitleSeekpoint (input_thread_t *p_input, int i_title, int i_seekpoint)
static void InputGetExtraFilesPattern (input_thread_t *p_input, int *pi_list, char ***pppsz_list, const char *psz_path, const char *psz_match, const char *psz_format, int i_start, int i_stop)
void input_SplitMRL (const char **access, const char **demux, const char **path, const char **anchor, char *buf)
static const char * MRLSeekPoint (const char *str, int *title, int *chapter)
void input_UpdateStatistic (input_thread_t *p_input, input_statistic_t i_type, int i_delta)
 It will update internal input statistics from external sources.
char * input_CreateFilename (vlc_object_t *p_obj, const char *psz_path, const char *psz_prefix, const char *psz_extension)
 This function creates a sane filename path.

Macro Definition Documentation

#define CL_CO (   c)    stats_CounterClean( p_input->p->counters.p_##c ); p_input->p->counters.p_##c = NULL;

Referenced by End().

#define EXIT_COUNTER (   c)
Value:
do { if( p_input->p->counters.p_##c ) \
stats_CounterClean( p_input->p->counters.p_##c );\
p_input->p->counters.p_##c = NULL; } while(0)

Referenced by Init().

#define I (   c)    stats_Update( p_input->p->counters.c, i_delta, NULL )

Referenced by input_UpdateStatistic().

#define INIT_COUNTER (   c,
  compute 
)
Value:
p_input->p->counters.p_##c = \
stats_CounterCreate( STATS_##compute);

Referenced by InitStatistics().

Enumeration Type Documentation

anonymous enum
Enumerator:
SUB_NOFLAG 
SUB_FORCED 
SUB_CANFAIL 

Function Documentation

static void AppendAttachment ( int *  pi_attachment,
input_attachment_t ***  ppp_attachment,
int  i_new,
input_attachment_t **  pp_new 
)
static

References xrealloc().

Referenced by InputSourceInit(), and InputSourceMeta().

static bool Control ( input_thread_t p_input,
int  i_type,
vlc_value_t  val 
)
static

< Unspecified error

References access_Control(), ACCESS_GET_META, ACCESS_SET_SEEKPOINT, ACCESS_SET_TITLE, vlc_value_t::b_bool, input_thread_private_t::b_can_pace_control, input_thread_private_t::b_can_pause, input_thread_private_t::b_can_rate_control, input_source_t::b_can_stream_record, input_source_t::b_eof, input_thread_private_t::b_fast_seek, input_thread_private_t::b_out_pace_control, input_thread_private_t::b_recording, input_source_t::b_rescale_ts, input_source_t::b_title_demux, ControlPause(), ControlRelease(), ControlUnpause(), demux_Control(), DEMUX_GET_LENGTH, DEMUX_GET_META, DEMUX_GET_TIME, DEMUX_NAV_ACTIVATE, DEMUX_SET_GROUP, DEMUX_SET_POSITION, DEMUX_SET_RATE, DEMUX_SET_RECORD_STATE, DEMUX_SET_SEEKPOINT, DEMUX_SET_TIME, DEMUX_SET_TITLE, es_out_Control(), ES_OUT_RESET_PCR, ES_OUT_RESTART_ES_BY_ID, ES_OUT_SET_ES_BY_ID, ES_OUT_SET_GROUP, es_out_SetFrameNext(), es_out_SetRate(), es_out_SetRecordState(), es_out_SetTime(), vlc_value_t::f_float, input_thread_private_t::i_bookmark, seekpoint_t::i_byte_offset, vlc_value_t::i_int, input_thread_private_t::i_rate, demux_t::i_seekpoint, access_t::i_seekpoint, input_title_t::i_seekpoint, input_thread_private_t::i_slave, input_thread_private_t::i_state, vlc_value_t::i_time, seekpoint_t::i_time_offset, input_source_t::i_title, demux_t::i_title, access_t::i_title, demux_t::info, access_t::info, input_thread_private_t::input, input_ChangeState(), INPUT_CONTROL_ADD_SLAVE, INPUT_CONTROL_ADD_SUBTITLE, INPUT_CONTROL_NAV_ACTIVATE, INPUT_CONTROL_NAV_DOWN, INPUT_CONTROL_NAV_LEFT, INPUT_CONTROL_NAV_RIGHT, INPUT_CONTROL_NAV_UP, INPUT_CONTROL_RESTART_ES, INPUT_CONTROL_SET_AUDIO_DELAY, INPUT_CONTROL_SET_BOOKMARK, INPUT_CONTROL_SET_DIE, INPUT_CONTROL_SET_ES, INPUT_CONTROL_SET_FRAME_NEXT, INPUT_CONTROL_SET_POSITION, INPUT_CONTROL_SET_PROGRAM, INPUT_CONTROL_SET_RATE, INPUT_CONTROL_SET_RECORD_STATE, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_SEEKPOINT_NEXT, INPUT_CONTROL_SET_SEEKPOINT_PREV, INPUT_CONTROL_SET_SPU_DELAY, INPUT_CONTROL_SET_STATE, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, INPUT_CONTROL_SET_TITLE_NEXT, INPUT_CONTROL_SET_TITLE_PREV, INPUT_RATE_DEFAULT, INPUT_RATE_MAX, INPUT_RATE_MIN, input_SendEventAudioDelay(), input_SendEventRate(), input_SendEventRecord(), input_SendEventSeekpoint(), input_SendEventSubtitleDelay(), input_SendEventTitle(), InputSourceClean(), InputSourceInit(), InputSourceNew(), InputUpdateMeta(), input_item_t::lock, mdate(), msg_Dbg, msg_Err, msg_Warn, ObjectKillChildrens(), input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_es_out_display, input_thread_private_t::p_item, input_thread_private_t::p_sout, input_source_t::p_stream, PAUSE_S, PLAYING_S, input_thread_private_t::pp_bookmark, vlc_value_t::psz_string, input_title_t::seekpoint, input_thread_private_t::slave, SlaveSeek(), stream_Control(), STREAM_CONTROL_ACCESS, stream_Size(), SubtitleAdd(), TAB_APPEND, input_source_t::title, UpdatePtsDelay(), var_GetFloat, var_GetTime, VLC_EGENERIC, vlc_meta_New(), vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_OBJECT.

Referenced by MainLoop().

static int ControlGetReducedIndexLocked ( input_thread_t p_input)
static
static bool ControlIsSeekRequest ( int  i_type)
static
static void ControlPause ( input_thread_t p_input,
mtime_t  i_control_date 
)
static
static int ControlPop ( input_thread_t p_input,
int *  pi_type,
vlc_value_t p_val,
mtime_t  i_deadline,
bool  b_postpone_seek 
)
inlinestatic
static void ControlRelease ( int  i_type,
vlc_value_t  val 
)
static
static void ControlUnpause ( input_thread_t p_input,
mtime_t  i_control_date 
)
static
static input_thread_t * Create ( vlc_object_t p_parent,
input_item_t p_item,
const char *  psz_header,
bool  b_quick,
input_resource_t p_resource 
)
static

References atoll(), input_thread_private_t::attachment, input_thread_private_t::b_abort, input_source_t::b_can_pace_control, input_thread_private_t::b_can_pace_control, input_source_t::b_can_rate_control, input_source_t::b_eof, input_thread_t::b_eof, input_thread_private_t::b_out_pace_control, input_thread_t::b_preparsing, input_thread_private_t::b_recording, input_source_t::b_rescale_ts, input_source_t::b_title_demux, input_thread_private_t::bookmark, input_thread_private_t::counters, input_thread_private_t::counters_lock, Destructor(), input_thread_private_t::i_attachment, input_thread_private_t::i_bookmark, seekpoint_t::i_byte_offset, input_thread_private_t::i_control, input_thread_t::i_flags, input_item_t::i_options, input_thread_private_t::i_rate, input_thread_private_t::i_run, input_source_t::i_seekpoint_offset, input_thread_private_t::i_seekpoint_offset, input_thread_private_t::i_slave, input_thread_private_t::i_start, input_thread_private_t::i_state, input_thread_private_t::i_stop, input_thread_private_t::i_time, seekpoint_t::i_time_offset, input_source_t::i_title, input_thread_private_t::i_title, input_source_t::i_title_offset, input_thread_private_t::i_title_offset, INIT_S, input_thread_private_t::input, INPUT_ADD_BOOKMARK, input_ConfigVarInit(), input_Control(), input_ControlVarInit(), input_EsOutNew(), input_item_GetName(), input_item_SetNowPlaying(), INPUT_RATE_DEFAULT, input_resource_Hold(), input_resource_New(), input_resource_SetInput(), input_SendEventMeta(), input_thread_private_t::is_running, input_item_t::lock, input_thread_private_t::lock_control, msg_Dbg, OBJECT_FLAGS_NOINTERACT, OBJECT_FLAGS_QUIET, input_item_t::optflagc, input_item_t::optflagv, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_es_out_display, input_thread_private_t::p_item, input_thread_private_t::p_resource, input_thread_private_t::p_resource_private, input_thread_private_t::p_sout, input_item_t::p_stats, input_source_t::p_stream, input_thread_private_t::pp_bookmark, input_item_t::ppsz_options, input_thread_t::psz_header, seekpoint_t::psz_name, psz_name, input_thread_private_t::slave, stats_NewInputStats(), strdup(), TAB_INIT, input_source_t::title, input_thread_private_t::title, var_GetNonEmptyString, var_InheritBool, var_OptionParse(), vlc_cond_init(), vlc_custom_create, vlc_gc_incref, VLC_INPUT_OPTION_TRUSTED, vlc_mutex_init(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, vlc_object_set_destructor, vlc_seekpoint_Delete(), vlc_seekpoint_New(), and input_thread_private_t::wait_control.

Referenced by input_Create(), input_Preparse(), and input_Read().

static void Destructor ( input_thread_t p_input)
static
static void End ( input_thread_t p_input)
static
static int Init ( input_thread_t p_input)
static

< No error

< Unspecified error

References input_thread_private_t::b_can_pace_control, input_thread_private_t::b_out_pace_control, input_thread_t::b_preparsing, demux_Control(), DEMUX_GET_LENGTH, ERROR_S, es_out_Delete(), ES_OUT_MODE_END, es_out_SetMode(), EXIT_COUNTER, vlc_value_t::i_int, input_item_t::i_options, sout_instance_t::i_out_pace_nocontrol, input_thread_private_t::i_rate, input_thread_private_t::i_slave, InitPrograms(), InitStatistics(), InitTitle(), input_thread_private_t::input, input_ChangeState(), INPUT_CONTROL_SET_RATE, input_ControlPush(), input_EsOutTimeshiftNew(), input_item_GetDuration(), INPUT_RATE_DEFAULT, input_resource_RequestSout(), input_resource_SetInput(), input_resource_Terminate(), input_SendEventCache(), input_SendEventLength(), input_SendEventPosition(), InputMetaUser(), InputSourceInit(), InputSourceMeta(), InputUpdateMeta(), libvlc_stats, LoadSlaves(), LoadSubtitles(), msg_Dbg, OPENING_S, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_es_out_display, input_thread_private_t::p_item, input_thread_private_t::p_resource, input_thread_private_t::p_resource_private, input_thread_private_t::p_sout, input_source_t::p_stream, PLAYING_S, input_item_t::ppsz_options, input_item_t::psz_uri, input_thread_private_t::slave, StartTitle(), input_thread_private_t::thread, var_InheritFloat, var_SetBool, var_SetInteger, var_SetString, VLC_EGENERIC, vlc_meta_New(), vlc_set_priority(), VLC_SUCCESS, and VLC_THREAD_PRIORITY_LOW.

Referenced by input_Preparse(), input_Read(), and Run().

static void InitPrograms ( input_thread_t p_input)
static
static void InitStatistics ( input_thread_t p_input)
static
static void InitTitle ( input_thread_t p_input)
static
static void input_ChangeState ( input_thread_t p_input,
int  i_state 
)
static
void input_Close ( input_thread_t p_input)

Close an input.

It does not call input_Stop itself.

References input_Join(), and input_Release().

Referenced by LoopInput(), and vlm_OnMediaUpdate().

void input_ControlPush ( input_thread_t p_input,
int  i_type,
vlc_value_t p_val 
)
input_thread_t* input_Create ( ((vlc_object_t *)(vlc_object_t *p_parent))  ,
input_item_t p_item,
const char *  psz_log,
input_resource_t p_resource 
)

Create a new input_thread_t.

You need to call input_Start on it when you are done adding callback on the variables/events you want to monitor.

Parameters
p_parenta vlc_object
p_iteman input item
psz_logan optional prefix for this input logs
p_resourcean optional input ressource
Returns
a pointer to the spawned input thread

References Create().

input_thread_t* input_CreateAndStart ( ((vlc_object_t *)(vlc_object_t *p_parent))  ,
input_item_t p_item,
const char *  psz_log 
)

Create a new input_thread_t and start it.

Provided for convenience.

See Also
input_Create

References input_Create, input_Start(), and vlc_object_release.

char* input_CreateFilename ( vlc_object_t p_obj,
const char *  psz_path,
const char *  psz_prefix,
const char *  psz_extension 
)

This function creates a sane filename path.

References asprintf(), DIR_SEP, filename_sanitize(), path_sanitize(), pl_Get, str_format(), and vlc_opendir().

Referenced by EsOutSetRecord().

input_item_t* input_GetItem ( input_thread_t p_input)

Get the item from an input thread FIXME it does not increase ref count of the item.

Get the input item for an input thread.

if it is used after p_input is destroyed nothing prevent it from being freed.

References input_thread_t::p, and input_thread_private_t::p_item.

Referenced by DisplayVoutTitle(), EsOutMeta(), EsOutUpdateInfo(), and str_format_meta().

void input_Join ( input_thread_t p_input)
int input_Preparse ( vlc_object_t p_parent,
input_item_t p_item 
)

Initialize an input and initialize it to preparse the item This function is blocking.

It will only accept parsing regular files.

Parameters
p_parenta vlc_object_t
p_iteman input item
Returns
VLC_SUCCESS or an error

< Unspecified error

< No error

References Create(), End(), Init(), VLC_EGENERIC, vlc_object_release, and VLC_SUCCESS.

Referenced by Preparse().

int input_Read ( ((vlc_object_t *)(vlc_object_t *p_parent))  ,
input_item_t p_item 
)

Initialize an input thread and run it until it stops by itself.

Parameters
p_parenta vlc_object
p_iteman input item
Returns
an error code, VLC_SUCCESS on success

< Unspecified error

< No error

References Create(), End(), Init(), MainLoop(), VLC_EGENERIC, vlc_object_release, and VLC_SUCCESS.

void input_Release ( input_thread_t p_input)
void input_SplitMRL ( const char **  access,
const char **  demux,
const char **  path,
const char **  anchor,
char *  buf 
)

Referenced by InputSourceInit(), and stream_UrlNew().

int input_Start ( input_thread_t p_input)

Start a input_thread_t created by input_Create.

You must not start an already running input_thread_t.

Parameters
theinput thread to start

< Unspecified error

< No error

References ERROR_S, input_ChangeState(), input_thread_private_t::is_running, msg_Err, input_thread_t::p, Run(), input_thread_private_t::thread, vlc_clone(), VLC_EGENERIC, VLC_SUCCESS, and VLC_THREAD_PRIORITY_INPUT.

Referenced by input_CreateAndStart(), PlayItem(), vlm_ControlMediaInstanceStart(), and vlm_OnMediaUpdate().

void input_Stop ( input_thread_t p_input,
bool  b_abort 
)

Request a running input thread to stop and die.

b_abort must be true when a user stop is requested and not because you have detected an error or an eof. It will be used to properly send the INPUT_EVENT_ABORT event.

Parameters
p_inputthe input thread to stop
b_aborttrue if the input has been aborted by a user request

References input_thread_private_t::b_abort, INPUT_CONTROL_SET_DIE, input_ControlPush(), input_thread_private_t::lock_control, ObjectKillChildrens(), input_thread_t::p, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_OBJECT.

Referenced by GoAndPreparse(), LoopInput(), vlm_ControlMediaInstanceStart(), vlm_MediaInstanceDelete(), and vlm_OnMediaUpdate().

void input_UpdateStatistic ( input_thread_t ,
input_statistic_t  ,
int  i_delta 
)
static void InputGetExtraFiles ( input_thread_t p_input,
int *  pi_list,
char ***  pppsz_list,
const char *  psz_access,
const char *  psz_path 
)
static

References InputGetExtraFilesPattern(), and TAB_INIT.

Referenced by InputSourceInit().

static void InputGetExtraFilesPattern ( input_thread_t p_input,
int *  pi_list,
char ***  pppsz_list,
const char *  psz_path,
const char *  psz_match,
const char *  psz_format,
int  i_start,
int  i_stop 
)
static
static void InputMetaUser ( input_thread_t p_input,
vlc_meta_t p_meta 
)
static
static void InputSourceClean ( input_source_t in)
static
static int InputSourceInit ( input_thread_t p_input,
input_source_t in,
const char *  psz_mrl,
const char *  psz_forced_demux,
bool  b_in_can_fail 
)
static

< No error

< Unspecified error

References _, ACCESS_CAN_CONTROL_PACE, ACCESS_CAN_PAUSE, ACCESS_CAN_SEEK, access_Control(), access_Delete(), ACCESS_GET_PTS_DELAY, ACCESS_GET_TITLE_INFO, access_New, AppendAttachment(), input_thread_private_t::attachment, input_source_t::b_can_pace_control, input_source_t::b_can_pause, input_source_t::b_can_rate_control, input_source_t::b_can_stream_record, input_thread_t::b_preparsing, input_source_t::b_rescale_ts, input_source_t::b_title_demux, DEMUX_CAN_CONTROL_PACE, DEMUX_CAN_CONTROL_RATE, DEMUX_CAN_PAUSE, DEMUX_CAN_RECORD, DEMUX_CAN_SEEK, demux_Control(), demux_Delete(), DEMUX_GET_ATTACHMENTS, DEMUX_GET_FPS, DEMUX_GET_PTS_DELAY, DEMUX_GET_TITLE_INFO, demux_New, dialog_Fatal, input_thread_private_t::f_fps, input_thread_private_t::i_attachment, input_source_t::i_pts_delay, input_source_t::i_seekpoint_end, input_source_t::i_seekpoint_offset, input_source_t::i_seekpoint_start, input_source_t::i_title, input_source_t::i_title_end, input_source_t::i_title_offset, input_source_t::i_title_start, input_thread_private_t::input, INPUT_PTS_DELAY_MAX, input_SplitMRL(), InputGetExtraFiles(), input_item_t::lock, MRLSections(), msg_Dbg, msg_Err, msg_Warn, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_item, input_source_t::p_stream, demux_t::pf_demux, access_t::psz_demux, psz_name, stream_t::psz_path, strdup(), stream_AccessNew(), stream_Delete(), stream_FilterChainNew(), TAB_APPEND, TAB_CLEAN, TAB_INIT, input_source_t::title, var_CreateGetNonEmptyString, var_GetBool, var_GetInteger, var_GetNonEmptyString, var_SetBool, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, vlc_object_alive, and VLC_SUCCESS.

Referenced by Control(), Init(), LoadSlaves(), and SubtitleAdd().

static void InputSourceMeta ( input_thread_t p_input,
input_source_t p_source,
vlc_meta_t p_meta 
)
static
static input_source_t * InputSourceNew ( input_thread_t p_input)
static

References VLC_UNUSED.

Referenced by Control(), LoadSlaves(), and SubtitleAdd().

static void InputUpdateMeta ( input_thread_t p_input,
vlc_meta_t p_meta 
)
static
static void LoadSlaves ( input_thread_t p_input)
static
static void LoadSubtitles ( input_thread_t p_input)
static
static void MainLoop ( input_thread_t p_input,
bool  b_interactive 
)
static
static void MainLoopDemux ( input_thread_t p_input,
bool *  pb_changed,
bool *  pb_demux_polled,
mtime_t  i_start_mdate 
)
static
static void MainLoopInterface ( input_thread_t p_input)
static
static void MainLoopStatistic ( input_thread_t p_input)
static

MainLoopStatistic It updates the globals statics.

References input_SendEventStatistics(), input_thread_t::p, input_thread_private_t::p_item, input_item_t::p_stats, and stats_ComputeInputStats().

Referenced by MainLoop().

static int MainLoopTryRepeat ( input_thread_t p_input,
mtime_t pi_start_mdate 
)
static
static void MRLSections ( const char *  p,
int *  pi_title_start,
int *  pi_title_end,
int *  pi_chapter_start,
int *  pi_chapter_end 
)
static

References MRLSeekPoint().

Referenced by InputSourceInit().

static const char* MRLSeekPoint ( const char *  str,
int *  title,
int *  chapter 
)
static

Referenced by MRLSections().

static void ObjectKillChildrens ( input_thread_t p_input,
vlc_object_t p_obj 
)
static
static void * Run ( void *  obj)
static
static void SlaveDemux ( input_thread_t p_input,
bool *  pb_demux_polled 
)
static
static void SlaveSeek ( input_thread_t p_input)
static
static void StartTitle ( input_thread_t p_input)
static
static void SubtitleAdd ( input_thread_t p_input,
char *  psz_subtitle,
unsigned  i_flags 
)
static
static void UpdateGenericFromAccess ( input_thread_t p_input)
static
static void UpdateGenericFromDemux ( input_thread_t p_input)
static
static void UpdatePtsDelay ( input_thread_t p_input)
static
static void UpdateTitleListfromDemux ( input_thread_t p_input)
static
static int UpdateTitleSeekpoint ( input_thread_t p_input,
int  i_title,
int  i_seekpoint 
)
static
static int UpdateTitleSeekpointFromAccess ( input_thread_t p_input)
static
static int UpdateTitleSeekpointFromDemux ( input_thread_t p_input)
static