VLC 4.0.0-dev
Loading...
Searching...
No Matches
input_internal.h File Reference
Include dependency graph for input_internal.h:

Go to the source code of this file.

Data Structures

struct  input_thread_t
 Main structure representing an input thread. More...
 
struct  vlc_input_event_state
 
struct  vlc_input_event_times
 
struct  vlc_input_event_output_clock
 
struct  vlc_input_event_title
 
struct  vlc_input_event_chapter
 
struct  vlc_input_event_program
 
struct  vlc_input_event_es
 
struct  vlc_input_event_signal
 
struct  vlc_input_event_vout
 
struct  vlc_input_event_attachments
 
struct  vlc_input_event_mouse
 
struct  vlc_input_event
 
struct  vlc_input_thread_callbacks
 
struct  vlc_input_thread_cfg
 
union  input_control_param_t
 
struct  input_control_t
 
struct  input_thread_private_t
 Private input fields. More...
 
struct  input_rate_t
 
struct  input_stats
 

Macros

#define VLC_INPUT_CAPABILITIES_SEEKABLE   (1<<0)
 
#define VLC_INPUT_CAPABILITIES_PAUSEABLE   (1<<1)
 
#define VLC_INPUT_CAPABILITIES_CHANGE_RATE   (1<<2)
 
#define VLC_INPUT_CAPABILITIES_REWINDABLE   (1<<3)
 
#define input_Create(a, b, c)   input_Create(VLC_OBJECT(a),b,c)
 
#define INPUT_CONTROL_FIFO_SIZE   100
 
#define INPUT_PTS_DELAY_MAX   VLC_TICK_FROM_SEC(60)
 

Typedefs

typedef struct input_thread_t input_thread_t
 Main structure representing an input thread.
 
typedef enum input_state_e input_state_e
 Input state.
 
typedef enum input_event_type_e input_event_type_e
 Input events.
 
typedef struct input_thread_private_t input_thread_private_t
 Private input fields.
 
typedef struct input_rate_t input_rate_t
 

Enumerations

enum  input_type { INPUT_TYPE_PLAYBACK , INPUT_TYPE_PREPARSING , INPUT_TYPE_THUMBNAILING }
 
enum  input_state_e {
  INIT_S = 0 , OPENING_S , PLAYING_S , PAUSE_S ,
  END_S , ERROR_S
}
 Input state. More...
 
enum  input_event_type_e {
  INPUT_EVENT_STATE , INPUT_EVENT_DEAD , INPUT_EVENT_RATE , INPUT_EVENT_CAPABILITIES ,
  INPUT_EVENT_TIMES , INPUT_EVENT_OUTPUT_CLOCK , INPUT_EVENT_TITLE , INPUT_EVENT_CHAPTER ,
  INPUT_EVENT_PROGRAM , INPUT_EVENT_ES , INPUT_EVENT_RECORD , INPUT_EVENT_ITEM_META ,
  INPUT_EVENT_ITEM_INFO , INPUT_EVENT_ITEM_EPG , INPUT_EVENT_STATISTICS , INPUT_EVENT_SIGNAL ,
  INPUT_EVENT_BOOKMARK , INPUT_EVENT_CACHE , INPUT_EVENT_VOUT , INPUT_EVENT_SUBITEMS ,
  INPUT_EVENT_VBI_PAGE , INPUT_EVENT_VBI_TRANSPARENCY , INPUT_EVENT_SUBS_FPS , INPUT_EVENT_THUMBNAIL_READY ,
  INPUT_EVENT_ATTACHMENTS , INPUT_EVENT_NAV_FAILED , INPUT_EVENT_MOUSE
}
 Input events. More...
 
enum  input_control_e {
  INPUT_CONTROL_SET_STATE , INPUT_CONTROL_SET_RATE , INPUT_CONTROL_SET_POSITION , INPUT_CONTROL_SET_TIME ,
  INPUT_CONTROL_SET_PROGRAM , INPUT_CONTROL_SET_TITLE , INPUT_CONTROL_SET_TITLE_NEXT , INPUT_CONTROL_SET_TITLE_PREV ,
  INPUT_CONTROL_SET_SEEKPOINT , INPUT_CONTROL_SET_SEEKPOINT_NEXT , INPUT_CONTROL_SET_SEEKPOINT_PREV , INPUT_CONTROL_SET_BOOKMARK ,
  INPUT_CONTROL_NAV_ACTIVATE , INPUT_CONTROL_NAV_UP , INPUT_CONTROL_NAV_DOWN , INPUT_CONTROL_NAV_LEFT ,
  INPUT_CONTROL_NAV_RIGHT , INPUT_CONTROL_NAV_POPUP , INPUT_CONTROL_NAV_MENU , INPUT_CONTROL_SET_ES ,
  INPUT_CONTROL_SET_ES_LIST , INPUT_CONTROL_UNSET_ES , INPUT_CONTROL_RESTART_ES , INPUT_CONTROL_SET_ES_CAT_IDS ,
  INPUT_CONTROL_SET_VIEWPOINT , INPUT_CONTROL_SET_INITIAL_VIEWPOINT , INPUT_CONTROL_UPDATE_VIEWPOINT , INPUT_CONTROL_SET_CATEGORY_DELAY ,
  INPUT_CONTROL_SET_ES_DELAY , INPUT_CONTROL_ADD_SLAVE , INPUT_CONTROL_SET_SUBS_FPS , INPUT_CONTROL_SET_RECORD_STATE ,
  INPUT_CONTROL_SET_FRAME_NEXT , INPUT_CONTROL_SET_RENDERER , INPUT_CONTROL_SET_VBI_PAGE , INPUT_CONTROL_SET_VBI_TRANSPARENCY
}
 

Functions

input_thread_tinput_Create (vlc_object_t *p_parent, input_item_t *item, const struct vlc_input_thread_cfg *cfg)
 Create a new input_thread_t.
 
int input_Start (input_thread_t *)
 Start a input_thread_t created by input_Create.
 
void input_Stop (input_thread_t *)
 Request a running input thread to stop and die.
 
void input_Close (input_thread_t *)
 Close an input.
 
void input_SetTime (input_thread_t *, vlc_tick_t i_time, bool b_fast)
 
void input_SetPosition (input_thread_t *, double f_position, bool b_fast)
 
void input_SetEsIdDelay (input_thread_t *input, vlc_es_id_t *es_id, vlc_tick_t delay)
 Set the delay of an ES identifier.
 
input_item_tinput_GetItem (input_thread_t *)
 Get the input item for an input thread.
 
static input_thread_private_tinput_priv (input_thread_t *input)
 
int input_ControlPush (input_thread_t *, int, const input_control_param_t *)
 
static int input_ControlPushHelper (input_thread_t *p_input, int i_type, vlc_value_t *val)
 
static int input_ControlPushEsHelper (input_thread_t *p_input, int i_type, vlc_es_id_t *id)
 
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 *, enum es_format_category_e cat, const char *str_ids)
 Set the list of string ids to enable for a category.
 
bool input_Stopped (input_thread_t *)
 
int input_GetAttachments (input_thread_t *input, input_attachment_t ***attachments)
 
input_attachment_tinput_GetAttachment (input_thread_t *input, const char *name)
 
bool input_CanPaceControl (input_thread_t *input)
 
vlc_tick_t input_GetItemDuration (input_thread_t *input, vlc_tick_t duration)
 Calculates the duration of the item in an input thread.
 
void input_ExtractAttachmentAndCacheArt (input_thread_t *, const char *name)
 
void input_ConfigVarInit (input_thread_t *)
 
int subtitles_Detect (input_thread_t *, char *, const char *, input_item_slave_t ***, int *)
 Detect subtitle files.
 
int subtitles_Filter (const char *)
 
void vlc_audio_replay_gain_MergeFromMeta (audio_replay_gain_t *p_dst, const vlc_meta_t *p_meta)
 
struct input_statsinput_stats_Create (void)
 
void input_stats_Destroy (struct input_stats *)
 
void input_rate_Add (input_rate_t *, uintmax_t)
 Update a counter element with new values.
 
void input_stats_Compute (struct input_stats *, input_stats_t *)
 

Macro Definition Documentation

◆ INPUT_CONTROL_FIFO_SIZE

#define INPUT_CONTROL_FIFO_SIZE   100

◆ input_Create

#define input_Create (   a,
  b,
 
)    input_Create(VLC_OBJECT(a),b,c)

◆ INPUT_PTS_DELAY_MAX

#define INPUT_PTS_DELAY_MAX   VLC_TICK_FROM_SEC(60)

◆ VLC_INPUT_CAPABILITIES_CHANGE_RATE

#define VLC_INPUT_CAPABILITIES_CHANGE_RATE   (1<<2)

◆ VLC_INPUT_CAPABILITIES_PAUSEABLE

#define VLC_INPUT_CAPABILITIES_PAUSEABLE   (1<<1)

◆ VLC_INPUT_CAPABILITIES_REWINDABLE

#define VLC_INPUT_CAPABILITIES_REWINDABLE   (1<<3)

◆ VLC_INPUT_CAPABILITIES_SEEKABLE

#define VLC_INPUT_CAPABILITIES_SEEKABLE   (1<<0)

Typedef Documentation

◆ input_event_type_e

Input events.

You can catch input event by adding a callback on the variable "intf-event". This variable is an integer that will hold a input_event_type_e value.

◆ input_rate_t

typedef struct input_rate_t input_rate_t

◆ input_state_e

Input state.

This enum is used by the variable "state"

◆ input_thread_private_t

Private input fields.

◆ input_thread_t

Main structure representing an input thread.

This structure is mostly private. The only public fields are read-only and constant.

Enumeration Type Documentation

◆ input_control_e

Enumerator
INPUT_CONTROL_SET_STATE 
INPUT_CONTROL_SET_RATE 
INPUT_CONTROL_SET_POSITION 
INPUT_CONTROL_SET_TIME 
INPUT_CONTROL_SET_PROGRAM 
INPUT_CONTROL_SET_TITLE 
INPUT_CONTROL_SET_TITLE_NEXT 
INPUT_CONTROL_SET_TITLE_PREV 
INPUT_CONTROL_SET_SEEKPOINT 
INPUT_CONTROL_SET_SEEKPOINT_NEXT 
INPUT_CONTROL_SET_SEEKPOINT_PREV 
INPUT_CONTROL_SET_BOOKMARK 
INPUT_CONTROL_NAV_ACTIVATE 
INPUT_CONTROL_NAV_UP 
INPUT_CONTROL_NAV_DOWN 
INPUT_CONTROL_NAV_LEFT 
INPUT_CONTROL_NAV_RIGHT 
INPUT_CONTROL_NAV_POPUP 
INPUT_CONTROL_NAV_MENU 
INPUT_CONTROL_SET_ES 
INPUT_CONTROL_SET_ES_LIST 
INPUT_CONTROL_UNSET_ES 
INPUT_CONTROL_RESTART_ES 
INPUT_CONTROL_SET_ES_CAT_IDS 
INPUT_CONTROL_SET_VIEWPOINT 
INPUT_CONTROL_SET_INITIAL_VIEWPOINT 
INPUT_CONTROL_UPDATE_VIEWPOINT 
INPUT_CONTROL_SET_CATEGORY_DELAY 
INPUT_CONTROL_SET_ES_DELAY 
INPUT_CONTROL_ADD_SLAVE 
INPUT_CONTROL_SET_SUBS_FPS 
INPUT_CONTROL_SET_RECORD_STATE 
INPUT_CONTROL_SET_FRAME_NEXT 
INPUT_CONTROL_SET_RENDERER 
INPUT_CONTROL_SET_VBI_PAGE 
INPUT_CONTROL_SET_VBI_TRANSPARENCY 

◆ input_event_type_e

Input events.

You can catch input event by adding a callback on the variable "intf-event". This variable is an integer that will hold a input_event_type_e value.

Enumerator
INPUT_EVENT_STATE 
INPUT_EVENT_DEAD 
INPUT_EVENT_RATE 
INPUT_EVENT_CAPABILITIES 
INPUT_EVENT_TIMES 
INPUT_EVENT_OUTPUT_CLOCK 
INPUT_EVENT_TITLE 
INPUT_EVENT_CHAPTER 
INPUT_EVENT_PROGRAM 
INPUT_EVENT_ES 
INPUT_EVENT_RECORD 
INPUT_EVENT_ITEM_META 
INPUT_EVENT_ITEM_INFO 
INPUT_EVENT_ITEM_EPG 
INPUT_EVENT_STATISTICS 
INPUT_EVENT_SIGNAL 
INPUT_EVENT_BOOKMARK 
INPUT_EVENT_CACHE 
INPUT_EVENT_VOUT 
INPUT_EVENT_SUBITEMS 
INPUT_EVENT_VBI_PAGE 
INPUT_EVENT_VBI_TRANSPARENCY 
INPUT_EVENT_SUBS_FPS 
INPUT_EVENT_THUMBNAIL_READY 
INPUT_EVENT_ATTACHMENTS 
INPUT_EVENT_NAV_FAILED 
INPUT_EVENT_MOUSE 

◆ input_state_e

Input state.

This enum is used by the variable "state"

Enumerator
INIT_S 
OPENING_S 
PLAYING_S 
PAUSE_S 
END_S 
ERROR_S 

◆ input_type

enum input_type
Enumerator
INPUT_TYPE_PLAYBACK 
INPUT_TYPE_PREPARSING 
INPUT_TYPE_THUMBNAILING 

Function Documentation

◆ input_CanPaceControl()

◆ input_Close()

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(), ThumbnailerRun(), and vlc_player_input_Delete().

◆ input_ConfigVarInit()

◆ input_ControlPush()

◆ input_ControlPushEsHelper()

static int input_ControlPushEsHelper ( input_thread_t p_input,
int  i_type,
vlc_es_id_t id 
)
inlinestatic

◆ input_ControlPushHelper()

◆ input_Create()

input_thread_t * input_Create ( vlc_object_t p_parent,
input_item_t item,
const struct vlc_input_thread_cfg cfg 
)

Create a new input_thread_t.

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

Parameters
p_parenta vlc_object
p_iteman input item
cfgpointer to a configuration struct, mandatory
Returns
a pointer to the spawned input thread

References input_thread_private_t::attachment, input_thread_private_t::b_low_delay, input_thread_private_t::b_out_pace_control, input_thread_private_t::b_recording, vlc_input_thread_cfg::cbs, input_thread_private_t::cbs, vlc_input_thread_cfg::cbs_data, input_thread_private_t::cbs_data, Destroy(), vlc_input_thread_cfg::hw_dec, input_thread_private_t::hw_dec, input_thread_private_t::i_attachment, input_thread_private_t::i_control, input_thread_private_t::i_jitter_max, 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_PLAYBACK, INPUT_TYPE_PREPARSING, INPUT_TYPE_THUMBNAILING, InputSourceNew(), vlc_input_thread_cfg::interact, 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, input_thread_private_t::preparse_subitems, vlc_input_thread_cfg::preparsing, psz_name, input_thread_private_t::rate, vlc_input_thread_cfg::renderer, vlc_input_thread_cfg::resource, input_thread_private_t::slave, input_thread_private_t::stats, vlc_input_thread_cfg::subitems, TAB_INIT, vlc_input_thread_cfg::type, input_thread_private_t::type, unlikely, var_InheritAddress(), var_InheritBool(), var_InheritInteger(), input_thread_private_t::viewpoint, input_thread_private_t::viewpoint_changed, vlc_assert_unreachable, 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_ExtractAttachmentAndCacheArt()

◆ input_GetAttachment()

◆ input_GetAttachments()

◆ input_GetItem()

input_item_t * input_GetItem ( input_thread_t p_input)

Get the input item for an input thread.

You have to keep a reference to the input or to the input_item_t until you do not need it anymore.

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().

◆ input_GetItemDuration()

vlc_tick_t input_GetItemDuration ( input_thread_t input,
vlc_tick_t  duration 
)

Calculates the duration of the item in an input thread.

This function determines the duration of a track item based on the start and stop times stored in the input thread's private data. If the stop time is not set (i.e., equals zero), the function considers the given duration as the stop time and calculates the effective duration based on the start time. Otherwise, it calculates the duration using the set start and stop times.

Parameters
inputPointer to the input_thread_t object.
durationThe initial duration value, used if the stop time is not set.
Returns
The calculated duration based on the start and stop times.

References input_thread_private_t::i_start, input_thread_private_t::i_stop, and input_priv().

Referenced by input_item_parser_InputEvent(), and input_thread_Events().

◆ input_priv()

static input_thread_private_t * input_priv ( input_thread_t input)
inlinestatic

References container_of.

Referenced by AppendAttachment(), AStreamReadBlock(), AStreamReadStream(), Control(), ControlGetReducedIndexLocked(), ControlInsertDemuxFilter(), ControlNav(), ControlPause(), ControlPop(), ControlPopEarly(), ControlSetEsList(), ControlUnpause(), ControlUpdateRenderer(), decoder_on_new_audio_stats(), decoder_on_new_video_stats(), Destroy(), End(), EsOutCreateDecoder(), EsOutDeleteInfoEs(), EsOutEpgTime(), EsOutFillEsFmt(), EsOutGetWakeup(), EsOutIsGroupSticky(), EsOutMeta(), EsOutProgramAdd(), EsOutProgramEpg(), EsOutProgramEpgEvent(), EsOutProgramMeta(), EsOutProgramSelect(), EsOutProgramUpdateScrambled(), EsOutSelectEs(), EsOutSend(), EsOutSetRecord(), EsOutStopFreeVout(), EsOutTerminate(), EsOutUpdateInfo(), EsOutVaControlLocked(), EsOutVaPrivControlLocked(), FillFileStatsIfAny(), Init(), InitPrograms(), InitProperties(), InitSout(), InitTitle(), input_CanPaceControl(), input_ChangeState(), input_Close(), input_ConfigVarInit(), input_ControlPush(), input_Create(), input_ExtractAttachmentAndCacheArt(), input_GetAttachment(), input_GetAttachments(), input_GetItem(), input_GetItemDuration(), input_SendEvent(), input_SlaveSourceAdd(), input_Start(), input_Stop(), input_Stopped(), input_thread_Events(), InputDemuxNew(), InputSourceInit(), InputSourceMeta(), InputUpdateMeta(), LoadSlaves(), MainLoop(), MainLoopDemux(), MainLoopStatistics(), MainLoopTryRepeat(), RequestSubRate(), SetStopStart(), SetSubtitlesOptions(), SlaveDemux(), SlaveSeek(), StartTitle(), UpdateGenericFromDemux(), UpdatePtsDelay(), UpdateTitleListfromDemux(), UpdateTitleSeekpoint(), UpdateTitleSeekpointFromDemux(), ViewpointApply(), and vlc_player_input_HandleTitleEvent().

◆ input_rate_Add()

void input_rate_Add ( input_rate_t counter,
uintmax_t  val 
)

Update a counter element with new values.

Parameters
counterthe counter to update
valthe vlc_value union containing the new value to aggregate. For more information on how data is aggregated,
See also
stats_Create

References input_rate_t::date, input_rate_t::lock, input_rate_t::samples, input_rate_t::updates, input_rate_t::value, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_FROM_SEC, VLC_TICK_INVALID, and vlc_tick_now().

Referenced by AStreamReadBlock(), AStreamReadStream(), and EsOutSend().

◆ input_SetEsCatDelay()

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.

Parameters
inputAny input to change the delay for.
catThe ES category to apply the delay to.
delayThe delay to apply to the category, a positive delay shifting the track to the future.
Returns
VLC_SUCCESS when the delay has been applied, or signal an error otherwise.
Note
This function can be called before start or while running.
This function is not thread-safe, the caller should handle the locking.

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().

◆ input_SetEsCatIds()

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().

◆ input_SetEsIdDelay()

void input_SetEsIdDelay ( input_thread_t input,
vlc_es_id_t es_id,
vlc_tick_t  delay 
)

Set the delay of an ES identifier.

◆ input_SetPosition()

◆ input_SetProgramId()

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().

◆ input_SetTime()

◆ input_Start()

int input_Start ( input_thread_t p_input)

Start a input_thread_t created by input_Create.

You must not start an already running input_thread_t.

Parameters
p_inputthe 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(), ThumbnailerRun(), and vlc_player_input_Start().

◆ input_stats_Compute()

◆ input_stats_Create()

◆ input_stats_Destroy()

void input_stats_Destroy ( struct input_stats stats)

Referenced by Destroy().

◆ input_Stop()

◆ input_Stopped()

◆ subtitles_Detect()

int subtitles_Detect ( input_thread_t p_this,
char *  psz_path,
const char *  psz_name_org,
input_item_slave_t ***  ppp_slaves,
int *  p_slaves 
)

Detect subtitle files.

When called this function will split up the psz_name string into a directory, filename and extension. It then opens the directory in which the file resides and tries to find possible matches of subtitles files.

Parameters
p_thisthe calling input_thread_t
psz_patha list of subdirectories (separated by a ',') to look in.
psz_name_orgthe complete filename to base the search on.
ppp_slavesan initialized input item slave list to append detected subtitles to
p_slavespointer to the size of the slave list
Returns
VLC_SUCCESS if ok

References asprintf(), input_item_slave::b_forced, DIR_SEP, DIR_SEP_CHAR, filename_strip_ext_inplace(), filename_trim_inplace(), input_item_slave::i_priority, input_item_slave_Delete, input_item_slave_New(), msg_Dbg, paths_to_list(), psz_ext, psz_name, input_item_slave::psz_uri, SLAVE_PRIORITY_MATCH_ALL, SLAVE_PRIORITY_MATCH_LEFT, SLAVE_PRIORITY_MATCH_NONE, SLAVE_PRIORITY_MATCH_RIGHT, slave_strcmp(), SLAVE_TYPE_SPU, strcasecmp(), strdup(), subtitles_Filter(), TAB_APPEND, var_GetInteger(), vlc_closedir(), VLC_EGENERIC, VLC_ENOMEM, vlc_opendir(), vlc_path2uri(), vlc_readdir(), vlc_stat(), VLC_SUCCESS, vlc_uri2path(), and whiteonly().

Referenced by LoadSlaves().

◆ subtitles_Filter()

int subtitles_Filter ( const char *  psz_dir_content)

◆ vlc_audio_replay_gain_MergeFromMeta()