VLC 4.0.0-dev
Loading...
Searching...
No Matches
vlc_input_item.h File Reference

This file defines functions, structures and enums for input items in vlc. More...

Include dependency graph for vlc_input_item.h:

Go to the source code of this file.

Data Structures

struct  info_t
 
struct  info_category_t
 
struct  input_item_es
 
struct  input_item_es_vector
 
struct  input_item_t
 Describes an input and is used to spawn input_thread_t objects. More...
 
struct  input_item_slave
 
struct  input_item_node_t
 
struct  input_item_parser_cbs_t
 input item parser callbacks More...
 
struct  vlc_metadata_cbs
 
struct  input_stats_t
 
struct  vlc_readdir_helper
 Access pf_readdir helper struct. More...
 

Macros

#define info_foreach(info, cat)   vlc_list_foreach(info, cat, node)
 
#define INPUT_ITEM_URI_NOP   "vlc://nop" /* dummy URI for node/directory items */
 
#define INPUT_DURATION_UNSET   VLC_TICK_INVALID
 
#define INPUT_DURATION_INDEFINITE   (-1) /* item with a known indefinite duration (live/continuous source) */
 
#define MASTER_EXTENSIONS
 
#define SLAVE_SPU_EXTENSIONS
 
#define SLAVE_AUDIO_EXTENSIONS
 
#define input_item_slave_Delete(p_slave)   free(p_slave)
 
#define INPUT_META(name)
 
#define input_item_SetTrackNum   input_item_SetTrackNumber
 
#define input_item_GetTrackNum   input_item_GetTrackNumber
 
#define input_item_SetArtURL   input_item_SetArtworkURL
 
#define input_item_GetArtURL   input_item_GetArtworkURL
 
#define input_item_AddStat(item, type, value)    input_item_AddInfo(item, ".stat", type, "%" PRIu64, (uint64_t) value)
 
#define input_item_New(psz_uri, psz_name)    input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_UNSET, ITEM_TYPE_UNKNOWN, ITEM_NET_UNKNOWN )
 
#define input_item_NewCard(psz_uri, psz_name)    input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_INDEFINITE, ITEM_TYPE_CARD, ITEM_LOCAL )
 
#define input_item_NewDisc(psz_uri, psz_name, i_duration)    input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_DISC, ITEM_LOCAL )
 
#define input_item_NewStream(psz_uri, psz_name, i_duration)    input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_STREAM, ITEM_NET )
 
#define input_item_NewDirectory(psz_uri, psz_name, i_net)    input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_UNSET, ITEM_TYPE_DIRECTORY, i_net )
 
#define input_item_NewFile(psz_uri, psz_name, i_duration, i_net)    input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_FILE, i_net )
 
#define INPUT_RECORD_PREFIX   "vlc-record-%Y-%m-%d-%Hh%Mm%Ss-$ N-$ p"
 Record prefix string.
 
#define vlc_readdir_helper_init(p_rdh, p_obj, p_node)    vlc_readdir_helper_init(p_rdh, VLC_OBJECT(p_obj), p_node)
 

Typedefs

typedef struct input_item_opaque input_item_opaque_t
 
typedef struct input_item_slave input_item_slave_t
 
typedef struct input_item_parser_id_t input_item_parser_id_t
 input item parser opaque structure
 
typedef struct input_item_parser_cbs_t input_item_parser_cbs_t
 input item parser callbacks
 
typedef enum input_item_meta_request_option_t input_item_meta_request_option_t
 

Enumerations

enum  input_item_type_e {
  ITEM_TYPE_UNKNOWN , ITEM_TYPE_FILE , ITEM_TYPE_DIRECTORY , ITEM_TYPE_DISC ,
  ITEM_TYPE_CARD , ITEM_TYPE_STREAM , ITEM_TYPE_PLAYLIST , ITEM_TYPE_NODE ,
  ITEM_TYPE_NUMBER
}
 
enum  input_item_net_type { ITEM_NET_UNKNOWN , ITEM_NET , ITEM_LOCAL }
 
enum  slave_type { SLAVE_TYPE_SPU , SLAVE_TYPE_GENERIC }
 
enum  slave_priority {
  SLAVE_PRIORITY_MATCH_NONE = 1 , SLAVE_PRIORITY_MATCH_RIGHT , SLAVE_PRIORITY_MATCH_LEFT , SLAVE_PRIORITY_MATCH_ALL ,
  SLAVE_PRIORITY_USER
}
 
enum  input_item_option_e { VLC_INPUT_OPTION_TRUSTED = 0x2 , VLC_INPUT_OPTION_UNIQUE = 0x100 }
 Option flags. More...
 
enum  input_item_meta_request_option_t {
  META_REQUEST_OPTION_NONE = 0x00 , META_REQUEST_OPTION_SCOPE_LOCAL = 0x01 , META_REQUEST_OPTION_SCOPE_NETWORK = 0x02 , META_REQUEST_OPTION_SCOPE_ANY ,
  META_REQUEST_OPTION_SCOPE_FORCED = 0x04 , META_REQUEST_OPTION_FETCH_LOCAL = 0x08 , META_REQUEST_OPTION_FETCH_NETWORK = 0x10 , META_REQUEST_OPTION_FETCH_ANY ,
  META_REQUEST_OPTION_DO_INTERACT = 0x20
}
 
enum  input_item_preparse_status { ITEM_PREPARSE_SKIPPED , ITEM_PREPARSE_FAILED , ITEM_PREPARSE_TIMEOUT , ITEM_PREPARSE_DONE }
 

Functions

static bool info_category_IsHidden (info_category_t *cat)
 Returns true if the category is hidden.
 
void input_item_CopyOptions (input_item_t *p_child, input_item_t *p_parent)
 
void input_item_SetName (input_item_t *p_item, const char *psz_name)
 
input_item_node_tinput_item_node_Create (input_item_t *p_input)
 Start adding multiple subitems.
 
input_item_node_tinput_item_node_AppendItem (input_item_node_t *p_node, input_item_t *p_item)
 Add a new child node to this parent node that will point to this subitem.
 
void input_item_node_AppendNode (input_item_node_t *p_parent, input_item_node_t *p_child)
 Add an already created node to children of this parent node.
 
void input_item_node_RemoveNode (input_item_node_t *parent, input_item_node_t *child)
 Remove a node from its parent.
 
void input_item_node_Delete (input_item_node_t *p_node)
 Delete a node created with input_item_node_Create() and all its children.
 
int input_item_AddOption (input_item_t *, const char *, unsigned i_flags)
 This function allows to add an option to an existing input_item_t.
 
int input_item_AddOptions (input_item_t *, int i_options, const char *const *ppsz_options, unsigned i_flags)
 This function add several options to an existing input_item_t.
 
int input_item_AddOpaque (input_item_t *, const char *, void *)
 
void input_item_ApplyOptions (vlc_object_t *, input_item_t *)
 
bool input_item_Playable (const char *)
 This function checks whether the input item is of a type that can be played.
 
bool input_item_slave_GetType (const char *, enum slave_type *)
 
input_item_slave_tinput_item_slave_New (const char *, enum slave_type, enum slave_priority)
 
int input_item_AddSlave (input_item_t *, input_item_slave_t *)
 This function allows adding a slave to an existing input item.
 
void input_item_SetMeta (input_item_t *, vlc_meta_type_t meta_type, const char *psz_val)
 
bool input_item_MetaMatch (input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
 
char * input_item_GetMeta (input_item_t *p_i, vlc_meta_type_t meta_type)
 
const char * input_item_GetMetaLocked (input_item_t *, vlc_meta_type_t meta_type)
 
char * input_item_GetName (input_item_t *p_i)
 
char * input_item_GetTitleFbName (input_item_t *p_i)
 
char * input_item_GetURI (input_item_t *p_i)
 
char * input_item_GetNowPlayingFb (input_item_t *p_item)
 
void input_item_SetURI (input_item_t *p_i, const char *psz_uri)
 
vlc_tick_t input_item_GetDuration (input_item_t *p_i)
 
void input_item_SetDuration (input_item_t *p_i, vlc_tick_t i_duration)
 
bool input_item_IsPreparsed (input_item_t *p_i)
 
bool input_item_IsArtFetched (input_item_t *p_i)
 
char * input_item_GetMetaExtra (input_item_t *p_i, const char *psz_name)
 
unsigned input_item_GetMetaExtraNames (input_item_t *p_i, char ***pppsz_names)
 
void input_item_SetMetaExtra (input_item_t *p_i, const char *psz_name, const char *psz_value)
 
static void input_item_SetTitle (input_item_t *p_input, const char *val)
 
static char * input_item_GetTitle (input_item_t *p_input)
 
static void input_item_SetArtist (input_item_t *p_input, const char *val)
 
static char * input_item_GetArtist (input_item_t *p_input)
 
static void input_item_SetAlbumArtist (input_item_t *p_input, const char *val)
 
static char * input_item_GetAlbumArtist (input_item_t *p_input)
 
static void input_item_SetGenre (input_item_t *p_input, const char *val)
 
static char * input_item_GetGenre (input_item_t *p_input)
 
static void input_item_SetCopyright (input_item_t *p_input, const char *val)
 
static char * input_item_GetCopyright (input_item_t *p_input)
 
static void input_item_SetAlbum (input_item_t *p_input, const char *val)
 
static char * input_item_GetAlbum (input_item_t *p_input)
 
static void input_item_SetTrackNumber (input_item_t *p_input, const char *val)
 
static char * input_item_GetTrackNumber (input_item_t *p_input)
 
static void input_item_SetDescription (input_item_t *p_input, const char *val)
 
static char * input_item_GetDescription (input_item_t *p_input)
 
static void input_item_SetRating (input_item_t *p_input, const char *val)
 
static char * input_item_GetRating (input_item_t *p_input)
 
static void input_item_SetDate (input_item_t *p_input, const char *val)
 
static char * input_item_GetDate (input_item_t *p_input)
 
static void input_item_SetSetting (input_item_t *p_input, const char *val)
 
static char * input_item_GetSetting (input_item_t *p_input)
 
static void input_item_SetURL (input_item_t *p_input, const char *val)
 
static char * input_item_GetURL (input_item_t *p_input)
 
static void input_item_SetLanguage (input_item_t *p_input, const char *val)
 
static char * input_item_GetLanguage (input_item_t *p_input)
 
static void input_item_SetNowPlaying (input_item_t *p_input, const char *val)
 
static char * input_item_GetNowPlaying (input_item_t *p_input)
 
static void input_item_SetESNowPlaying (input_item_t *p_input, const char *val)
 
static char * input_item_GetESNowPlaying (input_item_t *p_input)
 
static void input_item_SetPublisher (input_item_t *p_input, const char *val)
 
static char * input_item_GetPublisher (input_item_t *p_input)
 
static void input_item_SetEncodedBy (input_item_t *p_input, const char *val)
 
static char * input_item_GetEncodedBy (input_item_t *p_input)
 
static void input_item_SetArtworkURL (input_item_t *p_input, const char *val)
 
static char * input_item_GetArtworkURL (input_item_t *p_input)
 
static void input_item_SetTrackID (input_item_t *p_input, const char *val)
 
static char * input_item_GetTrackID (input_item_t *p_input)
 
static void input_item_SetTrackTotal (input_item_t *p_input, const char *val)
 
static char * input_item_GetTrackTotal (input_item_t *p_input)
 
static void input_item_SetDirector (input_item_t *p_input, const char *val)
 
static char * input_item_GetDirector (input_item_t *p_input)
 
static void input_item_SetSeason (input_item_t *p_input, const char *val)
 
static char * input_item_GetSeason (input_item_t *p_input)
 
static void input_item_SetEpisode (input_item_t *p_input, const char *val)
 
static char * input_item_GetEpisode (input_item_t *p_input)
 
static void input_item_SetShowName (input_item_t *p_input, const char *val)
 
static char * input_item_GetShowName (input_item_t *p_input)
 
static void input_item_SetActors (input_item_t *p_input, const char *val)
 
static char * input_item_GetActors (input_item_t *p_input)
 
static void input_item_SetDiscNumber (input_item_t *p_input, const char *val)
 
static char * input_item_GetDiscNumber (input_item_t *p_input)
 
static void input_item_SetDiscTotal (input_item_t *p_input, const char *val)
 
static char * input_item_GetDiscTotal (input_item_t *p_input)
 
char * input_item_GetInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name)
 Get a info item from a given category in a given input item.
 
char * input_item_GetInfoLocked (input_item_t *p_i, const char *psz_cat, const char *psz_name)
 
int input_item_AddInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format,...)
 
int input_item_DelInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name)
 
void input_item_ReplaceInfos (input_item_t *, info_category_t *)
 
void input_item_MergeInfos (input_item_t *, info_category_t *)
 
input_item_tinput_item_NewExt (const char *psz_uri, const char *psz_name, vlc_tick_t i_duration, enum input_item_type_e i_type, enum input_item_net_type i_net)
 This function creates a new input_item_t with the provided information.
 
input_item_tinput_item_Copy (input_item_t *)
 This function creates a new input_item_t as a copy of another.
 
input_item_tinput_item_Hold (input_item_t *)
 Holds an input item, i.e.
 
void input_item_Release (input_item_t *)
 Releases an input item, i.e.
 
char * input_item_CreateFilename (input_item_t *, const char *psz_path, const char *psz_prefix, const char *psz_extension)
 This function creates a sane filename path.
 
input_item_parser_id_tinput_item_Parse (input_item_t *item, vlc_object_t *parent, const input_item_parser_cbs_t *cbs, void *userdata)
 Parse an item asynchronously.
 
void input_item_parser_id_Interrupt (input_item_parser_id_t *parser)
 Interrupts & cancels the parsing.
 
void input_item_parser_id_Release (input_item_parser_id_t *parser)
 Release (and interrupt if needed) a parser.
 
int libvlc_MetadataRequest (libvlc_int_t *, input_item_t *, input_item_meta_request_option_t, const struct vlc_metadata_cbs *cbs, void *cbs_userdata, int, void *)
 Requests extraction of the meta data for an input item (a.k.a.
 
void libvlc_MetadataCancel (libvlc_int_t *, void *)
 Cancels extraction of the meta data for an input item.
 
void vlc_readdir_helper_init (struct vlc_readdir_helper *p_rdh, vlc_object_t *p_obj, input_item_node_t *p_node)
 Init a vlc_readdir_helper struct.
 
void vlc_readdir_helper_finish (struct vlc_readdir_helper *p_rdh, bool b_success)
 Finish adding items to the node.
 
int vlc_readdir_helper_additem (struct vlc_readdir_helper *p_rdh, const char *psz_uri, const char *psz_flatpath, const char *psz_filename, int i_type, int i_net, input_item_t **created_item)
 Add a new input_item_t entry to the node of the vlc_readdir_helper struct.
 

Detailed Description

This file defines functions, structures and enums for input items in vlc.

Macro Definition Documentation

◆ info_foreach

#define info_foreach (   info,
  cat 
)    vlc_list_foreach(info, cat, node)

◆ INPUT_DURATION_INDEFINITE

#define INPUT_DURATION_INDEFINITE   (-1) /* item with a known indefinite duration (live/continuous source) */

◆ INPUT_DURATION_UNSET

#define INPUT_DURATION_UNSET   VLC_TICK_INVALID

◆ input_item_AddStat

#define input_item_AddStat (   item,
  type,
  value 
)     input_item_AddInfo(item, ".stat", type, "%" PRIu64, (uint64_t) value)

◆ input_item_GetArtURL

#define input_item_GetArtURL   input_item_GetArtworkURL

◆ input_item_GetTrackNum

#define input_item_GetTrackNum   input_item_GetTrackNumber

◆ input_item_New

#define input_item_New (   psz_uri,
  psz_name 
)     input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_UNSET, ITEM_TYPE_UNKNOWN, ITEM_NET_UNKNOWN )

◆ input_item_NewCard

#define input_item_NewCard (   psz_uri,
  psz_name 
)     input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_INDEFINITE, ITEM_TYPE_CARD, ITEM_LOCAL )

◆ input_item_NewDirectory

#define input_item_NewDirectory (   psz_uri,
  psz_name,
  i_net 
)     input_item_NewExt( psz_uri, psz_name, INPUT_DURATION_UNSET, ITEM_TYPE_DIRECTORY, i_net )

◆ input_item_NewDisc

#define input_item_NewDisc (   psz_uri,
  psz_name,
  i_duration 
)     input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_DISC, ITEM_LOCAL )

◆ input_item_NewFile

#define input_item_NewFile (   psz_uri,
  psz_name,
  i_duration,
  i_net 
)     input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_FILE, i_net )

◆ input_item_NewStream

#define input_item_NewStream (   psz_uri,
  psz_name,
  i_duration 
)     input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_STREAM, ITEM_NET )

◆ input_item_SetArtURL

#define input_item_SetArtURL   input_item_SetArtworkURL

◆ input_item_SetTrackNum

#define input_item_SetTrackNum   input_item_SetTrackNumber

◆ input_item_slave_Delete

#define input_item_slave_Delete (   p_slave)    free(p_slave)

◆ INPUT_ITEM_URI_NOP

#define INPUT_ITEM_URI_NOP   "vlc://nop" /* dummy URI for node/directory items */

◆ INPUT_META

#define INPUT_META (   name)
Value:
static inline \
void input_item_Set ## name (input_item_t *p_input, const char *val) \
{ \
input_item_SetMeta (p_input, vlc_meta_ ## name, val); \
} \
static inline \
char *input_item_Get ## name (input_item_t *p_input) \
{ \
return input_item_GetMeta (p_input, vlc_meta_ ## name); \
}
const char name[16]
Definition httpd.c:1298
Describes an input and is used to spawn input_thread_t objects.
Definition vlc_input_item.h:98
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition item.c:203

◆ INPUT_RECORD_PREFIX

#define INPUT_RECORD_PREFIX   "vlc-record-%Y-%m-%d-%Hh%Mm%Ss-$ N-$ p"

Record prefix string.

TODO make it configurable.

◆ MASTER_EXTENSIONS

#define MASTER_EXTENSIONS
Value:
"asf", "avi", "divx", \
"f4v", "flv", "m1v", \
"m2v", "m4v", "mkv", \
"mov", "mp2", "mp2v", \
"mp4", "mp4v", "mpe", \
"mpeg", "mpeg1", "mpeg2", \
"mpeg4", "mpg", "mpv2", \
"mxf", "ogv", "ogx", \
"ps", "vro","webm", \
"wmv", "wtv"

◆ SLAVE_AUDIO_EXTENSIONS

#define SLAVE_AUDIO_EXTENSIONS
Value:
"aac", "ac3", "dts", \
"dtshd", "eac3", "flac", \
"m4a", "mp3", "pcm" \

◆ SLAVE_SPU_EXTENSIONS

#define SLAVE_SPU_EXTENSIONS
Value:
"aqt", "ass", "cdg", \
"dks", "idx", "jss", \
"mpl2", "mpsub", "pjs", \
"psb", "rt", "sami", "sbv", \
"scc", "smi", "srt", \
"ssa", "stl", "sub", \
"tt", "ttml", "usf", \
"vtt", "webvtt"

◆ vlc_readdir_helper_init

#define vlc_readdir_helper_init (   p_rdh,
  p_obj,
  p_node 
)     vlc_readdir_helper_init(p_rdh, VLC_OBJECT(p_obj), p_node)

Typedef Documentation

◆ input_item_meta_request_option_t

◆ input_item_opaque_t

◆ input_item_parser_cbs_t

input item parser callbacks

◆ input_item_parser_id_t

input item parser opaque structure

◆ input_item_slave_t

Enumeration Type Documentation

◆ input_item_meta_request_option_t

Enumerator
META_REQUEST_OPTION_NONE 
META_REQUEST_OPTION_SCOPE_LOCAL 
META_REQUEST_OPTION_SCOPE_NETWORK 
META_REQUEST_OPTION_SCOPE_ANY 
META_REQUEST_OPTION_SCOPE_FORCED 
META_REQUEST_OPTION_FETCH_LOCAL 
META_REQUEST_OPTION_FETCH_NETWORK 
META_REQUEST_OPTION_FETCH_ANY 
META_REQUEST_OPTION_DO_INTERACT 

◆ input_item_net_type

Enumerator
ITEM_NET_UNKNOWN 
ITEM_NET 
ITEM_LOCAL 

◆ input_item_option_e

Option flags.

Enumerator
VLC_INPUT_OPTION_TRUSTED 
VLC_INPUT_OPTION_UNIQUE 

◆ input_item_preparse_status

Enumerator
ITEM_PREPARSE_SKIPPED 
ITEM_PREPARSE_FAILED 
ITEM_PREPARSE_TIMEOUT 
ITEM_PREPARSE_DONE 

◆ input_item_type_e

Enumerator
ITEM_TYPE_UNKNOWN 
ITEM_TYPE_FILE 
ITEM_TYPE_DIRECTORY 
ITEM_TYPE_DISC 
ITEM_TYPE_CARD 
ITEM_TYPE_STREAM 
ITEM_TYPE_PLAYLIST 
ITEM_TYPE_NODE 
ITEM_TYPE_NUMBER 

◆ slave_priority

Enumerator
SLAVE_PRIORITY_MATCH_NONE 
SLAVE_PRIORITY_MATCH_RIGHT 
SLAVE_PRIORITY_MATCH_LEFT 
SLAVE_PRIORITY_MATCH_ALL 
SLAVE_PRIORITY_USER 

◆ slave_type

enum slave_type
Enumerator
SLAVE_TYPE_SPU 
SLAVE_TYPE_GENERIC 

Function Documentation

◆ info_category_IsHidden()

static bool info_category_IsHidden ( info_category_t cat)
inlinestatic

Returns true if the category is hidden.

Infos from hidden categories should not be displayed directly by UI modules.

References info_category_t::psz_name.

◆ input_item_AddInfo()

int input_item_AddInfo ( input_item_t p_i,
const char *  psz_cat,
const char *  psz_name,
const char *  psz_format,
  ... 
)

◆ input_item_AddOpaque()

int input_item_AddOpaque ( input_item_t item,
const char *  name,
void *  value 
)

◆ input_item_AddOption()

int input_item_AddOption ( input_item_t p_input,
const char *  psz_option,
unsigned  i_flags 
)

◆ input_item_AddOptions()

int input_item_AddOptions ( input_item_t p_item,
int  i_options,
const char *const *  ppsz_options,
unsigned  i_flags 
)

This function add several options to an existing input_item_t.

References input_item_AddOption(), and VLC_SUCCESS.

Referenced by add_to_playlist(), and intf_InsertItem().

◆ input_item_AddSlave()

int input_item_AddSlave ( input_item_t p_item,
input_item_slave_t p_slave 
)

This function allows adding a slave to an existing input item.

The slave is owned by the input item after this call.

References input_item_slave::i_priority, input_item_t::i_slaves, input_item_t::lock, input_item_t::pp_slaves, SLAVE_PRIORITY_MATCH_NONE, TAB_APPEND, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.

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

◆ input_item_ApplyOptions()

◆ input_item_Copy()

◆ input_item_CopyOptions()

◆ input_item_CreateFilename()

char * input_item_CreateFilename ( input_item_t item,
const char *  psz_path,
const char *  psz_prefix,
const char *  psz_extension 
)

This function creates a sane filename path.

References asprintf(), DIR_SEP, filename_sanitize(), str_format(), and unlikely.

Referenced by EsOutSetRecord().

◆ input_item_DelInfo()

◆ input_item_GetActors()

static char * input_item_GetActors ( input_item_t p_input)
inlinestatic

◆ input_item_GetAlbum()

static char * input_item_GetAlbum ( input_item_t p_input)
inlinestatic

◆ input_item_GetAlbumArtist()

static char * input_item_GetAlbumArtist ( input_item_t p_input)
inlinestatic

◆ input_item_GetArtist()

static char * input_item_GetArtist ( input_item_t p_input)
inlinestatic

Referenced by DisplayVoutTitle().

◆ input_item_GetArtworkURL()

static char * input_item_GetArtworkURL ( input_item_t p_input)
inlinestatic

◆ input_item_GetCopyright()

static char * input_item_GetCopyright ( input_item_t p_input)
inlinestatic

◆ input_item_GetDate()

static char * input_item_GetDate ( input_item_t p_input)
inlinestatic

◆ input_item_GetDescription()

static char * input_item_GetDescription ( input_item_t p_input)
inlinestatic

◆ input_item_GetDirector()

static char * input_item_GetDirector ( input_item_t p_input)
inlinestatic

◆ input_item_GetDiscNumber()

static char * input_item_GetDiscNumber ( input_item_t p_input)
inlinestatic

◆ input_item_GetDiscTotal()

static char * input_item_GetDiscTotal ( input_item_t p_input)
inlinestatic

◆ input_item_GetDuration()

◆ input_item_GetEncodedBy()

static char * input_item_GetEncodedBy ( input_item_t p_input)
inlinestatic

◆ input_item_GetEpisode()

static char * input_item_GetEpisode ( input_item_t p_input)
inlinestatic

◆ input_item_GetESNowPlaying()

static char * input_item_GetESNowPlaying ( input_item_t p_input)
inlinestatic

◆ input_item_GetGenre()

static char * input_item_GetGenre ( input_item_t p_input)
inlinestatic

◆ input_item_GetInfo()

char * input_item_GetInfo ( input_item_t p_i,
const char *  psz_cat,
const char *  psz_name 
)

Get a info item from a given category in a given input item.

Parameters
p_iThe input item to get info from
psz_catString representing the category for the info
psz_nameString representing the name of the desired info
Returns
A pointer to the string with the given info if found, or an empty string otherwise. The caller should free the returned pointer.

References input_item_GetInfoLocked(), input_item_t::lock, psz_name, vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by input_FindArtInCacheUsingItemUID(), and input_SaveArt().

◆ input_item_GetInfoLocked()

char * input_item_GetInfoLocked ( input_item_t p_i,
const char *  psz_cat,
const char *  psz_name 
)

◆ input_item_GetLanguage()

static char * input_item_GetLanguage ( input_item_t p_input)
inlinestatic

◆ input_item_GetMeta()

◆ input_item_GetMetaExtra()

char * input_item_GetMetaExtra ( input_item_t p_i,
const char *  psz_name 
)

◆ input_item_GetMetaExtraNames()

unsigned input_item_GetMetaExtraNames ( input_item_t p_i,
char ***  pppsz_names 
)

◆ input_item_GetMetaLocked()

const char * input_item_GetMetaLocked ( input_item_t item,
vlc_meta_type_t  meta_type 
)

◆ input_item_GetName()

◆ input_item_GetNowPlaying()

static char * input_item_GetNowPlaying ( input_item_t p_input)
inlinestatic

◆ input_item_GetNowPlayingFb()

char * input_item_GetNowPlayingFb ( input_item_t p_item)

◆ input_item_GetPublisher()

static char * input_item_GetPublisher ( input_item_t p_input)
inlinestatic

◆ input_item_GetRating()

static char * input_item_GetRating ( input_item_t p_input)
inlinestatic

◆ input_item_GetSeason()

static char * input_item_GetSeason ( input_item_t p_input)
inlinestatic

◆ input_item_GetSetting()

static char * input_item_GetSetting ( input_item_t p_input)
inlinestatic

◆ input_item_GetShowName()

static char * input_item_GetShowName ( input_item_t p_input)
inlinestatic

◆ input_item_GetTitle()

static char * input_item_GetTitle ( input_item_t p_input)
inlinestatic

Referenced by DisplayVoutTitle().

◆ input_item_GetTitleFbName()

◆ input_item_GetTrackID()

static char * input_item_GetTrackID ( input_item_t p_input)
inlinestatic

◆ input_item_GetTrackNumber()

static char * input_item_GetTrackNumber ( input_item_t p_input)
inlinestatic

◆ input_item_GetTrackTotal()

static char * input_item_GetTrackTotal ( input_item_t p_input)
inlinestatic

◆ input_item_GetURI()

◆ input_item_GetURL()

static char * input_item_GetURL ( input_item_t p_input)
inlinestatic

◆ input_item_Hold()

◆ input_item_IsArtFetched()

◆ input_item_IsPreparsed()

◆ input_item_MergeInfos()

◆ input_item_MetaMatch()

bool input_item_MetaMatch ( input_item_t p_i,
vlc_meta_type_t  meta_type,
const char *  psz 
)

◆ input_item_NewExt()

◆ input_item_node_AppendItem()

input_item_node_t * input_item_node_AppendItem ( input_item_node_t p_node,
input_item_t p_item 
)

◆ input_item_node_AppendNode()

void input_item_node_AppendNode ( input_item_node_t p_parent,
input_item_node_t p_child 
)

Add an already created node to children of this parent node.

References input_item_node_t::i_children, input_item_node_t::pp_children, and TAB_APPEND.

Referenced by input_item_node_AppendItem(), and vlc_media_tree_AddChild().

◆ input_item_node_Create()

input_item_node_t * input_item_node_Create ( input_item_t p_input)

Start adding multiple subitems.

Create a root node to hold a tree of subitems for given item

References input_item_node_t::i_children, input_item_Hold(), input_item_node_t::p_item, and input_item_node_t::pp_children.

Referenced by demux_Demux(), input_item_node_AppendItem(), and vlc_media_tree_AddChild().

◆ input_item_node_Delete()

◆ input_item_node_RemoveNode()

void input_item_node_RemoveNode ( input_item_node_t parent,
input_item_node_t child 
)

Remove a node from its parent.

References input_item_node_t::i_children, input_item_node_t::pp_children, and TAB_REMOVE.

Referenced by rdh_attach_slaves(), and vlc_media_tree_Remove().

◆ input_item_Parse()

input_item_parser_id_t * input_item_Parse ( input_item_t item,
vlc_object_t parent,
const input_item_parser_cbs_t cbs,
void *  userdata 
)

Parse an item asynchronously.

Note
The parsing is done asynchronously. The user can call input_item_parser_id_Interrupt() before receiving the on_ended() event in order to interrupt it.
Parameters
itemthe item to parse
parentthe parent obj
cbscallbacks to be notified of the end of the parsing
userdataopaque data used by parser callbacks
Returns
a parser instance or NULL in case of error, the parser needs to be released with input_item_parser_id_Release()

References input_item_parser_id_t::cbs, INIT_S, input_item_parser_id_t::input, input_Close(), input_Create, input_item_parser_InputEvent(), input_Start(), INPUT_TYPE_PREPARSING, input_item_parser_cbs_t::on_ended, input_item_parser_id_t::state, and input_item_parser_id_t::userdata.

Referenced by Parse().

◆ input_item_parser_id_Interrupt()

void input_item_parser_id_Interrupt ( input_item_parser_id_t parser)

Interrupts & cancels the parsing.

Note
The parser still needs to be released with input_item_parser_id_Release afterward.
Calling this function will cause the on_ended callback to be invoked.
Parameters
parserthe parser to interrupt

References input_item_parser_id_t::input, and input_Stop().

Referenced by input_item_parser_id_Release().

◆ input_item_parser_id_Release()

void input_item_parser_id_Release ( input_item_parser_id_t parser)

Release (and interrupt if needed) a parser.

Parameters
parserthe parser returned by input_item_Parse

References input_item_parser_id_t::input, input_Close(), and input_item_parser_id_Interrupt().

Referenced by Parse().

◆ input_item_Playable()

bool input_item_Playable ( const char *  psz_filename)

This function checks whether the input item is of a type that can be played.

It does this by checking the extension of the input item.

References input_item_IsMaster(), and input_item_slave_GetType().

◆ input_item_Release()

◆ input_item_ReplaceInfos()

◆ input_item_SetActors()

static void input_item_SetActors ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetAlbum()

static void input_item_SetAlbum ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetAlbumArtist()

static void input_item_SetAlbumArtist ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetArtist()

static void input_item_SetArtist ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetArtworkURL()

static void input_item_SetArtworkURL ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetCopyright()

static void input_item_SetCopyright ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDate()

static void input_item_SetDate ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDescription()

static void input_item_SetDescription ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDirector()

static void input_item_SetDirector ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDiscNumber()

static void input_item_SetDiscNumber ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDiscTotal()

static void input_item_SetDiscTotal ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetDuration()

void input_item_SetDuration ( input_item_t p_i,
vlc_tick_t  i_duration 
)

◆ input_item_SetEncodedBy()

static void input_item_SetEncodedBy ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetEpisode()

static void input_item_SetEpisode ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetESNowPlaying()

static void input_item_SetESNowPlaying ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetGenre()

static void input_item_SetGenre ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetLanguage()

static void input_item_SetLanguage ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetMeta()

void input_item_SetMeta ( input_item_t p_i,
vlc_meta_type_t  meta_type,
const char *  psz_val 
)

◆ input_item_SetMetaExtra()

void input_item_SetMetaExtra ( input_item_t p_i,
const char *  psz_name,
const char *  psz_value 
)

◆ input_item_SetName()

void input_item_SetName ( input_item_t p_item,
const char *  psz_name 
)

◆ input_item_SetNowPlaying()

static void input_item_SetNowPlaying ( input_item_t p_input,
const char *  val 
)
inlinestatic

Referenced by input_Create().

◆ input_item_SetPublisher()

static void input_item_SetPublisher ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetRating()

static void input_item_SetRating ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetSeason()

static void input_item_SetSeason ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetSetting()

static void input_item_SetSetting ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetShowName()

static void input_item_SetShowName ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetTitle()

static void input_item_SetTitle ( input_item_t p_input,
const char *  val 
)
inlinestatic

Referenced by EsOutProgramSelect().

◆ input_item_SetTrackID()

static void input_item_SetTrackID ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetTrackNumber()

static void input_item_SetTrackNumber ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetTrackTotal()

static void input_item_SetTrackTotal ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_SetURI()

◆ input_item_SetURL()

static void input_item_SetURL ( input_item_t p_input,
const char *  val 
)
inlinestatic

◆ input_item_slave_GetType()

bool input_item_slave_GetType ( const char *  psz_filename,
enum slave_type p_slave_type 
)

◆ input_item_slave_New()

◆ libvlc_MetadataCancel()

void libvlc_MetadataCancel ( libvlc_int_t libvlc,
void *  id 
)

Cancels extraction of the meta data for an input item.

This does nothing if the input item is already processed or if it was not added with libvlc_MetadataRequest()

References libvlc_priv(), libvlc_priv_t::parser, unlikely, and vlc_preparser_Cancel().

Referenced by vlc_media_tree_PreparseCancel().

◆ libvlc_MetadataRequest()

int libvlc_MetadataRequest ( libvlc_int_t libvlc,
input_item_t item,
input_item_meta_request_option_t  i_options,
const struct vlc_metadata_cbs cbs,
void *  cbs_userdata,
int  timeout,
void *  id 
)

Requests extraction of the meta data for an input item (a.k.a.

preparsing). The actual extraction is asynchronous. It can be cancelled with libvlc_MetadataCancel()

References input_item_t::i_preparse_depth, libvlc_priv(), input_item_t::lock, META_REQUEST_OPTION_FETCH_ANY, META_REQUEST_OPTION_SCOPE_ANY, libvlc_priv_t::parser, unlikely, VLC_ENOMEM, vlc_MetadataRequest(), vlc_mutex_lock(), and vlc_mutex_unlock().

◆ vlc_readdir_helper_additem()

int vlc_readdir_helper_additem ( struct vlc_readdir_helper p_rdh,
const char *  psz_uri,
const char *  psz_flatpath,
const char *  psz_filename,
int  i_type,
int  i_net,
input_item_t **  created_item 
)

Add a new input_item_t entry to the node of the vlc_readdir_helper struct.

Parameters
p_rdha readdir helper initialized with vlc_readdir_helper_init
psz_uriuri of the new item
psz_flatpathflattened path of the new item. If not NULL, this function will create an input item for each sub folders (separated by '/') of psz_flatpath (so, this will un-flatten the folder hierarchy). Either psz_flatpath or psz_filename must be valid.
psz_filenamefile name of the new item. If NULL, the file part of path will be used as a filename. Either psz_flatpath or psz_filename must be valid.
i_typesee input_item_type_e
i_netsee input_item_net_type
[out]created_itemif an input item is created. The item should not be released and is valid until vlc_readdir_helper_finish() is called.
Returns
status VLC_SUCCESS in case of success, an error otherwise. Parsing should be aborted in case of error.

◆ vlc_readdir_helper_finish()

void vlc_readdir_helper_finish ( struct vlc_readdir_helper p_rdh,
bool  b_success 
)

◆ vlc_readdir_helper_init()