VLC  3.0.21
vlc_input_item.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vlc_input_item.h: Core input item
3  *****************************************************************************
4  * Copyright (C) 1999-2009 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Christophe Massiot <massiot@via.ecp.fr>
8  * Laurent Aimar <fenrir@via.ecp.fr>
9  *
10  * This program is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation; either version 2.1 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program; if not, write to the Free Software Foundation,
22  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24 
25 #ifndef VLC_INPUT_ITEM_H
26 #define VLC_INPUT_ITEM_H 1
27 
28 /**
29  * \file
30  * This file defines functions, structures and enums for input items in vlc
31  */
32 
33 #include <vlc_meta.h>
34 #include <vlc_epg.h>
35 #include <vlc_events.h>
36 
37 #include <string.h>
38 
41 
42 struct info_t
43 {
44  char *psz_name; /**< Name of this info */
45  char *psz_value; /**< Value of the info */
46 };
47 
49 {
50  char *psz_name; /**< Name of this category */
51  int i_infos; /**< Number of infos in the category */
52  struct info_t **pp_infos; /**< Pointer to an array of infos */
53 };
54 
55 /**
56  * Describes an input and is used to spawn input_thread_t objects.
57  */
59 {
60  char *psz_name; /**< text describing this item */
61  char *psz_uri; /**< mrl of this item */
62 
63  int i_options; /**< Number of input options */
64  char **ppsz_options; /**< Array of input options */
65  uint8_t *optflagv; /**< Some flags of input options */
66  unsigned optflagc;
67  input_item_opaque_t *opaques; /**< List of opaque pointer values */
68 
69  vlc_tick_t i_duration; /**< Duration in microseconds */
70 
71 
72  int i_categories; /**< Number of info categories */
73  info_category_t **pp_categories; /**< Pointer to the first info category */
74 
75  int i_es; /**< Number of es format descriptions */
76  es_format_t **es; /**< Es formats */
77 
78  input_stats_t *p_stats; /**< Statistics */
79 
81 
82  int i_epg; /**< Number of EPG entries */
83  vlc_epg_t **pp_epg; /**< EPG entries */
84  int64_t i_epg_time; /** EPG timedate as epoch time */
85  const vlc_epg_t *p_epg_table; /** running/selected program cur/next EPG table */
86 
87  int i_slaves; /**< Number of slaves */
88  input_item_slave_t **pp_slaves; /**< Slave entries that will be loaded by
89  the input_thread */
90 
92 
93  vlc_mutex_t lock; /**< Lock for the item */
94 
95  uint8_t i_type; /**< Type (file, disc, ... see input_item_type_e) */
96  bool b_net; /**< Net: always true for TYPE_STREAM, it
97  depends for others types */
98  bool b_error_when_reading;/**< Error When Reading */
99 
100  int i_preparse_depth; /**< How many level of sub items can be preparsed:
101  -1: recursive, 0: none, >0: n levels */
102 
103  bool b_preparse_interact; /**< Force interaction with the user when
104  preparsing.*/
105 };
106 
108 {
117 
118  /* This one is not a real type but the number of input_item types. */
120 };
121 
123 {
127 };
128 
130 {
133 };
134 
136 {
142 };
143 
144 /* Extensions must be in alphabetical order */
145 #define MASTER_EXTENSIONS \
146  "asf", "avi", "divx", \
147  "f4v", "flv", "m1v", \
148  "m2v", "m4v", "mkv", \
149  "mov", "mp2", "mp2v", \
150  "mp4", "mp4v", "mpe", \
151  "mpeg", "mpeg1", "mpeg2", \
152  "mpeg4", "mpg", "mpv2", \
153  "mxf", "ogv", "ogx", \
154  "ps", "vro","webm", \
155  "wmv", "wtv"
156 
157 #define SLAVE_SPU_EXTENSIONS \
158  "aqt", "ass", "cdg", \
159  "dks", "idx", "jss", \
160  "mpl2", "mpsub", "pjs", \
161  "psb", "rt", "sami", "sbv", \
162  "scc", "smi", "srt", \
163  "ssa", "stl", "sub", \
164  "ttml", "tt", "usf", \
165  "vtt", "webvtt"
166 
167 #define SLAVE_AUDIO_EXTENSIONS \
168  "aac", "ac3", "dts", \
169  "dtshd", "eac3", "flac", \
170  "m4a", "mp3", "pcm" \
171 
173 {
174  enum slave_type i_type; /**< Slave type (spu, audio) */
175  enum slave_priority i_priority; /**< Slave priority */
176  bool b_forced; /**< Slave should be selected */
177  char psz_uri[]; /**< Slave mrl */
178 };
179 
181 {
185 };
186 
187 VLC_API void input_item_CopyOptions( input_item_t *p_child, input_item_t *p_parent );
188 VLC_API void input_item_SetName( input_item_t *p_item, const char *psz_name );
189 
190 /**
191  * Start adding multiple subitems.
192  *
193  * Create a root node to hold a tree of subitems for given item
194  */
196 
197 /**
198  * Add a new child node to this parent node that will point to this subitem.
199  */
201 
202 /**
203  * Add an already created node to children of this parent node.
204  */
206 
207 /**
208  * Remove a node from its parent.
209  */
211  input_item_node_t *child );
212 
213 /**
214  * Delete a node created with input_item_node_Create() and all its children.
215  */
217 
218 /**
219  * Option flags
220  */
222 {
223  /* Allow VLC to trust the given option.
224  * By default options are untrusted */
226 
227  /* Add the option, unless the same option
228  * is already present. */
230 };
231 
232 /**
233  * This function allows to add an option to an existing input_item_t.
234  */
235 VLC_API int input_item_AddOption(input_item_t *, const char *, unsigned i_flags );
236 /**
237  * This function add several options to an existing input_item_t.
238  */
239 VLC_API int input_item_AddOptions(input_item_t *, int i_options,
240  const char *const *ppsz_options,
241  unsigned i_flags );
242 VLC_API int input_item_AddOpaque(input_item_t *, const char *, void *);
243 
245 
246 VLC_API bool input_item_slave_GetType(const char *, enum slave_type *);
247 
249  enum slave_priority);
250 #define input_item_slave_Delete(p_slave) free(p_slave)
251 
252 /**
253  * This function allows adding a slave to an existing input item.
254  * The slave is owned by the input item after this call.
255  */
257 
258 /* */
260 VLC_API void input_item_SetMeta( input_item_t *, vlc_meta_type_t meta_type, const char *psz_val );
261 VLC_API bool input_item_MetaMatch( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz );
267 VLC_API void input_item_SetURI( input_item_t * p_i, const char *psz_uri );
269 VLC_API void input_item_SetDuration( input_item_t * p_i, vlc_tick_t i_duration );
272 
273 #define INPUT_META( name ) \
274 static inline \
275 void input_item_Set ## name (input_item_t *p_input, const char *val) \
276 { \
277  input_item_SetMeta (p_input, vlc_meta_ ## name, val); \
278 } \
279 static inline \
280 char *input_item_Get ## name (input_item_t *p_input) \
281 { \
282  return input_item_GetMeta (p_input, vlc_meta_ ## name); \
283 }
284 
286 INPUT_META(Artist)
287 INPUT_META(AlbumArtist)
289 INPUT_META(Copyright)
291 INPUT_META(TrackNumber)
292 INPUT_META(Description)
293 INPUT_META(Rating)
295 INPUT_META(Setting)
297 INPUT_META(Language)
298 INPUT_META(NowPlaying)
299 INPUT_META(ESNowPlaying)
300 INPUT_META(Publisher)
301 INPUT_META(EncodedBy)
302 INPUT_META(ArtworkURL)
303 INPUT_META(TrackID)
304 INPUT_META(TrackTotal)
305 INPUT_META(Director)
306 INPUT_META(Season)
307 INPUT_META(Episode)
308 INPUT_META(ShowName)
309 INPUT_META(Actors)
310 INPUT_META(DiscNumber)
311 
312 #define input_item_SetTrackNum input_item_SetTrackNumber
313 #define input_item_GetTrackNum input_item_GetTrackNumber
314 #define input_item_SetArtURL input_item_SetArtworkURL
315 #define input_item_GetArtURL input_item_GetArtworkURL
316 
317 VLC_API char * input_item_GetInfo( input_item_t *p_i, const char *psz_cat,const char *psz_name ) VLC_USED;
318 VLC_API int input_item_AddInfo( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ) VLC_FORMAT( 4, 5 );
319 VLC_API int input_item_DelInfo( input_item_t *p_i, const char *psz_cat, const char *psz_name );
322 
323 /**
324  * This function creates a new input_item_t with the provided information.
325  *
326  * XXX You may also use input_item_New, as they need less arguments.
327  */
328 VLC_API input_item_t * input_item_NewExt( const char *psz_uri,
329  const char *psz_name,
330  vlc_tick_t i_duration, int i_type,
331  enum input_item_net_type i_net ) VLC_USED;
332 
333 #define input_item_New( psz_uri, psz_name ) \
334  input_item_NewExt( psz_uri, psz_name, -1, ITEM_TYPE_UNKNOWN, ITEM_NET_UNKNOWN )
335 
336 #define input_item_NewCard( psz_uri, psz_name ) \
337  input_item_NewExt( psz_uri, psz_name, -1, ITEM_TYPE_CARD, ITEM_LOCAL )
338 
339 #define input_item_NewDisc( psz_uri, psz_name, i_duration ) \
340  input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_DISC, ITEM_LOCAL )
341 
342 #define input_item_NewStream( psz_uri, psz_name, i_duration ) \
343  input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_STREAM, ITEM_NET )
344 
345 #define input_item_NewDirectory( psz_uri, psz_name, i_net ) \
346  input_item_NewExt( psz_uri, psz_name, -1, ITEM_TYPE_DIRECTORY, i_net )
347 
348 #define input_item_NewFile( psz_uri, psz_name, i_duration, i_net ) \
349  input_item_NewExt( psz_uri, psz_name, i_duration, ITEM_TYPE_FILE, i_net )
350 
351 /**
352  * This function creates a new input_item_t as a copy of another.
353  */
355 
356 /** Holds an input item, i.e. creates a new reference. */
358 
359 /** Releases an input item, i.e. decrements its reference counter. */
361 
363 {
370 
371 /* status of the vlc_InputItemPreparseEnded event */
373 {
378 };
379 
382  int, void * );
385 VLC_API void libvlc_MetadataCancel( libvlc_int_t *, void * );
386 
387 /******************
388  * Input stats
389  ******************/
390 struct input_stats_t
391 {
393 
394  /* Input */
395  int64_t i_read_packets;
396  int64_t i_read_bytes;
399 
400  /* Demux */
407 
408  /* Decoders */
411 
412  /* Vout */
415 
416  /* Sout */
417  int64_t i_sent_packets;
418  int64_t i_sent_bytes;
420 
421  /* Aout */
424 };
425 
426 /**
427  * Access pf_readdir helper struct
428  * \see vlc_readdir_helper_init()
429  * \see vlc_readdir_helper_additem()
430  * \see vlc_readdir_helper_finish()
431  */
432 struct vlc_readdir_helper
433 {
435  void **pp_slaves;
436  size_t i_slaves;
437  void **pp_dirs;
438  size_t i_dirs;
441  bool b_flatten;
442  char *psz_ignored_exts;
443 };
444 
445 /**
446  * Init a vlc_readdir_helper struct
447  *
448  * \param p_rdh need to be cleaned with vlc_readdir_helper_finish()
449  * \param p_node node that will be used to add items
450  */
452  vlc_object_t *p_obj, input_item_node_t *p_node);
453 #define vlc_readdir_helper_init(p_rdh, p_obj, p_node) \
454  vlc_readdir_helper_init(p_rdh, VLC_OBJECT(p_obj), p_node)
455 
456 /**
457  * Finish adding items to the node
458  *
459  * \param b_success if true, items of the node will be sorted.
460  */
461 VLC_API void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success);
462 
463 /**
464  * Add a new input_item_t entry to the node of the vlc_readdir_helper struct.
465  *
466  * \param p_rdh previously inited vlc_readdir_helper struct
467  * \param psz_uri uri of the new item
468  * \param psz_flatpath flattened path of the new item. If not NULL, this
469  * function will create an input item for each sub folders (separated
470  * by '/') of psz_flatpath (so, this will un-flatten the folder
471  * hierarchy). Either psz_flatpath or psz_filename must be valid.
472  * \param psz_filename file name of the new item. If NULL, the file part of path
473  * will be used as a filename. Either psz_flatpath or psz_filename must
474  * be valid.
475  * \param i_type see \ref input_item_type_e
476  * \param i_net see \ref input_item_net_type
477  */
479  const char *psz_uri, const char *psz_flatpath,
480  const char *psz_filename,
481  int i_type, int i_net);
482 
483 #endif
input_item_SetName
void input_item_SetName(input_item_t *p_item, const char *psz_name)
Definition: item.c:310
VLC_FORMAT
#define VLC_FORMAT(x, y)
Definition: vlc_common.h:100
input_item_t::event_manager
vlc_event_manager_t event_manager
Definition: vlc_input_item.h:91
VLC_API
#define VLC_API
Definition: fourcc_gen.c:30
vlc_events.h
input_item_type_e
input_item_type_e
Definition: vlc_input_item.h:107
input_item_t::p_meta
vlc_meta_t * p_meta
Definition: vlc_input_item.h:80
input_item_IsPreparsed
bool input_item_IsPreparsed(input_item_t *p_i)
Definition: item.c:440
SLAVE_TYPE_SPU
Definition: vlc_input_item.h:131
ITEM_NET
Definition: vlc_input_item.h:125
input_item_GetURI
char * input_item_GetURI(input_item_t *p_i)
Definition: item.c:320
input_item_AddOption
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.
Definition: item.c:531
input_item_slave::i_priority
enum slave_priority i_priority
Slave priority.
Definition: vlc_input_item.h:175
input_item_t::optflagv
uint8_t * optflagv
Some flags of input options.
Definition: vlc_input_item.h:65
META_REQUEST_OPTION_SCOPE_NETWORK
Definition: vlc_input_item.h:366
ITEM_NET_UNKNOWN
Definition: vlc_input_item.h:124
ITEM_TYPE_PLAYLIST
Definition: vlc_input_item.h:115
input_item_t::i_categories
int i_categories
Number of info categories.
Definition: vlc_input_item.h:72
input_item_t::i_options
int i_options
Number of input options.
Definition: vlc_input_item.h:63
libvlc_int_t
Definition: vlc_main.h:33
SLAVE_TYPE_AUDIO
Definition: vlc_input_item.h:132
input_item_DelInfo
int input_item_DelInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name)
Definition: item.c:793
SLAVE_PRIORITY_MATCH_LEFT
Definition: vlc_input_item.h:139
vlc_common.h
input_item_t::i_preparse_depth
int i_preparse_depth
How many level of sub items can be preparsed: -1: recursive, 0: none, >0: n levels.
Definition: vlc_input_item.h:100
META_REQUEST_OPTION_NONE
Definition: vlc_input_item.h:364
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)
Add a new input_item_t entry to the node of the vlc_readdir_helper struct.
Definition: item.c:1751
vlc_epg.h
input_item_t::b_error_when_reading
bool b_error_when_reading
Error When Reading.
Definition: vlc_input_item.h:98
META_REQUEST_OPTION_SCOPE_ANY
Definition: vlc_input_item.h:367
info_category_t::psz_name
char * psz_name
Name of this category.
Definition: vlc_input_item.h:50
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:58
input_item_t::i_slaves
int i_slaves
running/selected program cur/next EPG table
Definition: vlc_input_item.h:87
input_item_node_Delete
void input_item_node_Delete(input_item_node_t *p_node)
Delete a node created with input_item_node_Create() and all its children.
Definition: item.c:1257
input_item_node_Create
input_item_node_t * input_item_node_Create(input_item_t *p_input)
Start adding multiple subitems.
Definition: item.c:1240
input_item_opaque
Definition: item.c:41
input_item_t::i_epg
int i_epg
Number of EPG entries.
Definition: vlc_input_item.h:82
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_common.h:150
input_item_t::pp_categories
info_category_t ** pp_categories
Pointer to the first info category.
Definition: vlc_input_item.h:73
ITEM_TYPE_FILE
Definition: vlc_input_item.h:110
input_item_t::i_epg_time
int64_t i_epg_time
Definition: vlc_input_item.h:84
input_item_HasErrorWhenReading
bool input_item_HasErrorWhenReading(input_item_t *)
Definition: item.c:231
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:93
SLAVE_PRIORITY_MATCH_RIGHT
Definition: vlc_input_item.h:138
ITEM_TYPE_NUMBER
Definition: vlc_input_item.h:119
input_item_AddOptions
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.
Definition: item.c:572
input_item_t::optflagc
unsigned optflagc
Definition: vlc_input_item.h:66
input_item_node_t::pp_children
input_item_node_t ** pp_children
Definition: vlc_input_item.h:184
input_item_net_type
input_item_net_type
Definition: vlc_input_item.h:122
input_item_CopyOptions
void input_item_CopyOptions(input_item_t *p_child, input_item_t *p_parent)
Definition: item.c:158
input_item_slave_GetType
bool input_item_slave_GetType(const char *, enum slave_type *)
Definition: item.c:637
info_category_t
Definition: vlc_input_item.h:48
vlc_readdir_helper_finish
void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success)
Finish adding items to the node.
Definition: item.c:1724
input_stats_t::i_decoded_video
int64_t i_decoded_video
Definition: vlc_input_item.h:410
input_stats_t
Definition: vlc_input_item.h:389
input_item_GetMeta
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition: item.c:260
input_item_slave_New
input_item_slave_t * input_item_slave_New(const char *, enum slave_type, enum slave_priority)
Definition: item.c:668
input_stats_t::i_lost_pictures
int64_t i_lost_pictures
Definition: vlc_input_item.h:414
input_stats_t::i_played_abuffers
int64_t i_played_abuffers
Definition: vlc_input_item.h:422
input_item_node_t::i_children
int i_children
Definition: vlc_input_item.h:183
ITEM_TYPE_CARD
Definition: vlc_input_item.h:113
input_item_IsArtFetched
bool input_item_IsArtFetched(input_item_t *p_i)
Definition: item.c:449
input_stats_t::f_input_bitrate
float f_input_bitrate
Definition: vlc_input_item.h:397
vlc_meta_t
Definition: meta.c:41
input_item_GetTitleFbName
char * input_item_GetTitleFbName(input_item_t *p_i)
Definition: item.c:279
ITEM_PREPARSE_FAILED
Definition: vlc_input_item.h:375
SLAVE_PRIORITY_USER
Definition: vlc_input_item.h:141
input_stats_t::f_send_bitrate
float f_send_bitrate
Definition: vlc_input_item.h:419
slave_priority
slave_priority
Definition: vlc_input_item.h:135
input_stats_t::f_demux_bitrate
float f_demux_bitrate
Definition: vlc_input_item.h:403
INPUT_META
#define INPUT_META(name)
Definition: vlc_input_item.h:273
input_stats_t::i_displayed_pictures
int64_t i_displayed_pictures
Definition: vlc_input_item.h:413
slave_type
slave_type
Definition: vlc_input_item.h:129
input_stats_t::i_demux_discontinuity
int64_t i_demux_discontinuity
Definition: vlc_input_item.h:406
i_type
int i_type
Definition: httpd.c:1252
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.
Definition: item.c:728
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:60
es_format_t
Definition: vlc_es.h:580
ITEM_PREPARSE_DONE
Definition: vlc_input_item.h:377
vlc_readdir_helper::p_node
input_item_node_t * p_node
Definition: vlc_input_item.h:433
input_item_slave::b_forced
bool b_forced
Slave should be selected.
Definition: vlc_input_item.h:176
input_item_t::opaques
input_item_opaque_t * opaques
List of opaque pointer values.
Definition: vlc_input_item.h:67
input_item_GetDuration
vlc_tick_t input_item_GetDuration(input_item_t *p_i)
Definition: item.c:398
vlc_readdir_helper::pp_slaves
void ** pp_slaves
Definition: vlc_input_item.h:434
input_item_t::b_preparse_interact
bool b_preparse_interact
Force interaction with the user when preparsing.
Definition: vlc_input_item.h:103
input_item_SetURI
void input_item_SetURI(input_item_t *p_i, const char *psz_uri)
Definition: item.c:330
input_item_t::pp_slaves
input_item_slave_t ** pp_slaves
Slave entries that will be loaded by the input_thread.
Definition: vlc_input_item.h:88
input_item_SetDuration
void input_item_SetDuration(input_item_t *p_i, vlc_tick_t i_duration)
Definition: item.c:408
input_stats_t::lock
vlc_mutex_t lock
Definition: vlc_input_item.h:392
libvlc_MetadataCancel
void libvlc_MetadataCancel(libvlc_int_t *, void *)
Cancels extraction of the meta data for an input item.
Definition: libvlc.c:553
input_item_meta_request_option_t
input_item_meta_request_option_t
Definition: vlc_input_item.h:362
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
input_item_ReplaceInfos
void input_item_ReplaceInfos(input_item_t *, info_category_t *)
Definition: item.c:829
input_item_AddInfo
int input_item_AddInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format,...)
Definition: item.c:770
input_item_NewExt
input_item_t * input_item_NewExt(const char *psz_uri, const char *psz_name, vlc_tick_t i_duration, int i_type, enum input_item_net_type i_net)
This function creates a new input_item_t with the provided information.
Definition: item.c:1057
input_stats_t::i_demux_corrupted
int64_t i_demux_corrupted
Definition: vlc_input_item.h:405
ITEM_TYPE_UNKNOWN
Definition: vlc_input_item.h:109
vlc_event_manager_t
Definition: vlc_events.h:114
ITEM_TYPE_DIRECTORY
Definition: vlc_input_item.h:111
vlc_readdir_helper::i_slaves
size_t i_slaves
Definition: vlc_input_item.h:435
SLAVE_PRIORITY_MATCH_ALL
Definition: vlc_input_item.h:140
libvlc_MetadataRequest
int libvlc_MetadataRequest(libvlc_int_t *, input_item_t *, input_item_meta_request_option_t, int, void *)
Requests extraction of the meta data for an input item (a.k.a.
Definition: libvlc.c:512
input_stats_t::i_demux_read_packets
int64_t i_demux_read_packets
Definition: vlc_input_item.h:401
input_item_node_t::p_item
input_item_t * p_item
Definition: vlc_input_item.h:182
input_item_preparse_status
input_item_preparse_status
Definition: vlc_input_item.h:372
META_REQUEST_OPTION_DO_INTERACT
Definition: vlc_input_item.h:368
VLC_INPUT_OPTION_UNIQUE
Definition: vlc_input_item.h:229
libvlc_ArtRequest
int libvlc_ArtRequest(libvlc_int_t *, input_item_t *, input_item_meta_request_option_t)
Requests retrieving/downloading art for an input item.
Definition: libvlc.c:535
vlc_epg_t
Definition: vlc_epg.h:51
info_category_t::pp_infos
struct info_t ** pp_infos
Pointer to an array of infos.
Definition: vlc_input_item.h:52
input_stats_t::i_sent_packets
int64_t i_sent_packets
Definition: vlc_input_item.h:417
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
vlc_readdir_helper::i_dirs
size_t i_dirs
Definition: vlc_input_item.h:437
vlc_readdir_helper::psz_ignored_exts
char * psz_ignored_exts
Definition: vlc_input_item.h:441
info_t::psz_name
char * psz_name
Name of this info.
Definition: vlc_input_item.h:44
vlc_readdir_helper_init
#define vlc_readdir_helper_init(p_rdh, p_obj, p_node)
Definition: vlc_input_item.h:452
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
input_item_option_e
input_item_option_e
Option flags.
Definition: vlc_input_item.h:221
VLC_INPUT_OPTION_TRUSTED
Definition: vlc_input_item.h:225
vlc_readdir_helper::b_show_hiddenfiles
bool b_show_hiddenfiles
Definition: vlc_input_item.h:439
input_item_GetNowPlayingFb
char * input_item_GetNowPlayingFb(input_item_t *p_item)
Definition: item.c:428
VLC_USED
#define VLC_USED
Definition: fourcc_gen.c:31
input_item_AddSlave
int input_item_AddSlave(input_item_t *, input_item_slave_t *)
This function allows adding a slave to an existing input item.
Definition: item.c:686
input_item_Release
void input_item_Release(input_item_t *)
Releases an input item, i.e.
Definition: item.c:477
ITEM_TYPE_NODE
Definition: vlc_input_item.h:116
input_item_t::b_net
bool b_net
Net: always true for TYPE_STREAM, it depends for others types.
Definition: vlc_input_item.h:96
input_item_slave::i_type
enum slave_type i_type
Slave type (spu, audio)
Definition: vlc_input_item.h:174
vlc_readdir_helper::pp_dirs
void ** pp_dirs
Definition: vlc_input_item.h:436
input_item_slave
Definition: vlc_input_item.h:172
input_item_t::i_duration
vlc_tick_t i_duration
Duration in microseconds.
Definition: vlc_input_item.h:69
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.
Definition: item.c:1287
input_item_MetaMatch
bool input_item_MetaMatch(input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
Definition: item.c:242
ITEM_PREPARSE_TIMEOUT
Definition: vlc_input_item.h:376
ITEM_PREPARSE_SKIPPED
Definition: vlc_input_item.h:374
info_t
Definition: vlc_input_item.h:42
input_item_AddOpaque
int input_item_AddOpaque(input_item_t *, const char *, void *)
Definition: item.c:582
input_item_ApplyOptions
void input_item_ApplyOptions(vlc_object_t *, input_item_t *)
Definition: item.c:601
input_stats_t::i_read_bytes
int64_t i_read_bytes
Definition: vlc_input_item.h:396
input_item_t::p_epg_table
const vlc_epg_t * p_epg_table
EPG timedate as epoch time.
Definition: vlc_input_item.h:85
input_item_SetMeta
void input_item_SetMeta(input_item_t *, vlc_meta_type_t meta_type, const char *psz_val)
Definition: item.c:144
input_item_t::pp_epg
vlc_epg_t ** pp_epg
EPG entries.
Definition: vlc_input_item.h:83
input_stats_t::i_lost_abuffers
int64_t i_lost_abuffers
Definition: vlc_input_item.h:423
ITEM_TYPE_STREAM
Definition: vlc_input_item.h:114
SLAVE_PRIORITY_MATCH_NONE
Definition: vlc_input_item.h:137
input_item_MergeInfos
void input_item_MergeInfos(input_item_t *, info_category_t *)
Definition: item.c:847
vlc_readdir_helper::i_sub_autodetect_fuzzy
int i_sub_autodetect_fuzzy
Definition: vlc_input_item.h:438
info_category_t::i_infos
int i_infos
Number of infos in the category.
Definition: vlc_input_item.h:51
vlc_readdir_helper
Access pf_readdir helper struct.
Definition: vlc_input_item.h:431
META_REQUEST_OPTION_SCOPE_LOCAL
Definition: vlc_input_item.h:365
input_item_t::p_stats
input_stats_t * p_stats
Statistics.
Definition: vlc_input_item.h:78
input_item_Hold
input_item_t * input_item_Hold(input_item_t *)
Holds an input item, i.e.
Definition: item.c:469
vlc_meta_type_t
vlc_meta_type_t
Definition: vlc_meta.h:33
input_item_node_t
Definition: vlc_input_item.h:180
input_item_node_AppendItem
input_item_node_t * input_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.
Definition: item.c:1267
vlc_readdir_helper::b_flatten
bool b_flatten
Definition: vlc_input_item.h:440
input_stats_t::i_read_packets
int64_t i_read_packets
Definition: vlc_input_item.h:395
vlc_meta.h
input_stats_t::f_average_demux_bitrate
float f_average_demux_bitrate
Definition: vlc_input_item.h:404
input_stats_t::i_demux_read_bytes
int64_t i_demux_read_bytes
Definition: vlc_input_item.h:402
input_stats_t::f_average_input_bitrate
float f_average_input_bitrate
Definition: vlc_input_item.h:398
input_item_t::i_type
uint8_t i_type
Type (file, disc, ...
Definition: vlc_input_item.h:95
input_item_t::es
es_format_t ** es
Es formats.
Definition: vlc_input_item.h:76
ITEM_LOCAL
Definition: vlc_input_item.h:126
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.
Definition: item.c:1295
input_stats_t::i_decoded_audio
int64_t i_decoded_audio
Definition: vlc_input_item.h:409
input_stats_t::i_sent_bytes
int64_t i_sent_bytes
Definition: vlc_input_item.h:418
input_item_t::i_es
int i_es
Number of es format descriptions.
Definition: vlc_input_item.h:75
input_item_GetName
char * input_item_GetName(input_item_t *p_i)
Definition: item.c:301
input_item_t::psz_uri
char * psz_uri
mrl of this item
Definition: vlc_input_item.h:61
ITEM_TYPE_DISC
Definition: vlc_input_item.h:112
input_item_Copy
input_item_t * input_item_Copy(input_item_t *)
This function creates a new input_item_t as a copy of another.
Definition: item.c:1108
input_item_slave::psz_uri
char psz_uri[]
Slave mrl.
Definition: vlc_input_item.h:177
info_t::psz_value
char * psz_value
Value of the info.
Definition: vlc_input_item.h:45
input_item_t::ppsz_options
char ** ppsz_options
Array of input options.
Definition: vlc_input_item.h:64