|
VLC
2.1.0-git
|

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_t * | Create (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_t * | InputSourceNew (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_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. | |
| 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. | |
| 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_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. | |
| 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. | |
| #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 | ) |
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 | |||
| ) |
Referenced by InitStatistics().
|
static |
References xrealloc().
Referenced by InputSourceInit(), and InputSourceMeta().
|
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 |
References input_thread_private_t::control, input_thread_private_t::i_control, input_control_t::i_type, INPUT_CONTROL_SET_BOOKMARK, INPUT_CONTROL_SET_POSITION, INPUT_CONTROL_SET_PROGRAM, INPUT_CONTROL_SET_RATE, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_STATE, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, and input_thread_t::p.
Referenced by ControlPop().
|
static |
References INPUT_CONTROL_NAV_ACTIVATE, INPUT_CONTROL_NAV_DOWN, INPUT_CONTROL_NAV_LEFT, INPUT_CONTROL_NAV_RIGHT, INPUT_CONTROL_NAV_UP, INPUT_CONTROL_SET_BOOKMARK, INPUT_CONTROL_SET_POSITION, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_SEEKPOINT_NEXT, INPUT_CONTROL_SET_SEEKPOINT_PREV, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, INPUT_CONTROL_SET_TITLE_NEXT, and INPUT_CONTROL_SET_TITLE_PREV.
Referenced by ControlPop(), and MainLoop().
|
static |
< No error
References access_Control(), ACCESS_SET_PAUSE_STATE, input_thread_private_t::b_can_pause, demux_Control(), DEMUX_SET_PAUSE_STATE, es_out_SetPauseState(), input_thread_private_t::input, input_ChangeState(), msg_Warn, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, PAUSE_S, and VLC_SUCCESS.
Referenced by Control().
|
inlinestatic |
< Unspecified error
< Unspecified error
< No error
References input_thread_private_t::control, ControlGetReducedIndexLocked(), ControlIsSeekRequest(), input_thread_private_t::i_control, input_control_t::i_type, input_thread_private_t::lock_control, input_thread_t::p, input_control_t::val, vlc_cond_timedwait(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_alive, VLC_SUCCESS, and input_thread_private_t::wait_control.
Referenced by MainLoop().
|
static |
References INPUT_CONTROL_ADD_SLAVE, INPUT_CONTROL_ADD_SUBTITLE, and vlc_value_t::psz_string.
Referenced by Control(), Destructor(), and input_ControlPush().
|
static |
< No error
References access_Control(), ACCESS_SET_PAUSE_STATE, input_thread_private_t::b_can_pause, demux_Control(), DEMUX_SET_PAUSE_STATE, es_out_SetPauseState(), input_thread_private_t::input, input_ChangeState(), INPUT_CONTROL_SET_DIE, input_ControlPush(), msg_Warn, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, PLAYING_S, and VLC_SUCCESS.
Referenced by Control().
|
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 |
Input destructor (called when the object's refcount reaches 0).
References input_thread_private_t::control, ControlRelease(), input_thread_private_t::counters, input_thread_private_t::counters_lock, es_out_Delete(), input_thread_private_t::i_control, input_control_t::i_type, input_item_GetName(), input_resource_Release(), input_thread_private_t::lock_control, msg_Dbg, input_thread_t::p, 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, psz_name, input_control_t::val, vlc_cond_destroy(), vlc_gc_decref, vlc_mutex_destroy(), and input_thread_private_t::wait_control.
Referenced by Create().
|
static |
References input_thread_private_t::attachment, input_thread_t::b_preparsing, CL_CO, END_S, es_out_Delete(), ES_OUT_MODE_END, ES_OUT_MODE_NONE, es_out_SetMode(), input_thread_private_t::i_attachment, input_thread_private_t::i_slave, input_thread_private_t::input, input_ChangeState(), input_ControlVarStop(), input_resource_RequestSout(), input_resource_SetInput(), input_resource_Terminate(), InputSourceClean(), libvlc_stats, input_item_t::lock, input_thread_t::p, 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_thread_private_t::slave, stats_ComputeInputStats(), TAB_CLEAN, vlc_input_attachment_Delete(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by input_Preparse(), input_Read(), and Run().
|
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 |
References demux_Control(), DEMUX_SET_GROUP, es_out_GetGroupForced(), ES_OUT_MODE_ALL, ES_OUT_MODE_AUTO, ES_OUT_MODE_PARTIAL, es_out_SetMode(), vlc_list_t::i_count, vlc_value_t::i_int, input_thread_private_t::input, INSERT_ELEM, list, input_thread_t::p, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_sout, vlc_list_t::p_values, strtok_r(), TAB_CLEAN, TAB_INIT, UpdatePtsDelay(), var_GetBool, and var_GetNonEmptyString.
Referenced by Init().
|
static |
|
static |
References input_source_t::b_can_pace_control, input_thread_private_t::b_can_pace_control, input_source_t::b_can_pause, input_thread_private_t::b_can_pause, input_source_t::b_can_rate_control, input_thread_private_t::b_can_rate_control, input_thread_t::b_preparsing, input_source_t::i_seekpoint_offset, input_thread_private_t::i_seekpoint_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, input_thread_private_t::input, input_ControlVarNavigation(), input_SendEventTitle(), input_item_t::lock, input_thread_t::p, input_thread_private_t::p_item, input_source_t::title, input_thread_private_t::title, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by Init(), and UpdateTitleListfromDemux().
|
static |
References input_thread_t::b_eof, input_thread_t::b_error, END_S, ERROR_S, input_thread_private_t::i_state, input_item_SetErrorWhenReading(), input_SendEventState(), input_thread_t::p, and input_thread_private_t::p_item.
Referenced by Control(), ControlPause(), ControlUnpause(), End(), Init(), input_Start(), MainLoop(), and MainLoopDemux().
| 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 | ||
| ) |
References input_thread_private_t::control, ControlRelease(), input_thread_private_t::i_control, input_control_t::i_type, i_type, INPUT_CONTROL_FIFO_SIZE, INPUT_CONTROL_SET_DIE, input_thread_private_t::lock_control, msg_Err, input_thread_t::p, input_control_t::val, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and input_thread_private_t::wait_control.
Referenced by BookmarkCallback(), ControlUnpause(), ESCallback(), EsDelayCallback(), FrameNextCallback(), Init(), input_Stop(), input_vaControl(), MainLoopTryRepeat(), NavigationCallback(), PositionCallback(), ProgramCallback(), RateCallback(), RecordCallback(), SeekpointCallback(), StartTitle(), StateCallback(), TimeCallback(), TitleCallback(), and TsRun().
| 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.
| p_parent | a vlc_object |
| p_item | an input item |
| psz_log | an optional prefix for this input logs |
| p_resource | an optional input ressource |
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.
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 | ) |
References input_thread_private_t::is_running, input_thread_t::p, input_thread_private_t::thread, and vlc_join().
Referenced by input_Close(), vlm_ControlMediaInstanceStart(), and vlm_MediaInstanceDelete().
| 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.
| p_parent | a vlc_object_t |
| p_item | an input item |
< 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.
| p_parent | a vlc_object |
| p_item | an input item |
< 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 | ) |
References vlc_object_release.
Referenced by input_Close(), vlm_ControlMediaInstanceStart(), and vlm_MediaInstanceDelete().
| 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.
| the | input 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.
| p_input | the input thread to stop |
| b_abort | true 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 | ||
| ) |
It will update internal input statistics from external sources.
XXX For now, the only one allowed to do it is stream_out and input core.
References input_thread_private_t::counters, input_thread_private_t::counters_lock, I, input_thread_private_t::i_state, INIT_S, INPUT_STATISTIC_DECODED_AUDIO, INPUT_STATISTIC_DECODED_SUBTITLE, INPUT_STATISTIC_DECODED_VIDEO, INPUT_STATISTIC_SENT_BYTE, INPUT_STATISTIC_SENT_PACKET, msg_Err, input_thread_t::p, input_thread_private_t::p_sout_send_bitrate, input_thread_private_t::p_sout_sent_bytes, stats_Update(), vlc_mutex_lock(), and vlc_mutex_unlock().
|
static |
References InputGetExtraFilesPattern(), and TAB_INIT.
Referenced by InputSourceInit().
|
static |
References asprintf(), get_path(), msg_Dbg, strdup(), TAB_APPEND, TAB_INIT, and vlc_stat().
Referenced by InputGetExtraFiles().
|
static |
References EnsureUTF8(), psz_name, var_GetNonEmptyString, vlc_meta_Artist, vlc_meta_Copyright, vlc_meta_Date, vlc_meta_Description, vlc_meta_Genre, vlc_meta_Set(), vlc_meta_Title, and vlc_meta_URL.
Referenced by Init().
|
static |
|
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 |
References access_Control(), ACCESS_GET_META, AppendAttachment(), input_thread_private_t::attachment, demux_meta_t::attachments, demux_Control(), DEMUX_GET_META, DEMUX_HAS_UNSUPPORTED_META, input_thread_private_t::i_attachment, demux_meta_t::i_attachments, input_item_t::lock, module_need, module_unneed, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, demux_meta_t::p_demux, demux_meta_t::p_item, input_thread_private_t::p_item, demux_meta_t::p_meta, vlc_custom_create, vlc_meta_Delete(), vlc_meta_Merge(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_object_release.
Referenced by Init().
|
static |
References VLC_UNUSED.
Referenced by Control(), LoadSlaves(), and SubtitleAdd().
|
static |
References es_out_ControlSetMeta(), input_thread_t::p, input_thread_private_t::p_es_out, and vlc_meta_Delete().
Referenced by Control(), Init(), UpdateGenericFromAccess(), and UpdateGenericFromDemux().
|
static |
References input_thread_private_t::i_slave, InputSourceInit(), InputSourceNew(), msg_Dbg, input_thread_t::p, input_thread_private_t::slave, strdup(), TAB_APPEND, var_GetNonEmptyString, and vlc_path2uri().
Referenced by Init().
|
static |
References asprintf(), input_thread_private_t::attachment, input_thread_private_t::f_fps, input_thread_private_t::i_attachment, input_item_t::lock, msg_Dbg, input_thread_t::p, input_thread_private_t::p_item, input_attachment_t::psz_description, input_attachment_t::psz_mime, input_attachment_t::psz_name, input_item_t::psz_uri, SUB_CANFAIL, SUB_FORCED, SUB_NOFLAG, SubtitleAdd(), subtitles_Detect(), TAB_APPEND, var_Create, var_CreateGetFloat, var_CreateGetInteger, var_Destroy, var_GetBool, var_GetNonEmptyString, var_SetFloat, var_SetString, var_SetTime, vlc_input_attachment_Delete(), vlc_input_attachment_New(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_VAR_DOINHERIT, VLC_VAR_FLOAT, and VLC_VAR_STRING.
Referenced by Init().
|
static |
MainLoop The main input loop.
References input_thread_private_t::b_can_pause, input_source_t::b_eof, input_thread_t::b_error, Control(), ControlIsSeekRequest(), ControlPop(), END_S, es_out_GetBuffering(), es_out_GetEmpty(), es_out_GetWakeup(), vlc_value_t::i_int, input_thread_private_t::i_state, i_type, input_thread_private_t::input, input_ChangeState(), INPUT_CONTROL_SET_STATE, INPUT_IDLE_SLEEP, MainLoopDemux(), MainLoopInterface(), MainLoopStatistic(), MainLoopTryRepeat(), mdate(), msg_Dbg, input_thread_t::p, input_thread_private_t::p_es_out, PAUSE_S, var_CreateGetBool, var_GetBool, and vlc_object_alive.
Referenced by input_Read(), and Run().
|
static |
MainLoopDemux It asks the demuxer to demux some data.
References input_source_t::b_eof, input_source_t::b_title_demux, demux_Demux(), ERROR_S, es_out_Eos(), input_thread_private_t::i_run, input_thread_private_t::i_slave, input_thread_private_t::i_stop, input_thread_private_t::i_time, demux_t::i_update, access_t::i_update, demux_t::info, access_t::info, input_thread_private_t::input, input_ChangeState(), INPUT_UPDATE_TITLE_LIST, mdate(), msg_Dbg, input_thread_t::p, input_source_t::p_access, input_source_t::p_demux, input_thread_private_t::p_es_out, demux_t::pf_demux, SlaveDemux(), UpdateGenericFromAccess(), UpdateGenericFromDemux(), UpdateTitleListfromDemux(), UpdateTitleSeekpointFromAccess(), and UpdateTitleSeekpointFromDemux().
Referenced by MainLoop().
|
static |
MainLoopInterface It update the variables used by the interfaces.
References input_thread_private_t::bookmark, demux_Control(), DEMUX_GET_LENGTH, DEMUX_GET_POSITION, DEMUX_GET_TIME, es_out_SetTimes(), seekpoint_t::i_byte_offset, input_thread_private_t::i_time, seekpoint_t::i_time_offset, input_thread_private_t::input, input_item_t::lock, input_thread_t::p, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_item, input_source_t::p_stream, stream_Tell(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by MainLoop().
|
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 |
< Unspecified error
< No error
References vlc_value_t::f_float, vlc_value_t::i_int, input_source_t::i_seekpoint_offset, input_source_t::i_seekpoint_start, input_thread_private_t::i_start, vlc_value_t::i_time, input_source_t::i_title, input_source_t::i_title_offset, input_source_t::i_title_start, input_thread_private_t::input, INPUT_CONTROL_SET_POSITION, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, input_ControlPush(), mdate(), msg_Dbg, input_thread_t::p, var_GetInteger, var_SetInteger, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by MainLoop().
|
static |
References MRLSeekPoint().
Referenced by InputSourceInit().
|
static |
Referenced by MRLSections().
|
static |
References vlc_list_t::i_count, input_thread_t::p, vlc_value_t::p_object, input_thread_private_t::p_sout, vlc_list_t::p_values, vlc_list_children, vlc_list_release(), VLC_OBJECT, and vlc_object_kill.
Referenced by Control(), and input_Stop().
|
static |
|
static |
References input_source_t::b_eof, demux_Control(), demux_Demux(), DEMUX_GET_TIME, DEMUX_SET_NEXT_DEMUX_TIME, input_thread_private_t::i_slave, input_thread_private_t::input, msg_Dbg, msg_Err, input_thread_t::p, input_source_t::p_demux, demux_t::pf_demux, and input_thread_private_t::slave.
Referenced by MainLoopDemux().
|
static |
|
static |
References input_thread_private_t::b_fast_seek, vlc_value_t::i_int, input_thread_private_t::i_run, input_source_t::i_seekpoint_offset, input_source_t::i_seekpoint_start, input_thread_private_t::i_start, input_thread_private_t::i_stop, vlc_value_t::i_time, input_source_t::i_title, input_source_t::i_title_offset, input_source_t::i_title_start, input_thread_private_t::input, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, input_ControlPush(), msg_Dbg, msg_Warn, input_thread_t::p, var_GetBool, and var_GetFloat.
Referenced by Init().
|
static |
References count, es_out_Control(), ES_OUT_SET_ES_BY_ID, ES_OUT_SET_ES_DEFAULT_BY_ID, vlc_list_t::i_count, vlc_value_t::i_int, input_thread_private_t::i_slave, InputSourceInit(), InputSourceNew(), list, msg_Dbg, input_thread_t::p, input_thread_private_t::p_es_out_display, vlc_value_t::p_list, vlc_list_t::p_values, input_thread_private_t::slave, strdup(), SUB_CANFAIL, SUB_FORCED, TAB_APPEND, var_Change, var_FreeList(), vlc_path2uri(), vlc_stat(), VLC_VAR_CHOICESCOUNT, and VLC_VAR_GETLIST.
Referenced by Control(), and LoadSubtitles().
|
static |
References access_Control(), ACCESS_GET_META, ACCESS_GET_SIGNAL, access_t::i_update, access_t::info, input_thread_private_t::input, input_SendEventSignal(), INPUT_UPDATE_META, INPUT_UPDATE_SIGNAL, INPUT_UPDATE_SIZE, InputUpdateMeta(), input_thread_t::p, input_source_t::p_access, and vlc_meta_New().
Referenced by MainLoopDemux().
|
static |
References demux_Control(), DEMUX_GET_META, DEMUX_GET_SIGNAL, demux_t::i_update, demux_t::info, input_thread_private_t::input, input_SendEventSignal(), INPUT_UPDATE_META, INPUT_UPDATE_SIGNAL, INPUT_UPDATE_SIZE, InputUpdateMeta(), input_thread_t::p, input_source_t::p_demux, and vlc_meta_New().
Referenced by MainLoopDemux().
|
static |
References AUDIO_ES, DEFAULT_PTS_DELAY, es_out_SetDelay(), es_out_SetJitter(), input_source_t::i_pts_delay, input_thread_private_t::i_slave, input_thread_private_t::input, input_thread_t::p, input_thread_private_t::p_es_out, input_thread_private_t::p_es_out_display, input_thread_private_t::slave, SPU_ES, var_GetInteger, and var_GetTime.
Referenced by Control(), and InitPrograms().
|
static |
References input_source_t::b_title_demux, demux_Control(), DEMUX_GET_TITLE_INFO, input_source_t::i_seekpoint_offset, input_source_t::i_title, input_source_t::i_title_offset, InitTitle(), input_thread_private_t::input, input_thread_t::p, input_source_t::p_demux, TAB_CLEAN, TAB_INIT, input_source_t::title, and vlc_input_title_Delete().
Referenced by MainLoopDemux().
|
static |
|
static |
References access_t::i_seekpoint, access_t::i_title, access_t::i_update, access_t::info, input_thread_private_t::input, input_SendEventSeekpoint(), input_SendEventTitle(), INPUT_UPDATE_SEEKPOINT, INPUT_UPDATE_TITLE, input_thread_t::p, input_source_t::p_access, input_source_t::p_stream, stream_Control(), STREAM_UPDATE_SIZE, and UpdateTitleSeekpoint().
Referenced by MainLoopDemux().
|
static |
References demux_t::i_seekpoint, demux_t::i_title, demux_t::i_update, demux_t::info, input_thread_private_t::input, input_SendEventSeekpoint(), input_SendEventTitle(), INPUT_UPDATE_SEEKPOINT, INPUT_UPDATE_TITLE, input_thread_t::p, input_source_t::p_demux, and UpdateTitleSeekpoint().
Referenced by MainLoopDemux().
1.8.1.2