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) |
Functions | |
static void * | Run (void *) |
static void * | Preparse (void *) |
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. | |
static int | ControlPop (input_thread_t *, int *, input_control_param_t *, vlc_tick_t i_deadline, bool b_postpone_seek) |
static int | ControlPopEarly (input_thread_t *input, int *type, input_control_param_t *param) |
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 (const char *psz_mrl) |
static int | InputSourceInit (input_source_t *in, input_thread_t *p_input, const char *psz_mrl, 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 *mrl) |
static void | AppendAttachment (input_thread_t *p_input, int i_new, input_attachment_t **pp_new) |
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) |
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) |
Request a running input thread to stop and die. | |
void | input_Close (input_thread_t *p_input) |
Close an input. | |
void | input_SetTime (input_thread_t *p_input, vlc_tick_t i_time, bool b_fast) |
void | input_SetPosition (input_thread_t *p_input, double 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. | |
input_thread_t * | input_Create (vlc_object_t *p_parent, input_thread_events_cb events_cb, void *events_data, input_item_t *p_item, enum input_type type, input_resource_t *p_resource, vlc_renderer_item_t *p_renderer) |
Create a new input_thread_t. | |
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. | |
static int | MainLoopTryRepeat (input_thread_t *p_input) |
static vlc_tick_t | InputSourceGetLength (input_source_t *source, input_item_t *item) |
static void | InputSourceStatistics (input_source_t *source, input_item_t *item, es_out_t *out) |
static void | MainLoopStatistics (input_thread_t *p_input) |
Update timing infos and statistics. | |
static int | InitSout (input_thread_t *p_input) |
static void | InitProperties (input_thread_t *input) |
static void | InitTitle (input_thread_t *p_input, bool had_titles) |
static void | FillFileStatsIfAny (input_thread_t *p_input) |
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 enum slave_type | DeduceSlaveType (input_thread_t *p_input, const char *psz_uri) |
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 bool | ControlTypeIsEarly (int type) |
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 | ControlUpdateRenderer (input_thread_t *p_input, bool b_enable) |
static void | ControlInsertDemuxFilter (input_thread_t *p_input, const char *psz_demux_chain) |
void | input_SetProgramId (input_thread_t *input, int group_id) |
Set the program id. | |
int | input_SetEsCatDelay (input_thread_t *input, enum es_format_category_e cat, vlc_tick_t delay) |
Set the default delay applied to the given category. | |
void | input_SetEsCatIds (input_thread_t *input, enum es_format_category_e cat, const char *str_ids) |
Set the list of string ids to enable for a category. | |
static void | ControlSetEsList (input_thread_t *input, enum es_format_category_e cat, vlc_es_id_t **ids) |
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, es_out_t *p_es_out, 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 *uri, 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) |
bool | input_CanPaceControl (input_thread_t *input) |
#define SLAVE_ADD_CANFAIL (1<<1) |
#define SLAVE_ADD_FORCED (1<<0) |
#define SLAVE_ADD_NOFLAG 0 |
#define SLAVE_ADD_SET_TIME (1<<2) |
|
static |
References input_thread_private_t::attachment, input_thread_private_t::i_attachment, INPUT_EVENT_ATTACHMENTS, input_priv(), input_SendEvent(), likely, and vlc_input_attachment_Release().
Referenced by InitProperties(), InputSourceMeta(), and InputUpdateMeta().
|
static |
References AUDIO_ES, input_source_t::b_can_pace_control, input_source_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, input_control_param_t::cat_ids, ControlInsertDemuxFilter(), ControlNav(), ControlPause(), ControlRelease(), ControlSetEsList(), ControlUnpause(), ControlUpdateRenderer(), input_control_param_t::delay, demux_Control(), demux_FilterDisable(), demux_FilterEnable(), demux_GetSeekpoint(), demux_GetTitle(), DEMUX_SET_ES, 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::dir_path, input_control_param_t::enabled, input_control_param_t::es_delay, es_out_Control(), ES_OUT_RESET_PCR, es_out_RestartEs(), ES_OUT_SET_GROUP, es_out_SetDelay(), es_out_SetEs(), es_out_SetEsCatIds(), es_out_SetEsDelay(), es_out_SetFrameNext(), es_out_SetRate(), es_out_SetRecordState(), es_out_SetVbiPage(), es_out_SetVbiTransparency(), es_out_StartAllEs(), es_out_StopAllEs(), es_out_UnsetEs(), 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, i_type, input_control_param_t::i_val, input_control_param_t::id, input_control_param_t::ids, INPUT_CONTROL_ADD_SLAVE, 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_SET_CATEGORY_DELAY, INPUT_CONTROL_SET_ES, INPUT_CONTROL_SET_ES_CAT_IDS, 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(), InputSourceGetLength(), 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, input_control_param_t::record_state, 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::str_ids, 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, VIDEO_ES, input_control_param_t::viewpoint, input_thread_private_t::viewpoint, input_thread_private_t::viewpoint_changed, ViewpointApply(), vlc_es_id_GetInputId(), vlc_es_id_GetSource(), 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 Init(), and MainLoop().
|
static |
References input_thread_private_t::control, vlc_viewpoint_t::fov, input_thread_private_t::i_control, input_control_t::i_type, 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_CONTROL_SET_VIEWPOINT, INPUT_CONTROL_UPDATE_VIEWPOINT, input_priv(), input_control_t::param, vlc_viewpoint_t::pitch, vlc_viewpoint_t::roll, input_control_param_t::viewpoint, and vlc_viewpoint_t::yaw.
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 i_type, 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 demux_Control(), DEMUX_NAV_ACTIVATE, i_type, INPUT_CONTROL_NAV_ACTIVATE, INPUT_EVENT_NAV_FAILED, input_priv(), input_SendEvent(), input_thread_private_t::master, and input_source_t::p_demux.
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 |
|
static |
References input_control_param_t::cat_ids, input_control_param_t::dir_path, i_type, 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_CAT_IDS, INPUT_CONTROL_SET_ES_LIST, INPUT_CONTROL_SET_RECORD_STATE, 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::record_state, input_control_param_t::str_ids, 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 count, demux_Control(), DEMUX_SET_ES, DEMUX_SET_ES_LIST, es_out_SetEsList(), input_thread_private_t::i_slave, input_priv(), input_thread_private_t::master, input_source_t::p_demux, input_thread_private_t::p_es_out_display, input_thread_private_t::slave, vlc_alloc(), vlc_es_id_GetInputId(), vlc_es_id_GetSource(), and VLC_SUCCESS.
Referenced by Control().
|
static |
References INPUT_CONTROL_SET_CATEGORY_DELAY, INPUT_CONTROL_SET_ES_CAT_IDS, and INPUT_CONTROL_SET_PROGRAM.
Referenced by ControlPopEarly().
|
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 InitSout(), input_priv(), input_resource_PutSout(), msg_Err, input_thread_private_t::p_sout, and VLC_SUCCESS.
Referenced by Control().
|
static |
References i_type, input_item_slave_GetType(), msg_Dbg, vlc_url_t::psz_path, SLAVE_TYPE_GENERIC, VLC_SUCCESS, vlc_UrlClean(), and vlc_UrlParse().
Referenced by GetVarSlaves().
|
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_source_Release(), input_stats_Destroy(), input_thread_private_t::master, 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_OBJECT, vlc_object_delete, and vlc_renderer_item_release().
Referenced by input_Close(), and input_Create().
|
static |
References input_thread_private_t::attachment, 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_PutSout(), input_resource_Release(), input_resource_SetInput(), input_source_Release(), 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_Release(), vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_TICK_INVALID.
Referenced by Preparse(), and Run().
|
static |
References input_item_AddStat, input_priv(), input_thread_private_t::master, input_source_t::p_demux, input_thread_private_t::p_item, stream_t::s, vlc_stream_GetMTime(), vlc_stream_GetSize(), and VLC_SUCCESS.
Referenced by Init().
|
static |
References DeduceSlaveType(), i_type, input_item_slave_New(), SLAVE_PRIORITY_USER, strdup(), TAB_APPEND, unlikely, var_GetNonEmptyString(), and vlc_path2uri().
Referenced by LoadSlaves().
|
static |
References input_thread_private_t::b_out_pace_control, Control(), ControlPopEarly(), ERROR_S, es_out_ControlSetMeta, es_out_Delete(), ES_OUT_MODE_END, es_out_SetMode(), vlc_value_t::f_float, FillFileStatsIfAny(), input_thread_private_t::i_slave, InitPrograms(), InitProperties(), InitSout(), InitTitle(), input_ChangeState(), INPUT_CONTROL_SET_RATE, input_ControlPushHelper(), input_EsOutTimeshiftNew(), input_item_IsPreparsed(), input_priv(), input_resource_PutSout(), input_resource_Release(), input_resource_SetInput(), input_SendEventCache(), INPUT_TYPE_PREPARSING, InputMetaUser(), InputSourceDestroy(), InputSourceInit(), InputSourceMeta(), InputSourceStatistics(), LoadSlaves(), input_thread_private_t::master, msg_Dbg, OPENING_S, 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, sout_StreamIsSynchronous(), StartTitle(), input_thread_private_t::type, 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 AppendAttachment(), input_source_t::b_can_pace_control, input_source_t::b_can_pause, input_source_t::b_can_rate_control, input_source_t::b_rescale_ts, DEMUX_CAN_SEEK, demux_Control(), DEMUX_GET_ATTACHMENTS, DEMUX_GET_TYPE, input_item_t::i_type, input_priv(), input_SendEventCapabilities(), input_item_t::lock, input_thread_private_t::master, input_source_t::p_demux, input_thread_private_t::p_item, VLC_INPUT_CAPABILITIES_CHANGE_RATE, VLC_INPUT_CAPABILITIES_PAUSEABLE, VLC_INPUT_CAPABILITIES_REWINDABLE, VLC_INPUT_CAPABILITIES_SEEKABLE, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by Init().
|
static |
References asprintf(), ERROR_S, input_ChangeState(), input_priv(), input_resource_RequestSout(), input_resource_TerminateSout(), INPUT_TYPE_PREPARSING, msg_Err, 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::psz_uri, input_thread_private_t::type, var_GetNonEmptyString(), var_SetBool(), VLC_EGENERIC, VLC_ENOMEM, vlc_renderer_item_sout(), VLC_SUCCESS, and VLC_TICK_INVALID.
Referenced by ControlUpdateRenderer(), and Init().
|
static |
References input_thread_private_t::i_seekpoint_offset, input_source_t::i_seekpoint_offset, input_source_t::i_title, input_thread_private_t::i_title_offset, input_source_t::i_title_offset, input_priv(), input_SendEventTitle(), INPUT_TYPE_PREPARSING, input_item_t::lock, input_thread_private_t::master, input_thread_private_t::p_item, input_source_t::title, input_thread_private_t::type, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by Init(), and UpdateTitleListfromDemux().
bool input_CanPaceControl | ( | input_thread_t * | input | ) |
|
static |
References END_S, ERROR_S, input_thread_private_t::i_state, input_priv(), input_SendEventCapabilities(), and input_SendEventState().
Referenced by ControlPause(), ControlUnpause(), End(), Init(), InitSout(), 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(), RunnableRun(), 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_RequestVout(), input_SetEsCatDelay(), input_SetEsCatIds(), input_SetPosition(), input_SetTime(), vlc_player_input_SeekByPos(), vlc_player_input_SeekByTime(), vlc_player_input_UpdateViewpoint(), vlc_player_SelectEsIdList(), vlc_player_SelectNextChapter(), vlc_player_SelectNextTitle(), vlc_player_SelectPrevChapter(), vlc_player_SelectPrevTitle(), vlc_player_SelectTeletextPage(), vlc_player_SetEsIdDelay(), vlc_player_SetRecordingEnabled(), and vlc_player_SetTeletextTransparency().
input_thread_t * input_Create | ( | vlc_object_t * | p_parent, |
input_thread_events_cb | events_cb, | ||
void * | events_data, | ||
input_item_t * | p_item, | ||
enum input_type | type, | ||
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 |
events_cb | the events virtual table |
events_data | an opaque given to the events callbacks (events_cb ) |
p_item | an input item |
type | the type of task the input is created for (thumbnailing, playback, ...) |
p_resource | an optional input ressource |
p_renderer | an optional renderer object to render the input to |
References input_thread_private_t::attachment, 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_recording, Destroy(), 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_jitter_max, 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_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_TYPE_PREPARSING, INPUT_TYPE_THUMBNAILING, InputSourceNew(), 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_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, input_thread_private_t::type, unlikely, var_InheritAddress(), var_InheritBool(), var_InheritInteger(), 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_FROM_MS, vlc_viewpoint_init(), and input_thread_private_t::wait_control.
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, name, input_thread_private_t::p_item, input_attachment_t::psz_name, vlc_input_attachment_Hold(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by accessNewAttachment(), 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_Hold(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by decoder_get_attachments(), 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(), EsOutMeta(), EsOutSetRecord(), input_item_parser_InputEvent(), input_thread_Events(), stream_AccessNew(), vlc_player_destructor_Thread(), vlc_player_input_RestoreMlStates(), and vlc_player_UpdateMLStates().
int input_SetEsCatDelay | ( | input_thread_t * | input, |
enum es_format_category_e | cat, | ||
vlc_tick_t | delay | ||
) |
Set the default delay applied to the given category.
Set the default delay for the given es_format_category_e
synchronously if the input is not running yet, otherwise push a control to signal to the input which delay should be updated.
input | Any input to change the delay for. |
cat | The ES category to apply the delay to. |
delay | The delay to apply to the category, a positive delay shifting the track to the future. |
References input_control_param_t::cat_delay, INPUT_CONTROL_SET_CATEGORY_DELAY, and input_ControlPush().
Referenced by vlc_player_input_New(), and vlc_player_SetCategoryDelay().
void input_SetEsCatIds | ( | input_thread_t * | input, |
enum es_format_category_e | cat, | ||
const char * | str_ids | ||
) |
Set the list of string ids to enable for a category.
cf. ES_OUT_SET_ES_CAT_IDS This function can be called before start or while started. This function is not thread-safe, the caller should handle the locking.
References input_control_param_t::cat_ids, INPUT_CONTROL_SET_ES_CAT_IDS, input_ControlPush(), and strdup().
Referenced by vlc_player_input_SelectTracksByStringIds().
void input_SetPosition | ( | input_thread_t * | p_input, |
double | f_position, | ||
bool | b_fast | ||
) |
void input_SetProgramId | ( | input_thread_t * | input, |
int | group_id | ||
) |
Set the program id.
cf. ES_OUT_SET_GROUP This function can be called before start or while started. This function is not thread-safe, the caller should handle the locking.
References INPUT_CONTROL_SET_PROGRAM, and input_ControlPushHelper().
Referenced by vlc_player_SelectProgram().
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(), RunnableRun(), and StartTitle().
|
static |
References demux_Control(), DEMUX_GET_TIME, DEMUX_SET_TIME, input_thread_private_t::i_slave, i_type, input_priv(), input_source_Release(), InputSourceDestroy(), InputSourceInit(), InputSourceNew(), InputUpdateMeta(), input_thread_private_t::master, msg_Dbg, msg_Err, msg_Warn, input_source_t::p_demux, input_thread_private_t::slave, SLAVE_ADD_CANFAIL, SLAVE_ADD_FORCED, SLAVE_ADD_SET_TIME, SLAVE_TYPE_GENERIC, SLAVE_TYPE_SPU, TAB_APPEND, vlc_assert_unreachable, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by Control(), and LoadSlaves().
|
static |
References p.
Referenced by InputSourceInit().
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.
p_input | the input thread to start |
References input_priv(), INPUT_TYPE_PREPARSING, input_thread_private_t::is_running, msg_Err, Preparse(), Run(), input_thread_private_t::thread, input_thread_private_t::type, vlc_clone(), VLC_EGENERIC, and VLC_SUCCESS.
Referenced by input_item_Parse(), RunnableRun(), 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(), RunnableRun(), 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(), InputSourceInit(), MainLoop(), and MainLoopDemux().
|
static |
References msg_Dbg, strdup(), vlc_path2uri(), and vlc_stat().
Referenced by LoadSlaves().
|
static |
References vlc_stream_operations::block, 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_TYPE_PREPARSING, InputStreamHandleAnchor(), MRLSections(), stream_t::ops, stream_t::pf_block, stream_t::pf_read, stream_t::pf_readdir, vlc_stream_operations::read, vlc_stream_operations::readdir, vlc_stream_operations::stream, stream_AccessNew(), stream_FilterAutoNew(), stream_FilterChainNew(), input_thread_private_t::type, var_InheritBool(), var_InheritString(), VLC_OBJECT, and vlc_stream_Delete().
Referenced by InputSourceInit().
|
static |
References ARRAY_SIZE, InputGetExtraFilesPattern(), and TAB_INIT.
Referenced by InputSourceInit().
|
static |
References asprintf(), msg_Dbg, TAB_APPEND, TAB_INIT, unlikely, vlc_stat(), and vlc_uri2path().
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(), es_out_Delete(), input_source_t::i_title, input_source_t::p_demux, input_source_t::p_slave_es_out, TAB_CLEAN, input_source_t::title, and vlc_input_title_Delete().
Referenced by End(), Init(), and input_SlaveSourceAdd().
|
static |
References demux_Control(), DEMUX_GET_LENGTH, input_item_GetDuration(), and input_source_t::p_demux.
Referenced by Control(), and InputSourceStatistics().
|
static |
References _, 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, vlc_stream_operations::demux, DEMUX_CAN_CONTROL_PACE, DEMUX_CAN_CONTROL_RATE, DEMUX_CAN_PAUSE, DEMUX_CAN_RECORD, demux_Control(), demux_FilterChainNew(), DEMUX_GET_FPS, DEMUX_GET_PTS_DELAY, DEMUX_GET_TITLE_INFO, es_out_Delete(), 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_EsOutSourceNew(), input_priv(), INPUT_PTS_DELAY_MAX, input_SplitMRL(), input_Stopped(), INPUT_TYPE_PREPARSING, InputDemuxNew(), InputGetExtraFiles(), likely, list, input_thread_private_t::master, mrl_AppendAnchorFragment(), msg_Dbg, msg_Err, stream_t::ops, input_source_t::p_demux, input_thread_private_t::p_es_out, input_thread_private_t::p_renderer, input_source_t::p_slave_es_out, stream_t::pf_demux, strcasecmp(), strdup(), TAB_CLEAN, TAB_INIT, input_source_t::title, var_Create(), var_GetBool(), var_GetInteger(), var_GetNonEmptyString(), var_InheritString(), var_SetString(), vlc_dialog_display_error, VLC_EGENERIC, VLC_ENOMEM, vlc_renderer_item_demux_filter(), VLC_SUCCESS, and VLC_VAR_STRING.
Referenced by Init(), 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 |
|
static |
References demux_Control(), DEMUX_GET_NORMAL_TIME, DEMUX_GET_POSITION, DEMUX_GET_TIME, es_out_SetTimes(), InputSourceGetLength(), input_source_t::p_demux, VLC_SUCCESS, VLC_TICK_0, and VLC_TICK_INVALID.
Referenced by Init(), and MainLoopStatistics().
|
static |
References mrl_info::extra, vlc_array_t::i_count, input_source_t::i_seekpoint_end, input_source_t::i_seekpoint_start, input_source_t::i_title_end, input_source_t::i_title_start, mrl_FragmentSplit(), mrl_info_Clean(), mrl_info_Init(), MRLSections(), msg_Dbg, msg_Err, vlc_array_t::pp_elems, stream_extractor_AttachParsed(), VLC_EGENERIC, vlc_stream_directory_Attach(), VLC_SUCCESS, and mrl_info::volumes.
Referenced by InputDemuxNew().
|
static |
References AppendAttachment(), input_thread_private_t::attachment, demux_Control(), DEMUX_GET_ATTACHMENTS, DEMUX_GET_META, es_out_ControlSetMeta, input_thread_private_t::i_attachment, input_priv(), input_item_t::lock, input_thread_private_t::p_item, unlikely, vlc_input_attachment_Release(), 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_MATCH_ALL, SLAVE_PRIORITY_USER, SLAVE_TYPE_GENERIC, SLAVE_TYPE_SPU, SlaveCompare(), SlaveExists(), subtitles_Detect(), TAB_APPEND, TAB_CLEAN, TAB_INIT, var_Create(), var_Destroy(), var_GetBool(), var_GetNonEmptyString(), var_SetString(), vlc_input_attachment_New(), vlc_input_attachment_Release(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and VLC_VAR_STRING.
Referenced by Init().
|
static |
MainLoop The main input loop.
References input_source_t::b_eof, Control(), ControlIsSeekRequest(), ControlPause(), ControlPop(), vlc_stream_operations::demux, 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_CONTROL_SET_STATE, INPUT_IDLE_SLEEP, input_priv(), input_Stopped(), MainLoopDemux(), MainLoopStatistics(), MainLoopTryRepeat(), input_thread_private_t::master, msg_Dbg, stream_t::ops, input_source_t::p_demux, PAUSE_S, stream_t::pf_demux, stream_t::pf_readdir, input_control_param_t::val, var_InheritBool(), VLC_TICK_FROM_MS, 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_Stopped(), 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 input_thread_private_t::i_slave, input_priv(), input_SendEventStatistics(), input_stats_Compute(), InputSourceStatistics(), input_item_t::lock, input_thread_private_t::master, input_thread_private_t::p_es_out, input_thread_private_t::p_item, input_source_t::p_slave_es_out, input_item_t::p_stats, input_thread_private_t::slave, input_thread_private_t::stats, vlc_mutex_lock(), and vlc_mutex_unlock().
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(), and p.
Referenced by InputDemuxNew(), and InputStreamHandleAnchor().
|
static |
Referenced by MRLSections().
|
static |
References 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, stream_t::pf_readdir, vlc_interrupt_set(), and vlc_thread_set_name().
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 End(), Init(), input_thread_private_t::input, input_SendEventDead(), input_thread_private_t::interrupt, MainLoop(), vlc_interrupt_set(), and vlc_thread_set_name().
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_CLEAN, TAB_INIT, input_source_t::title, and vlc_input_title_Delete().
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 |