VLC
4.0.0-dev
|
Macros | |
#define | SLAVE_ADD_NOFLAG 0 |
#define | SLAVE_ADD_FORCED (1<<0) |
#define | SLAVE_ADD_CANFAIL (1<<1) |
#define | SLAVE_ADD_SET_TIME (1<<2) |
Enumerations | |
enum | input_create_option { INPUT_CREATE_OPTION_NONE, INPUT_CREATE_OPTION_PREPARSING, INPUT_CREATE_OPTION_THUMBNAILING } |
Functions | |
static void * | Run (void *) |
static void * | Preparse (void *) |
static input_thread_t * | Create (vlc_object_t *, input_thread_events_cb, void *, input_item_t *, enum input_create_option option, input_resource_t *, vlc_renderer_item_t *) |
static void | Destroy (input_thread_t *p_input) |
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. More... | |
static int | ControlPop (input_thread_t *, int *, input_control_param_t *, vlc_tick_t i_deadline, bool b_postpone_seek) |
static void | ControlRelease (int i_type, const input_control_param_t *p_param) |
static bool | ControlIsSeekRequest (int i_type) |
static bool | Control (input_thread_t *, int, input_control_param_t) |
static void | ControlPause (input_thread_t *, vlc_tick_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 *, const char *, const char *psz_forced_demux, bool b_in_can_fail) |
static void | InputSourceDestroy (input_source_t *) |
static void | InputSourceMeta (input_thread_t *, input_source_t *, vlc_meta_t *) |
static void | SlaveDemux (input_thread_t *p_input) |
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, demux_t *p_demux) |
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, const demux_t ***ppp_attachment_demux, int i_new, input_attachment_t **pp_new, const demux_t *p_demux) |
static int | input_SlaveSourceAdd (input_thread_t *, enum slave_type, const char *, unsigned) |
static char * | input_SubtitleFile2Uri (input_thread_t *, const char *) |
static void | input_ChangeState (input_thread_t *p_input, int i_state, vlc_tick_t) |
input_thread_t * | input_Create (vlc_object_t *p_parent, input_thread_events_cb events_cb, void *events_data, input_item_t *p_item, input_resource_t *p_resource, vlc_renderer_item_t *p_renderer) |
Create a new input_thread_t. More... | |
input_thread_t * | input_CreatePreparser (vlc_object_t *parent, input_thread_events_cb events_cb, void *events_data, input_item_t *item) |
Creates an item preparser. More... | |
input_thread_t * | input_CreateThumbnailer (vlc_object_t *obj, input_thread_events_cb events_cb, void *events_data, input_item_t *item) |
int | input_Start (input_thread_t *p_input) |
Start a input_thread_t created by input_Create. More... | |
void | input_Stop (input_thread_t *p_input) |
Request a running input thread to stop and die. More... | |
void | input_Close (input_thread_t *p_input) |
Close an input. More... | |
void | input_SetTime (input_thread_t *p_input, vlc_tick_t i_time, bool b_fast) |
void | input_SetPosition (input_thread_t *p_input, float f_position, bool b_fast) |
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. More... | |
bool | input_Stopped (input_thread_t *input) |
static void | MainLoopDemux (input_thread_t *p_input, bool *pb_changed) |
MainLoopDemux It asks the demuxer to demux some data. More... | |
static int | MainLoopTryRepeat (input_thread_t *p_input) |
static void | MainLoopStatistics (input_thread_t *p_input) |
Update timing infos and statistics. More... | |
static void | InitTitle (input_thread_t *p_input, bool had_titles) |
static void | StartTitle (input_thread_t *p_input) |
static int | SlaveCompare (const void *a, const void *b) |
static bool | SlaveExists (input_item_slave_t **pp_slaves, int i_slaves, const char *psz_uri) |
static void | RequestSubRate (input_thread_t *p_input, float f_slave_fps) |
static void | SetSubtitlesOptions (input_thread_t *p_input) |
static void | GetVarSlaves (input_thread_t *p_input, input_item_slave_t ***ppp_slaves, int *p_slaves) |
static void | LoadSlaves (input_thread_t *p_input) |
static void | UpdatePtsDelay (input_thread_t *p_input) |
static void | InitPrograms (input_thread_t *p_input) |
static size_t | ControlGetReducedIndexLocked (input_thread_t *p_input, input_control_t *c) |
int | input_ControlPush (input_thread_t *p_input, int i_type, const input_control_param_t *p_param) |
static void | ControlUnpause (input_thread_t *p_input, vlc_tick_t i_control_date) |
static void | ViewpointApply (input_thread_t *p_input) |
static void | ControlNav (input_thread_t *p_input, int i_type) |
static void | ControlInsertDemuxFilter (input_thread_t *p_input, const char *psz_demux_chain) |
void | input_ControlSync (input_thread_t *p_input, int i_type, const input_control_param_t *param) |
Synchronously execute a control sequence. More... | |
static int | UpdateTitleSeekpoint (input_thread_t *p_input, int i_title, int i_seekpoint) |
static int | InputStreamHandleAnchor (input_thread_t *p_input, input_source_t *source, stream_t **stream, char const *anchor) |
static demux_t * | InputDemuxNew (input_thread_t *p_input, input_source_t *p_source, const char *url, const char *psz_demux, const char *psz_anchor) |
static void | input_SplitMRL (const char **, const char **, const char **, const char **, char *) |
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 const char * | MRLSeekPoint (const char *str, int *title, int *chapter) |
int | input_GetAttachments (input_thread_t *input, input_attachment_t ***attachments) |
input_attachment_t * | input_GetAttachment (input_thread_t *input, const char *name) |
#define SLAVE_ADD_CANFAIL (1<<1) |
Referenced by Control(), input_SlaveSourceAdd(), and LoadSlaves().
#define SLAVE_ADD_FORCED (1<<0) |
Referenced by Control(), input_SlaveSourceAdd(), and LoadSlaves().
#define SLAVE_ADD_NOFLAG 0 |
Referenced by LoadSlaves().
#define SLAVE_ADD_SET_TIME (1<<2) |
Referenced by Control(), and input_SlaveSourceAdd().
enum input_create_option |
|
static |
References likely, and vlc_input_attachment_Delete().
Referenced by InputSourceMeta(), InputSourceNew(), and InputUpdateMeta().
|
static |
References AUDIO_ES, vlc_value_t::b_bool, input_thread_private_t::b_can_pace_control, input_thread_private_t::b_can_rate_control, input_source_t::b_can_stream_record, input_source_t::b_eof, input_control_param_t::b_fast_seek, input_item_slave::b_forced, input_thread_private_t::b_out_pace_control, input_thread_private_t::b_recording, input_source_t::b_rescale_ts, input_control_param_t::cat, input_control_param_t::cat_delay, ControlInsertDemuxFilter(), ControlNav(), ControlPause(), ControlRelease(), ControlUnpause(), count, input_control_param_t::delay, demux_Control(), demux_FilterDisable(), demux_FilterEnable(), DEMUX_GET_LENGTH, demux_GetSeekpoint(), demux_GetTitle(), DEMUX_SET_ES, DEMUX_SET_ES_LIST, DEMUX_SET_GROUP_DEFAULT, DEMUX_SET_GROUP_LIST, DEMUX_SET_RATE, DEMUX_SET_RECORD_STATE, DEMUX_SET_SEEKPOINT, DEMUX_SET_TITLE, demux_SetPosition(), demux_SetTime(), input_control_param_t::enabled, input_control_param_t::es_autoselect, input_control_param_t::es_delay, es_out_Control(), ES_OUT_RESET_PCR, ES_OUT_RESTART_ES, ES_OUT_RESTART_ES_BY_ID, ES_OUT_SET_AUTOSELECT, ES_OUT_SET_ES, ES_OUT_SET_ES_BY_ID, ES_OUT_SET_ES_LIST, ES_OUT_SET_GROUP, ES_OUT_SET_VBI_PAGE, ES_OUT_SET_VBI_TRANSPARENCY, es_out_SetDelay(), es_out_SetEsDelay(), es_out_SetFrameNext(), es_out_SetRate(), es_out_SetRecordState(), ES_OUT_START_ALL_ES, ES_OUT_STOP_ALL_ES, ES_OUT_UNSET_ES, vlc_value_t::f_float, input_control_param_t::f_val, vlc_viewpoint_t::fov, vlc_value_t::i_int, input_title_t::i_seekpoint, input_thread_private_t::i_slave, input_thread_private_t::i_state, seekpoint_t::i_time_offset, input_source_t::i_title, input_item_slave::i_type, input_control_param_t::i_val, input_control_param_t::id, input_control_param_t::ids, INPUT_CONTROL_ADD_SLAVE, INPUT_CONTROL_JUMP_POSITION, INPUT_CONTROL_JUMP_TIME, INPUT_CONTROL_NAV_ACTIVATE, INPUT_CONTROL_NAV_DOWN, INPUT_CONTROL_NAV_LEFT, INPUT_CONTROL_NAV_MENU, INPUT_CONTROL_NAV_POPUP, INPUT_CONTROL_NAV_RIGHT, INPUT_CONTROL_NAV_UP, INPUT_CONTROL_RESTART_ES, INPUT_CONTROL_RESTART_ES_BY_ID, INPUT_CONTROL_SET_CATEGORY_DELAY, INPUT_CONTROL_SET_ES, INPUT_CONTROL_SET_ES_AUTOSELECT, INPUT_CONTROL_SET_ES_BY_ID, INPUT_CONTROL_SET_ES_DELAY, INPUT_CONTROL_SET_ES_LIST, INPUT_CONTROL_SET_FRAME_NEXT, INPUT_CONTROL_SET_INITIAL_VIEWPOINT, INPUT_CONTROL_SET_POSITION, INPUT_CONTROL_SET_PROGRAM, INPUT_CONTROL_SET_RATE, INPUT_CONTROL_SET_RECORD_STATE, INPUT_CONTROL_SET_RENDERER, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_SEEKPOINT_NEXT, INPUT_CONTROL_SET_SEEKPOINT_PREV, INPUT_CONTROL_SET_STATE, INPUT_CONTROL_SET_SUBS_FPS, INPUT_CONTROL_SET_TIME, INPUT_CONTROL_SET_TITLE, INPUT_CONTROL_SET_TITLE_NEXT, INPUT_CONTROL_SET_TITLE_PREV, INPUT_CONTROL_SET_VBI_PAGE, INPUT_CONTROL_SET_VBI_TRANSPARENCY, INPUT_CONTROL_SET_VIEWPOINT, INPUT_CONTROL_UNSET_ES, INPUT_CONTROL_UPDATE_VIEWPOINT, input_item_AddSlave(), input_priv(), INPUT_RATE_MAX, INPUT_RATE_MIN, input_SendEventRate(), input_SendEventRecord(), input_SendEventSeekpoint(), input_SendEventSubsFPS(), input_SlaveSourceAdd(), input_control_param_t::list, input_thread_private_t::master, msg_Dbg, msg_Err, msg_Info, msg_Warn, vlc_value_t::p_address, 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_renderer, input_thread_private_t::p_sout, input_control_param_t::page, PAUSE_S, vlc_viewpoint_t::pitch, PLAYING_S, input_control_param_t::pos, input_item_slave::psz_uri, input_thread_private_t::rate, RequestSubRate(), vlc_viewpoint_t::roll, input_title_t::seekpoint, SLAVE_ADD_CANFAIL, SLAVE_ADD_FORCED, SLAVE_ADD_SET_TIME, SlaveSeek(), SPU_ES, input_control_param_t::time, input_source_t::title, input_control_param_t::val, var_GetInteger(), input_control_param_t::vbi_page, input_control_param_t::vbi_transparency, input_control_param_t::viewpoint, input_thread_private_t::viewpoint, input_thread_private_t::viewpoint_changed, ViewpointApply(), vlc_alloc(), vlc_es_id_get_out(), vlc_es_id_GetInputId(), vlc_renderer_item_demux_filter(), vlc_renderer_item_hold(), vlc_renderer_item_release(), VLC_SUCCESS, VLC_TICK_FROM_SEC, vlc_tick_now(), and vlc_viewpoint_t::yaw.
Referenced by ControlNav(), input_ControlSync(), and MainLoop().
|
static |
References input_thread_private_t::control, input_control_param_t::f_val, input_thread_private_t::i_control, input_control_t::i_type, input_control_param_t::i_val, INPUT_CONTROL_JUMP_POSITION, INPUT_CONTROL_JUMP_TIME, 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, input_priv(), input_control_t::param, input_control_param_t::pos, and input_control_param_t::time.
Referenced by input_ControlPush().
|
static |
References demux_FilterChainNew(), input_priv(), input_thread_private_t::master, msg_Dbg, and input_source_t::p_demux.
Referenced by Control().
|
static |
References INPUT_CONTROL_JUMP_POSITION, INPUT_CONTROL_JUMP_TIME, INPUT_CONTROL_NAV_ACTIVATE, INPUT_CONTROL_NAV_DOWN, INPUT_CONTROL_NAV_LEFT, INPUT_CONTROL_NAV_MENU, INPUT_CONTROL_NAV_POPUP, INPUT_CONTROL_NAV_RIGHT, INPUT_CONTROL_NAV_UP, 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 |
References aout_Release(), aout_VolumeUpdate(), Control(), demux_Control(), DEMUX_NAV_ACTIVATE, vlc_viewpoint_t::fov, INPUT_CONTROL_JUMP_TIME, INPUT_CONTROL_NAV_ACTIVATE, INPUT_CONTROL_NAV_DOWN, INPUT_CONTROL_NAV_LEFT, INPUT_CONTROL_NAV_MENU, INPUT_CONTROL_NAV_POPUP, INPUT_CONTROL_NAV_RIGHT, INPUT_CONTROL_NAV_UP, input_priv(), input_resource_HoldAout(), input_resource_HoldVouts(), input_resource_RequestSout(), input_thread_private_t::master, msg_Err, input_source_t::p_demux, input_thread_private_t::p_resource, input_thread_private_t::p_sout, vlc_viewpoint_t::pitch, vlc_viewpoint_t::roll, var_GetBool(), var_InheritInteger(), input_thread_private_t::viewpoint, input_thread_private_t::viewpoint_changed, ViewpointApply(), vlc_assert_unreachable, VLC_SUCCESS, vlc_tick_from_sec, vout_Release(), and vlc_viewpoint_t::yaw.
Referenced by Control().
|
static |
References demux_Control(), DEMUX_SET_PAUSE_STATE, es_out_SetPauseState(), input_ChangeState(), input_priv(), input_thread_private_t::master, msg_Warn, input_source_t::p_demux, and PAUSE_S.
Referenced by Control(), and MainLoop().
|
inlinestatic |
References input_thread_private_t::control, ControlIsSeekRequest(), input_thread_private_t::i_control, input_control_t::i_type, input_priv(), input_thread_private_t::is_stopped, input_thread_private_t::lock_control, input_control_t::param, vlc_cond_timedwait(), vlc_cond_wait(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and input_thread_private_t::wait_control.
Referenced by MainLoop().
|
static |
References input_control_param_t::id, input_control_param_t::ids, INPUT_CONTROL_ADD_SLAVE, INPUT_CONTROL_RESTART_ES, INPUT_CONTROL_SET_ES, INPUT_CONTROL_SET_ES_LIST, INPUT_CONTROL_SET_RENDERER, INPUT_CONTROL_UNSET_ES, input_item_slave_Delete, input_control_param_t::list, vlc_value_t::p_address, input_control_param_t::val, vlc_es_id_Release(), and vlc_renderer_item_release().
Referenced by Control(), Destroy(), input_ControlPush(), and input_Stop().
|
static |
References demux_Control(), DEMUX_SET_PAUSE_STATE, ERROR_S, es_out_SetPauseState(), input_ChangeState(), input_priv(), input_thread_private_t::master, msg_Err, input_source_t::p_demux, and PLAYING_S.
Referenced by Control().
|
static |
References input_thread_private_t::attachment, input_thread_private_t::attachment_demux, input_thread_private_t::b_can_pace_control, input_thread_private_t::b_low_delay, input_thread_private_t::b_out_pace_control, input_item_t::b_preparse_interact, input_thread_private_t::b_preparsing, input_thread_private_t::b_recording, input_thread_private_t::b_thumbnailing, input_thread_private_t::events_cb, input_thread_private_t::events_data, input_thread_private_t::i_attachment, input_thread_private_t::i_control, input_thread_private_t::i_last_es_cat, input_item_t::i_preparse_depth, 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_title_offset, INIT_S, input_thread_private_t::input, input_ConfigVarInit(), INPUT_CREATE_OPTION_PREPARSING, INPUT_CREATE_OPTION_THUMBNAILING, input_EsOutNew(), input_item_ApplyOptions(), input_item_GetName(), input_item_Hold(), input_item_SetESNowPlaying(), input_item_SetNowPlaying(), input_priv(), input_resource_Hold(), input_resource_New(), input_resource_SetInput(), input_stats_Create(), input_thread_private_t::interrupt, input_thread_private_t::is_running, input_thread_private_t::is_stopped, input_item_t::lock, input_thread_private_t::lock_control, vlc_object_t::logger, input_thread_private_t::master, msg_Dbg, vlc_object_t::no_interact, input_thread_private_t::normal_time, input_thread_t::obj, 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_renderer, input_thread_private_t::p_resource, input_thread_private_t::p_sout, input_item_t::p_stats, psz_name, input_thread_private_t::rate, input_thread_private_t::slave, input_thread_private_t::stats, strcasecmp(), TAB_INIT, UNKNOWN_ES, unlikely, var_InheritAddress(), var_InheritBool(), var_InheritString(), input_thread_private_t::viewpoint, input_thread_private_t::viewpoint_changed, vlc_cond_init(), vlc_custom_create, vlc_interrupt_init(), vlc_mutex_init(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, vlc_renderer_item_hold(), VLC_TICK_0, vlc_viewpoint_init(), and input_thread_private_t::wait_control.
Referenced by input_Create(), input_CreatePreparser(), and input_CreateThumbnailer().
|
static |
References input_thread_private_t::control, ControlRelease(), es_out_Delete(), input_thread_private_t::i_control, input_control_t::i_type, input_item_GetName(), input_item_Release(), input_priv(), input_resource_Release(), input_stats_Destroy(), input_thread_private_t::lock_control, msg_Dbg, name, input_thread_private_t::p_es_out_display, input_thread_private_t::p_item, input_thread_private_t::p_renderer, input_thread_private_t::p_resource, input_control_t::param, input_thread_private_t::stats, vlc_cond_destroy(), vlc_mutex_destroy(), VLC_OBJECT, vlc_object_delete, vlc_renderer_item_release(), and input_thread_private_t::wait_control.
Referenced by input_Close().
|
static |
References input_thread_private_t::attachment, input_thread_private_t::attachment_demux, 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_seekpoint_offset, input_thread_private_t::i_slave, input_thread_private_t::i_title_offset, input_ChangeState(), input_priv(), input_resource_Release(), input_resource_RequestSout(), input_resource_SetInput(), input_stats_Compute(), InputSourceDestroy(), input_item_t::lock, input_thread_private_t::master, 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_item_t::p_stats, input_thread_private_t::slave, input_thread_private_t::stats, TAB_CLEAN, vlc_input_attachment_Delete(), vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_TICK_INVALID.
Referenced by Preparse(), and Run().
|
static |
References input_item_slave_New(), SLAVE_PRIORITY_USER, SLAVE_TYPE_AUDIO, strdup(), TAB_APPEND, unlikely, var_GetNonEmptyString(), and vlc_path2uri().
Referenced by LoadSlaves().
|
static |
References input_thread_private_t::b_out_pace_control, input_thread_private_t::b_preparsing, demux_Control(), DEMUX_GET_LENGTH, ERROR_S, es_out_ControlSetMeta(), es_out_Delete(), ES_OUT_MODE_END, es_out_SetMode(), vlc_value_t::f_float, sout_instance_t::i_out_pace_nocontrol, input_thread_private_t::i_slave, InitPrograms(), InitTitle(), input_ChangeState(), INPUT_CONTROL_SET_RATE, input_ControlPushHelper(), input_EsOutTimeshiftNew(), input_item_GetDuration(), input_item_IsPreparsed(), input_priv(), input_resource_Release(), input_resource_RequestSout(), input_resource_SetInput(), input_SendEventCache(), input_SendEventTimes(), InputMetaUser(), InputSourceMeta(), InputSourceNew(), LoadSlaves(), input_thread_private_t::master, msg_Dbg, input_thread_private_t::normal_time, OPENING_S, 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_sout, PLAYING_S, input_item_t::psz_uri, input_thread_private_t::rate, SetSubtitlesOptions(), input_thread_private_t::slave, StartTitle(), var_GetFloat(), var_SetBool(), var_SetInteger(), var_SetString(), var_Type(), VLC_EGENERIC, vlc_meta_Delete(), vlc_meta_New(), vlc_object_parent, VLC_SUCCESS, VLC_TICK_INVALID, and vlc_tick_now().
Referenced by Preparse(), and Run().
|
static |
References count, demux_Control(), DEMUX_SET_GROUP_ALL, DEMUX_SET_GROUP_DEFAULT, DEMUX_SET_GROUP_LIST, es_out_GetGroupForced(), ES_OUT_MODE_ALL, ES_OUT_MODE_AUTO, ES_OUT_MODE_PARTIAL, es_out_SetMode(), input_priv(), strtok_r(), TAB_APPEND, TAB_INIT, UpdatePtsDelay(), var_GetBool(), and var_GetNonEmptyString().
Referenced by Init().
|
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_private_t::b_preparsing, input_source_t::i_seekpoint_offset, input_thread_private_t::i_seekpoint_offset, input_source_t::i_title, input_source_t::i_title_offset, input_thread_private_t::i_title_offset, input_priv(), input_SendEventTitle(), input_item_t::lock, input_thread_private_t::master, input_thread_private_t::p_item, input_source_t::title, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by Init(), and UpdateTitleListfromDemux().
|
static |
References ERROR_S, input_thread_private_t::i_state, input_item_SetErrorWhenReading(), input_priv(), and input_SendEventState().
Referenced by ControlPause(), ControlUnpause(), End(), Init(), MainLoop(), and MainLoopDemux().
void input_Close | ( | input_thread_t * | p_input | ) |
Close an input.
It does not call input_Stop itself.
References Destroy(), input_priv(), thread, vlc_interrupt_deinit(), and vlc_join().
Referenced by input_item_Parse(), input_item_parser_id_Release(), thumbnailer_request_Release(), and vlc_player_input_Delete().
int input_ControlPush | ( | input_thread_t * | p_input, |
int | i_type, | ||
const input_control_param_t * | p_param | ||
) |
References input_thread_private_t::control, ControlGetReducedIndexLocked(), ControlRelease(), input_thread_private_t::i_control, input_control_t::i_type, i_type, INPUT_CONTROL_FIFO_SIZE, input_priv(), input_thread_private_t::is_stopped, input_thread_private_t::lock_control, msg_Dbg, msg_Err, input_control_t::param, vlc_cond_signal(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and input_thread_private_t::wait_control.
Referenced by input_ControlPushEsHelper(), input_ControlPushHelper(), input_resource_StartVout(), input_SetPosition(), input_SetTime(), vlc_player_input_New(), vlc_player_SeekByPos(), vlc_player_SeekByTime(), vlc_player_SelectEsIdList(), vlc_player_SelectNextChapter(), vlc_player_SelectNextTitle(), vlc_player_SelectPrevChapter(), vlc_player_SelectPrevTitle(), vlc_player_SelectTeletextPage(), vlc_player_SetCategoryDelay(), vlc_player_SetEsIdDelay(), vlc_player_SetTeletextTransparency(), and vlc_player_UpdateViewpoint().
void input_ControlSync | ( | input_thread_t * | , |
int | , | ||
const input_control_param_t * | |||
) |
Synchronously execute a control sequence.
This MUST only be used before the input is started
References Control(), and input_priv().
Referenced by input_ControlPushEsHelper(), and vlc_player_input_RestoreMlStates().
input_thread_t* input_Create | ( | vlc_object_t * | p_parent, |
input_thread_events_cb | events_cb, | ||
void * | events_data, | ||
input_item_t * | p_item, | ||
input_resource_t * | p_resource, | ||
vlc_renderer_item_t * | p_renderer | ||
) |
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 |
p_resource | an optional input ressource |
References Create(), and INPUT_CREATE_OPTION_NONE.
Referenced by vlc_player_input_New().
input_thread_t* input_CreatePreparser | ( | vlc_object_t * | obj, |
input_thread_events_cb | events_cb, | ||
void * | events_data, | ||
input_item_t * | item | ||
) |
Creates an item preparser.
Creates an input thread to preparse an item. The input needs to be started with input_Start() afterwards.
obj | parent object |
item | input item to preparse |
References Create(), and INPUT_CREATE_OPTION_PREPARSING.
Referenced by input_item_Parse().
input_thread_t* input_CreateThumbnailer | ( | vlc_object_t * | obj, |
input_thread_events_cb | events_cb, | ||
void * | events_data, | ||
input_item_t * | item | ||
) |
References Create(), and INPUT_CREATE_OPTION_THUMBNAILING.
Referenced by thumbnailer_request_Start().
input_attachment_t* input_GetAttachment | ( | input_thread_t * | input, |
const char * | name | ||
) |
References input_thread_private_t::attachment, input_thread_private_t::i_attachment, input_priv(), input_item_t::lock, input_thread_private_t::p_item, input_attachment_t::psz_name, vlc_input_attachment_Duplicate(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by accessNewAttachment(), input_ControlPushEsHelper(), and input_ExtractAttachmentAndCacheArt().
int input_GetAttachments | ( | input_thread_t * | input, |
input_attachment_t *** | attachments | ||
) |
References input_thread_private_t::attachment, input_thread_private_t::i_attachment, input_priv(), input_item_t::lock, input_thread_private_t::p_item, vlc_alloc(), vlc_input_attachment_Duplicate(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by decoder_get_attachments(), input_ControlPushEsHelper(), and spu_get_attachments().
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_priv(), and input_thread_private_t::p_item.
Referenced by access_New(), demux_NewAdvanced(), DisplayVoutTitle(), EsOutEsUpdateFmt(), EsOutMeta(), EsOutSetRecord(), input_item_parser_InputEvent(), input_thread_Events(), stream_AccessNew(), and vlc_player_UpdateMLStates().
void input_SetPosition | ( | input_thread_t * | p_input, |
float | f_position, | ||
bool | b_fast | ||
) |
void input_SetTime | ( | input_thread_t * | p_input, |
vlc_tick_t | i_time, | ||
bool | b_fast | ||
) |
References input_control_param_t::b_fast_seek, input_control_param_t::i_val, INPUT_CONTROL_SET_TIME, input_ControlPush(), and input_control_param_t::time.
Referenced by MainLoopTryRepeat(), StartTitle(), and thumbnailer_request_Start().
|
static |
References AUDIO_ES, input_source_t::b_slave_sub, demux_Control(), DEMUX_GET_TIME, DEMUX_SET_TIME, es_out_Control(), ES_OUT_SET_ES_BY_ID, ES_OUT_SET_ES_DEFAULT_BY_ID, input_thread_private_t::i_last_es_cat, input_thread_private_t::i_last_es_id, input_thread_private_t::i_slave, input_priv(), InputSourceDestroy(), InputSourceNew(), InputUpdateMeta(), input_thread_private_t::master, msg_Dbg, msg_Err, msg_Warn, input_source_t::p_demux, input_thread_private_t::p_es_out_display, input_thread_private_t::slave, SLAVE_ADD_CANFAIL, SLAVE_ADD_FORCED, SLAVE_ADD_SET_TIME, SLAVE_TYPE_AUDIO, SLAVE_TYPE_SPU, SPU_ES, TAB_APPEND, UNKNOWN_ES, vlc_assert_unreachable, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by Control(), and LoadSlaves().
|
static |
References p.
Referenced by InputDemuxNew(), and InputSourceNew().
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 |
References input_thread_private_t::b_preparsing, input_priv(), input_thread_private_t::is_running, msg_Err, Preparse(), Run(), input_thread_private_t::thread, vlc_clone(), VLC_EGENERIC, VLC_SUCCESS, and VLC_THREAD_PRIORITY_INPUT.
Referenced by input_item_Parse(), thumbnailer_request_Start(), and vlc_player_input_Start().
void input_Stop | ( | input_thread_t * | p_input | ) |
Request a running input thread to stop and die.
p_input | the input thread to stop |
References input_thread_private_t::control, ControlRelease(), input_thread_private_t::i_control, input_control_t::i_type, input_priv(), input_thread_private_t::interrupt, input_thread_private_t::is_stopped, input_thread_private_t::lock_control, input_control_t::param, vlc_cond_signal(), vlc_interrupt_kill(), vlc_mutex_lock(), vlc_mutex_unlock(), and input_thread_private_t::wait_control.
Referenced by input_item_parser_id_Interrupt(), on_thumbnailer_input_event(), thumbnailer_request_Stop(), and vlc_player_destructor_Thread().
bool input_Stopped | ( | input_thread_t * | input | ) |
References input_priv(), input_thread_private_t::is_stopped, input_thread_private_t::lock_control, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutDrainDecoder(), input_ControlPushEsHelper(), InputSourceNew(), and MainLoop().
|
static |
References msg_Dbg, strdup(), vlc_path2uri(), and vlc_stat().
Referenced by LoadSlaves().
|
static |
References input_thread_private_t::b_preparsing, demux_NewAdvanced(), input_source_t::i_seekpoint_end, input_source_t::i_seekpoint_start, input_source_t::i_title_end, input_source_t::i_title_start, input_priv(), input_SplitMRL(), InputStreamHandleAnchor(), MRLSections(), input_thread_private_t::p_es_out, stream_t::pf_block, stream_t::pf_read, stream_t::pf_readdir, stream_AccessNew(), stream_FilterAutoNew(), stream_FilterChainNew(), var_InheritBool(), var_InheritString(), VLC_OBJECT, and vlc_stream_Delete().
Referenced by InputSourceNew().
|
static |
References ARRAY_SIZE, InputGetExtraFilesPattern(), and TAB_INIT.
Referenced by InputSourceNew().
|
static |
References asprintf(), get_path(), msg_Dbg, strdup(), TAB_APPEND, TAB_INIT, vlc_path2uri(), 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 |
References demux_Delete(), input_source_t::i_title, input_source_t::p_demux, TAB_CLEAN, input_source_t::title, and vlc_input_title_Delete().
Referenced by End(), and input_SlaveSourceAdd().
|
static |
References AppendAttachment(), demux_meta_t::attachments, demux_Control(), DEMUX_GET_META, DEMUX_HAS_UNSUPPORTED_META, demux_meta_t::i_attachments, input_priv(), module_need, module_unneed, input_source_t::p_demux, demux_meta_t::p_item, input_thread_private_t::p_item, demux_meta_t::p_meta, unlikely, vlc_custom_create, vlc_meta_Delete(), vlc_meta_Merge(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_object_delete.
Referenced by Init().
|
static |
References _, AppendAttachment(), asprintf(), 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_source_t::b_rescale_ts, input_source_t::b_title_demux, count, DEMUX_CAN_CONTROL_PACE, DEMUX_CAN_CONTROL_RATE, DEMUX_CAN_PAUSE, DEMUX_CAN_RECORD, DEMUX_CAN_SEEK, demux_Control(), demux_FilterChainNew(), DEMUX_GET_ATTACHMENTS, DEMUX_GET_FPS, DEMUX_GET_PTS_DELAY, DEMUX_GET_TITLE_INFO, input_source_t::f_fps, input_source_t::i_pts_delay, input_source_t::i_seekpoint_offset, input_source_t::i_title, input_source_t::i_title_offset, input_priv(), INPUT_PTS_DELAY_MAX, input_SendEventCapabilities(), input_SplitMRL(), input_Stopped(), InputDemuxNew(), InputGetExtraFiles(), likely, list, msg_Dbg, msg_Err, input_source_t::p_demux, input_thread_private_t::p_renderer, stream_t::pf_demux, strcasecmp(), strdup(), TAB_CLEAN, TAB_INIT, input_source_t::title, unlikely, var_Create(), var_GetBool(), var_GetInteger(), var_GetNonEmptyString(), var_InheritString(), var_SetString(), vlc_dialog_display_error, VLC_INPUT_CAPABILITIES_CHANGE_RATE, VLC_INPUT_CAPABILITIES_PAUSEABLE, VLC_INPUT_CAPABILITIES_RECORDABLE, VLC_INPUT_CAPABILITIES_REWINDABLE, VLC_INPUT_CAPABILITIES_SEEKABLE, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_renderer_item_demux_filter(), and VLC_VAR_STRING.
Referenced by Init(), and input_SlaveSourceAdd().
|
static |
|
static |
References AppendAttachment(), input_thread_private_t::attachment, input_thread_private_t::attachment_demux, demux_Control(), DEMUX_GET_ATTACHMENTS, DEMUX_GET_META, es_out_ControlSetMeta(), input_thread_private_t::i_attachment, input_priv(), unlikely, vlc_input_attachment_Delete(), vlc_meta_Delete(), vlc_meta_New(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by input_SlaveSourceAdd(), and UpdateGenericFromDemux().
|
static |
References asprintf(), input_thread_private_t::attachment, input_item_slave::b_forced, GetVarSlaves(), input_thread_private_t::i_attachment, input_item_slave::i_priority, input_item_t::i_slaves, input_item_slave::i_type, input_item_AddSlave(), input_item_slave_Delete, input_item_slave_New(), input_priv(), input_SlaveSourceAdd(), input_SubtitleFile2Uri(), input_item_t::lock, msg_Dbg, input_thread_private_t::p_item, input_item_t::pp_slaves, input_attachment_t::psz_description, input_attachment_t::psz_mime, input_attachment_t::psz_name, input_item_slave::psz_uri, SLAVE_ADD_CANFAIL, SLAVE_ADD_FORCED, SLAVE_ADD_NOFLAG, SLAVE_PRIORITY_USER, SLAVE_TYPE_AUDIO, SLAVE_TYPE_SPU, SlaveCompare(), SlaveExists(), static_assert, subtitles_Detect(), TAB_APPEND, TAB_CLEAN, TAB_INIT, var_Create(), var_Destroy(), var_GetBool(), var_GetNonEmptyString(), var_SetString(), vlc_input_attachment_Delete(), vlc_input_attachment_New(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and VLC_VAR_STRING.
Referenced by Init().
|
static |
MainLoop The main input loop.
References asprintf(), input_source_t::b_eof, input_thread_private_t::b_preparsing, Control(), ControlIsSeekRequest(), ControlPause(), ControlPop(), ERROR_S, es_out_GetBuffering(), es_out_GetEmpty(), es_out_GetWakeup(), vlc_value_t::i_int, input_thread_private_t::i_state, i_type, input_ChangeState(), INPUT_CONTROL_SET_STATE, INPUT_IDLE_SLEEP, input_priv(), input_resource_RequestSout(), input_Stopped(), MainLoopDemux(), MainLoopStatistics(), MainLoopTryRepeat(), input_thread_private_t::master, msg_Dbg, msg_Err, input_source_t::p_demux, input_thread_private_t::p_item, input_thread_private_t::p_renderer, input_thread_private_t::p_resource, input_thread_private_t::p_sout, PAUSE_S, stream_t::pf_demux, input_item_t::psz_uri, input_control_param_t::val, var_GetNonEmptyString(), var_InheritBool(), var_SetBool(), VLC_EGENERIC, VLC_ENOMEM, vlc_renderer_item_sout(), VLC_SUCCESS, VLC_TICK_FROM_MS, VLC_TICK_INVALID, and vlc_tick_now().
Referenced by Preparse(), 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_Control(), demux_Demux(), DEMUX_GET_TIME, demux_TestAndClearFlags(), ERROR_S, es_out_Eos(), input_thread_private_t::i_slave, input_thread_private_t::i_stop, input_ChangeState(), input_priv(), INPUT_UPDATE_TITLE_LIST, input_thread_private_t::master, msg_Dbg, input_source_t::p_demux, input_thread_private_t::p_es_out, SlaveDemux(), UpdateGenericFromDemux(), UpdateTitleListfromDemux(), UpdateTitleSeekpointFromDemux(), VLC_DEMUXER_EGENERIC, VLC_DEMUXER_EOF, VLC_DEMUXER_SUCCESS, and VLC_TICK_INVALID.
Referenced by MainLoop().
|
static |
Update timing infos and statistics.
References demux_Control(), DEMUX_GET_LENGTH, DEMUX_GET_NORMAL_TIME, DEMUX_GET_POSITION, DEMUX_GET_TIME, es_out_SetTimes(), input_priv(), input_SendEventStatistics(), input_stats_Compute(), input_item_t::lock, input_thread_private_t::master, input_thread_private_t::normal_time, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_item, input_item_t::p_stats, input_thread_private_t::stats, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_TICK_INVALID.
Referenced by MainLoop().
|
static |
References vlc_value_t::i_int, input_source_t::i_seekpoint_offset, input_source_t::i_seekpoint_start, input_thread_private_t::i_start, input_source_t::i_title, input_source_t::i_title_offset, input_source_t::i_title_start, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_TITLE, input_ControlPushHelper(), input_priv(), input_SetPosition(), input_SetTime(), input_thread_private_t::master, msg_Dbg, var_GetInteger(), var_SetInteger(), VLC_EGENERIC, and VLC_SUCCESS.
Referenced by MainLoop().
|
static |
References MRLSeekPoint().
Referenced by InputDemuxNew(), and InputStreamHandleAnchor().
|
static |
Referenced by MRLSections().
|
static |
References demux_Control(), DEMUX_IS_PLAYLIST, End(), Init(), input_thread_private_t::input, input_item_ShouldPreparseSubItems(), input_SendEventDead(), input_thread_private_t::interrupt, MainLoop(), input_thread_private_t::master, input_source_t::p_demux, input_thread_private_t::p_item, and vlc_interrupt_set().
Referenced by input_Start().
|
static |
References input_source_t::f_fps, input_priv(), input_thread_private_t::master, and input_thread_private_t::slave_subs_rate.
Referenced by Control(), and SetSubtitlesOptions().
|
static |
References input_thread_private_t::b_can_pace_control, input_thread_private_t::b_out_pace_control, End(), Init(), input_thread_private_t::input, input_SendEventDead(), input_thread_private_t::interrupt, MainLoop(), input_thread_private_t::thread, vlc_interrupt_set(), vlc_set_priority(), and VLC_THREAD_PRIORITY_LOW.
Referenced by input_Start().
|
static |
References input_source_t::f_fps, input_priv(), input_thread_private_t::master, RequestSubRate(), var_InheritFloat(), and var_SetFloat().
Referenced by Init().
|
static |
References input_item_slave::i_priority.
Referenced by LoadSlaves().
|
static |
References input_source_t::b_can_rate_control, input_source_t::b_eof, input_source_t::b_slave_sub, demux_Control(), demux_Demux(), DEMUX_GET_TIME, DEMUX_SET_NEXT_DEMUX_TIME, DEMUX_SET_RATE, es_out_Control(), ES_OUT_RESET_PCR, input_thread_private_t::i_slave, input_priv(), msg_Dbg, msg_Err, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::slave, input_thread_private_t::slave_subs_rate, and input_source_t::sub_rate.
Referenced by MainLoopDemux().
|
static |
Referenced by LoadSlaves().
|
static |
References input_source_t::b_eof, demux_Control(), DEMUX_GET_TIME, DEMUX_SET_TIME, input_thread_private_t::i_slave, input_priv(), msg_Err, input_source_t::p_demux, and input_thread_private_t::slave.
Referenced by Control().
|
static |
References CLOCK_FREQ, vlc_value_t::i_int, input_source_t::i_seekpoint_offset, input_source_t::i_seekpoint_start, input_thread_private_t::i_start, input_thread_private_t::i_stop, input_source_t::i_title, input_source_t::i_title_offset, input_source_t::i_title_start, INPUT_CONTROL_SET_SEEKPOINT, INPUT_CONTROL_SET_TITLE, input_ControlPushHelper(), input_priv(), input_SetTime(), input_thread_private_t::master, msg_Dbg, msg_Warn, SEC_FROM_VLC_TICK, and var_GetFloat().
Referenced by Init().
|
static |
|
static |
|
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_priv(), input_thread_private_t::master, input_source_t::p_demux, TAB_INIT, and input_source_t::title.
Referenced by MainLoopDemux().
|
static |
|
static |
References demux_GetSeekpoint(), demux_GetTitle(), demux_TestAndClearFlags(), input_priv(), input_SendEventSeekpoint(), input_SendEventTitle(), INPUT_UPDATE_SEEKPOINT, INPUT_UPDATE_TITLE, input_thread_private_t::master, input_source_t::p_demux, and UpdateTitleSeekpoint().
Referenced by MainLoopDemux().
|
static |
References aout_Release(), input_priv(), input_resource_HoldAout(), input_resource_HoldVouts(), input_thread_private_t::p_resource, var_Change(), var_SetAddress(), input_thread_private_t::viewpoint, VLC_VAR_SETVALUE, vlc_viewpoint_clip(), and vout_Release().
Referenced by Control(), and ControlNav().