VLC  4.0.0-dev
item.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * item.h
3  *****************************************************************************
4  * Copyright (C) 2008 Laurent Aimar
5  *
6  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 
23 #ifndef LIBVLC_INPUT_ITEM_H
24 #define LIBVLC_INPUT_ITEM_H 1
25 
26 #include "input_interface.h"
27 #include <vlc_atomic.h>
28 
29 void input_item_SetErrorWhenReading( input_item_t *p_i, bool b_error );
30 void input_item_UpdateTracksInfo( input_item_t *item, const es_format_t *fmt );
32 
33 typedef struct input_item_owner
34 {
38 
39 # define item_owner(item) ((struct input_item_owner *)(item))
40 
41 #endif
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
input_item_parser_InputEvent
static void input_item_parser_InputEvent(input_thread_t *input, const struct vlc_input_event *event, void *parser_)
Definition: item.c:1346
input_item_MergeInfos
void input_item_MergeInfos(input_item_t *p_item, info_category_t *p_cat)
Definition: item.c:813
rdh_should_match_idx
static int rdh_should_match_idx(struct vlc_readdir_helper *p_rdh, struct rdh_slave *p_rdh_sub)
Definition: item.c:1593
input_item_t::event_manager
vlc_event_manager_t event_manager
Definition: vlc_input_item.h:110
vlc_epg_event_t::i_id
uint16_t i_id
Definition: vlc_epg.h:36
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:61
input_item_CopyOptions
void input_item_CopyOptions(input_item_t *p_child, input_item_t *p_parent)
Definition: item.c:140
info_category_FindInfo
static info_t * info_category_FindInfo(const info_category_t *cat, const char *name)
Definition: info.h:56
rdh_slave::psz_filename
char * psz_filename
Definition: item.c:1495
input_item_type_e
input_item_type_e
Definition: vlc_input_item.h:59
var_Create
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
input_item_t::p_meta
vlc_meta_t * p_meta
Definition: vlc_input_item.h:99
SLAVE_TYPE_SPU
@ SLAVE_TYPE_SPU
Definition: vlc_input_item.h:145
rdh_unflatten
static int rdh_unflatten(struct vlc_readdir_helper *p_rdh, input_item_node_t **pp_node, const char *psz_path, int i_net)
Definition: item.c:1702
ITEM_NET
@ ITEM_NET
Definition: vlc_input_item.h:139
input_item_GetName
char * input_item_GetName(input_item_t *p_item)
Definition: item.c:270
vlc_epg_t::psz_name
char * psz_name
Definition: vlc_epg.h:53
info.h
vlc_meta_Get
const char * vlc_meta_Get(const vlc_meta_t *p_meta, vlc_meta_type_t meta_type)
Definition: meta.c:129
var_InheritBool
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
input_item_slave::i_priority
enum slave_priority i_priority
Slave priority.
Definition: vlc_input_item.h:189
var_OptionParse
void var_OptionParse(vlc_object_t *, const char *, bool trusted)
Parse a stringified option This function parse a string option and create the associated object varia...
Definition: variables.c:909
input_item_t::optflagv
uint8_t * optflagv
Some flags of input options.
Definition: vlc_input_item.h:84
ITEM_NET_UNKNOWN
@ ITEM_NET_UNKNOWN
Definition: vlc_input_item.h:138
INPUT_ITEM_URI_NOP
#define INPUT_ITEM_URI_NOP
Definition: vlc_input_item.h:129
strcasecmp
int strcasecmp(const char *, const char *)
ITEM_TYPE_PLAYLIST
@ ITEM_TYPE_PLAYLIST
Definition: vlc_input_item.h:67
psz_name
const char * psz_name
Definition: text_style.c:53
input_item_t::i_categories
int i_categories
Number of info categories.
Definition: vlc_input_item.h:91
input_item_t::i_options
int i_options
Number of input options.
Definition: vlc_input_item.h:82
info_foreach
#define info_foreach(info, cat)
Definition: vlc_input_item.h:51
input_item_slave_New
input_item_slave_t * input_item_slave_New(const char *psz_uri, enum slave_type i_type, enum slave_priority i_priority)
Definition: item.c:634
input_item_AddOption
int input_item_AddOption(input_item_t *p_input, const char *psz_option, unsigned flags)
This function allows to add an option to an existing input_item_t.
Definition: item.c:497
vlc_meta_Merge
void vlc_meta_Merge(vlc_meta_t *dst, const vlc_meta_t *src)
Merging meta.
Definition: meta.c:175
str_format
static char * str_format(vlc_player_t *player, input_item_t *item, const char *fmt)
Definition: vlc_strings.h:229
vlc_epg_event_t
Definition: vlc_epg.h:32
vlc_input_item.h
rdh_slave::p_node
input_item_node_t * p_node
Definition: item.c:1496
EMPTY_STR
#define EMPTY_STR(str)
Definition: vlc_common.h:963
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
SLAVE_PRIORITY_MATCH_LEFT
@ SLAVE_PRIORITY_MATCH_LEFT
Definition: vlc_input_item.h:153
vlc_common.h
input_item_ShouldPreparseSubItems
bool input_item_ShouldPreparseSubItems(input_item_t *p_item)
Definition: item.c:431
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:119
input_item_SetName
void input_item_SetName(input_item_t *p_item, const char *psz_name)
Definition: item.c:279
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:1824
DIR_SEP
#define DIR_SEP
Definition: vlc_common.h:1221
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:736
input_item_parser_id_Interrupt
void input_item_parser_id_Interrupt(input_item_parser_id_t *parser)
Interrupts & cancels the parsing.
Definition: item.c:1400
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
input_item_node_Create
input_item_node_t * input_item_node_Create(input_item_t *p_input)
Start adding multiple subitems.
Definition: item.c:1226
input_item_t::b_error_when_reading
bool b_error_when_reading
Error When Reading.
Definition: vlc_input_item.h:117
input_item_parser_cbs_t::on_subtree_added
void(* on_subtree_added)(input_item_t *item, input_item_node_t *subtree, void *userdata)
Event received when a new subtree is added.
Definition: vlc_input_item.h:421
info_category_t::psz_name
char * psz_name
Name of this category.
Definition: vlc_input_item.h:55
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
input_item_t::i_slaves
int i_slaves
running/selected program cur/next EPG table
Definition: vlc_input_item.h:106
input_item_opaque
Definition: item.c:41
input_item_t::i_epg
int i_epg
Number of EPG entries.
Definition: vlc_input_item.h:101
input_item_t::pp_categories
info_category_t ** pp_categories
Pointer to the first info category.
Definition: vlc_input_item.h:92
ITEM_TYPE_FILE
@ ITEM_TYPE_FILE
Definition: vlc_input_item.h:62
vlc_playlist_item_Hold
void vlc_playlist_item_Hold(vlc_playlist_item_t *item)
Hold a playlist item.
Definition: item.c:45
input_item_opaque::value
void * value
Definition: item.c:64
input_item_t::i_epg_time
int64_t i_epg_time
Definition: vlc_input_item.h:103
item.h
es_format_t::i_id
int i_id
es identifier, where means -1: let the core mark the right id >=0: valid id
Definition: vlc_es.h:623
vlc_list_init
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:112
SLAVE_PRIORITY_MATCH_RIGHT
@ SLAVE_PRIORITY_MATCH_RIGHT
Definition: vlc_input_item.h:152
vlc_atomic_rc_dec
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:61
typecmp
static int typecmp(const void *key, const void *entry)
Definition: item.c:1129
input_item_AddOpaque
int input_item_AddOpaque(input_item_t *item, const char *name, void *value)
Definition: item.c:548
input_item_t::optflagc
unsigned optflagc
Definition: vlc_input_item.h:85
input_item_node_t::pp_children
input_item_node_t ** pp_children
Definition: vlc_input_item.h:198
input_item_net_type
input_item_net_type
Definition: vlc_input_item.h:136
vlc_epg_t::i_event
size_t i_event
Definition: vlc_epg.h:56
vlc_charset.h
input_item_parser_id_t::input
input_thread_t * input
Definition: item.c:1339
input_item_t::i_type
enum input_item_type_e i_type
Type (file, disc, ...
Definition: vlc_input_item.h:114
vlc_UrlClean
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:598
input_item_SetDuration
void input_item_SetDuration(input_item_t *p_i, vlc_tick_t i_duration)
Definition: item.c:381
bsearch_strcmp_cb
static int bsearch_strcmp_cb(const void *a, const void *b)
Definition: item.c:585
info_category_t
Definition: vlc_input_item.h:53
SLAVE_TYPE_GENERIC
@ SLAVE_TYPE_GENERIC
Definition: vlc_input_item.h:146
es_format_Clean
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:509
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:1243
vlc_meta_NowPlaying
@ vlc_meta_NowPlaying
Definition: vlc_meta.h:47
vlc_playlist_item::media
input_item_t * media
Definition: item.h:31
input_item_NewExt
input_item_t * input_item_NewExt(const char *psz_uri, const char *psz_name, vlc_tick_t duration, enum input_item_type_e type, enum input_item_net_type i_net)
This function creates a new input_item_t with the provided information.
Definition: item.c:1025
info_category_DeleteInfo
static int info_category_DeleteInfo(info_category_t *cat, const char *name)
Definition: info.h:108
psz_ext
const char psz_ext[7]
Definition: image.c:586
var_InheritString
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
rdh_dir::p_node
input_item_node_t * p_node
Definition: item.c:1501
vlc_playlist_item::rc
vlc_atomic_rc_t rc
Definition: item.h:33
input_item_Copy
input_item_t * input_item_Copy(input_item_t *p_input)
This function creates a new input_item_t as a copy of another.
Definition: item.c:1082
InputItemVaAddInfo
static int InputItemVaAddInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, va_list args)
Definition: item.c:715
rdh_slave
Definition: item.c:1492
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
VLC_VAR_ADDRESS
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
vlc_input_event
Definition: input_internal.h:261
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
info_category_t::infos
struct vlc_list infos
Infos in the category.
Definition: vlc_input_item.h:56
info_category_New
static info_category_t * info_category_New(const char *name)
Definition: info.h:46
EnsureUTF8
static char * EnsureUTF8(char *str)
Removes non-UTF-8 sequences.
Definition: vlc_charset.h:115
vlc_playlist_item
Definition: item.h:29
vlc_input_event::subitems
input_item_node_t * subitems
Definition: input_internal.h:295
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:1273
GuessType
static enum input_item_type_e GuessType(const input_item_t *p_item, bool *p_net)
Definition: item.c:1138
vlc_input_event::times
struct vlc_input_event_times times
Definition: input_internal.h:273
vlc_event_t
Definition: vlc_events.h:123
rdh_get_slave_priority
static uint8_t rdh_get_slave_priority(input_item_t *p_item, input_item_slave_t *p_slave, const char *psz_slave_filename)
Definition: item.c:1536
input_item_node_t::i_children
int i_children
Definition: vlc_input_item.h:197
ITEM_TYPE_CARD
@ ITEM_TYPE_CARD
Definition: vlc_input_item.h:65
asprintf
int asprintf(char **, const char *,...)
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.
Definition: item.c:538
vlc_epg_t::i_id
uint32_t i_id
Definition: vlc_epg.h:54
vlc_object_create
#define vlc_object_create(a, b)
Definition: vlc_objects.h:179
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.
Definition: item.c:652
input_item_SetArtNotFound
void input_item_SetArtNotFound(input_item_t *p_i, bool b_not_found)
Definition: item.c:96
input_item_opaque::next
struct input_item_opaque * next
Definition: item.c:63
item_type_entry
Definition: item.c:1122
input_item_SetEpg
void input_item_SetEpg(input_item_t *p_item, const vlc_epg_t *p_update, bool b_current_source)
Definition: item.c:886
TAB_ERASE
#define TAB_ERASE(count, tab, index)
Definition: vlc_arrays.h:92
vlc_meta_Title
@ vlc_meta_Title
Definition: vlc_meta.h:35
item_type_entry::b_net
bool b_net
Definition: item.c:1126
vlc_url_t::psz_host
char * psz_host
Definition: vlc_url.h:150
input_item_ApplyOptions
void input_item_ApplyOptions(vlc_object_t *obj, input_item_t *item)
Definition: item.c:567
slave_priority
slave_priority
Definition: vlc_input_item.h:149
vlc_epg_event_t::i_duration
uint32_t i_duration
Definition: vlc_epg.h:35
rdh_attach_slaves
static void rdh_attach_slaves(struct vlc_readdir_helper *p_rdh, input_item_node_t *p_parent_node)
Definition: item.c:1632
INPUT_EVENT_DEAD
@ INPUT_EVENT_DEAD
Definition: input_internal.h:83
filename_sanitize
void filename_sanitize(char *str)
Sanitize a file name.
Definition: strings.c:915
slave_type
slave_type
Definition: vlc_input_item.h:143
i_type
int i_type
Definition: httpd.c:1269
vlc_url_t::psz_protocol
char * psz_protocol
Definition: vlc_url.h:147
strcasestr
char * strcasestr(const char *, const char *)
INPUT_EVENT_STATE
@ INPUT_EVENT_STATE
Definition: input_internal.h:81
vlc_UrlParse
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:558
item_type_entry::i_type
enum input_item_type_e i_type
Definition: item.c:1125
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
input_item_owner::item
input_item_t item
Definition: item.h:35
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:79
es_format_t
Definition: vlc_es.h:617
input_item_SetArtFetched
void input_item_SetArtFetched(input_item_t *p_i, bool b_art_fetched)
Definition: item.c:112
vlc_atomic.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
input_item_SetPreparsed
void input_item_SetPreparsed(input_item_t *p_i, bool b_preparsed)
Definition: item.c:68
input_item_GetTitleFbName
char * input_item_GetTitleFbName(input_item_t *p_item)
Definition: item.c:255
vlc_readdir_helper::p_node
input_item_node_t * p_node
Definition: vlc_input_item.h:543
input_item_slave::b_forced
bool b_forced
Slave should be selected.
Definition: vlc_input_item.h:190
input_Close
void input_Close(input_thread_t *p_input)
Close an input.
Definition: input.c:215
vlc_epg_event_t::i_start
int64_t i_start
Definition: vlc_epg.h:34
vlc_interface.h
input_item_t::opaques
input_item_opaque_t * opaques
List of opaque pointer values.
Definition: vlc_input_item.h:86
input_item_IsPreparsed
bool input_item_IsPreparsed(input_item_t *p_item)
Definition: item.c:413
vlc_strings.h
rdh_dir
Definition: item.c:1499
vlc_meta_SetStatus
void vlc_meta_SetStatus(vlc_meta_t *m, int status)
Definition: meta.c:166
vlc_readdir_helper::pp_slaves
void ** pp_slaves
Definition: vlc_input_item.h:544
input_item_parser_id_t
Definition: item.c:1337
vlc_meta_Delete
void vlc_meta_Delete(vlc_meta_t *m)
Definition: meta.c:108
input_item_IsArtFetched
bool input_item_IsArtFetched(input_item_t *p_item)
Definition: item.c:422
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:107
input_item_MetaMatch
bool input_item_MetaMatch(input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
Definition: item.c:224
info_category_Delete
static void info_category_Delete(info_category_t *cat)
Definition: info.h:119
input_CreatePreparser
input_thread_t * input_CreatePreparser(vlc_object_t *parent, input_thread_events_cb events_cb, void *events_data, input_item_t *item)
Creates an item preparser.
Definition: input.c:144
vlc_epg_t::pp_event
vlc_epg_event_t ** pp_event
Definition: vlc_epg.h:57
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:79
input_item_GetNowPlayingFb
char * input_item_GetNowPlayingFb(input_item_t *p_item)
Definition: item.c:401
input_item_SetEpgEvent
void input_item_SetEpgEvent(input_item_t *p_item, const vlc_epg_event_t *p_epg_evt)
Definition: item.c:834
input_item_GetDuration
vlc_tick_t input_item_GetDuration(input_item_t *p_i)
Definition: item.c:367
vlc_meta_New
vlc_meta_t * vlc_meta_New(void)
vlc_meta contructor.
Definition: meta.c:90
input_item_parser_id_t::userdata
void * userdata
Definition: item.c:1342
ITEM_TYPE_UNKNOWN
@ ITEM_TYPE_UNKNOWN
Definition: vlc_input_item.h:61
vlc_event_manager_t
Definition: vlc_events.h:115
input_item_GetMeta
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition: item.c:245
ITEM_PREPARSED
#define ITEM_PREPARSED
Definition: vlc_meta.h:66
ITEM_TYPE_DIRECTORY
@ ITEM_TYPE_DIRECTORY
Definition: vlc_input_item.h:63
vlc_readdir_helper::i_slaves
size_t i_slaves
Definition: vlc_input_item.h:545
input_item_Release
void input_item_Release(input_item_t *p_item)
Releases an input item, i.e.
Definition: item.c:450
SLAVE_PRIORITY_MATCH_ALL
@ SLAVE_PRIORITY_MATCH_ALL
Definition: vlc_input_item.h:154
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:1281
vlc_playlist_item_GetMedia
input_item_t * vlc_playlist_item_GetMedia(vlc_playlist_item_t *item)
Return the media associated to the playlist item.
Definition: item.c:61
INIT_S
@ INIT_S
Definition: input_internal.h:66
input_item_parser_cbs_t
input item parser callbacks
Definition: vlc_input_item.h:399
vlc_playlist_item::id
uint64_t id
Definition: item.h:32
vlc_event_manager_fini
void vlc_event_manager_fini(vlc_event_manager_t *p_em)
Destroy the event manager.
Definition: events.c:79
vlc_epg_event_t::psz_description
char * psz_description
Definition: vlc_epg.h:40
rdh_compar_type
static int rdh_compar_type(input_item_t *p1, input_item_t *p2)
Definition: item.c:1413
input_item_node_t::p_item
input_item_t * p_item
Definition: vlc_input_item.h:196
rdh_name_from_filename
static char * rdh_name_from_filename(const char *psz_filename)
Definition: item.c:1505
VLC_INPUT_OPTION_UNIQUE
@ VLC_INPUT_OPTION_UNIQUE
Definition: vlc_input_item.h:243
input_item_SetErrorWhenReading
void input_item_SetErrorWhenReading(input_item_t *p_i, bool b_error)
Definition: item.c:50
vlc_event_manager_init
void vlc_event_manager_init(vlc_event_manager_t *p_em, void *p_obj)
Initialize event manager object p_obj is the object that contains the event manager.
Definition: events.c:65
input_item_owner::rc
vlc_atomic_rc_t rc
Definition: item.h:36
input_item_CreateFilename
char * input_item_CreateFilename(input_item_t *item, const char *dir, const char *filenamefmt, const char *ext)
This function creates a sane filename path.
Definition: item.c:1317
input_Stop
void input_Stop(input_thread_t *p_input)
Request a running input thread to stop and die.
Definition: input.c:192
input_item_SetMeta
void input_item_SetMeta(input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val)
Definition: item.c:128
vlc_url.h
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:694
input_item_parser_cbs_t::on_ended
void(* on_ended)(input_item_t *item, int status, void *userdata)
Event received when the parser ends.
Definition: vlc_input_item.h:410
vlc_epg_t
Definition: vlc_epg.h:51
vlc_url_t
Definition: vlc_url.h:145
InputItemFindCat
static info_category_t * InputItemFindCat(input_item_t *p_item, int *pi_index, const char *psz_cat)
Definition: item.c:666
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
vlc_readdir_helper::i_dirs
size_t i_dirs
Definition: vlc_input_item.h:547
vlc_filenamecmp
int vlc_filenamecmp(const char *a, const char *b)
Definition: strings.c:869
vlc_readdir_helper::psz_ignored_exts
char * psz_ignored_exts
Definition: vlc_input_item.h:551
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
rdh_file_has_ext
static bool rdh_file_has_ext(const char *psz_filename, const char *psz_ignored_exts)
Does the provided file name has one of the extension provided ?
Definition: item.c:1454
vlc_epg_event_t::psz_short_description
char * psz_short_description
Definition: vlc_epg.h:39
item_owner
#define item_owner(item)
Definition: item.h:39
INPUT_EVENT_TIMES
@ INPUT_EVENT_TIMES
Definition: input_internal.h:92
input_item_ChangeEPGSource
void input_item_ChangeEPGSource(input_item_t *p_item, int i_source_id)
Definition: item.c:963
vlc_playlist_item_New
vlc_playlist_item_t * vlc_playlist_item_New(input_item_t *media, uint64_t id)
Definition: item.c:31
input_item_DelInfo
int input_item_DelInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name)
Definition: item.c:759
input_item_opaque::name
char name[1]
Definition: item.c:65
input_interface.h
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_input_event::type
input_event_type_e type
Definition: input_internal.h:263
input_item_parser_id_t::cbs
const input_item_parser_cbs_t * cbs
Definition: item.c:1341
vlc_input_event_times::length
vlc_tick_t length
Definition: input_internal.h:166
VLC_INPUT_OPTION_TRUSTED
@ VLC_INPUT_OPTION_TRUSTED
Definition: vlc_input_item.h:239
strdup
char * strdup(const char *)
vlc_epg_event_t::psz_name
char * psz_name
Definition: vlc_epg.h:38
vlc_readdir_helper::b_show_hiddenfiles
bool b_show_hiddenfiles
Definition: vlc_input_item.h:549
var_InheritInteger
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
vlc_playlist_item_GetId
uint64_t vlc_playlist_item_GetId(vlc_playlist_item_t *item)
Return a unique id for the playlist item instance.
Definition: item.c:67
vlc_epg_t::b_present
bool b_present
Definition: vlc_epg.h:58
input_item_owner_t
struct input_item_owner input_item_owner_t
INPUT_EVENT_SUBITEMS
@ INPUT_EVENT_SUBITEMS
Definition: input_internal.h:134
vlc_epg_t::i_source_id
uint16_t i_source_id
Definition: vlc_epg.h:55
vlc_url_t::i_port
unsigned i_port
Definition: vlc_url.h:151
input_item_GetURI
char * input_item_GetURI(input_item_t *p_i)
Definition: item.c:289
info_category_VaAddInfo
static info_t * info_category_VaAddInfo(info_category_t *cat, const char *name, const char *format, va_list args)
Definition: info.h:78
input_GetItem
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.
Definition: input.c:247
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
input_Start
int input_Start(input_thread_t *p_input)
Start a input_thread_t created by input_Create.
Definition: input.c:167
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:1253
input_state_e
input_state_e
Input state.
Definition: input_internal.h:62
name
const char name[16]
Definition: httpd.c:1268
input_item_t::b_net
bool b_net
Net: always true for TYPE_STREAM, it depends for others types.
Definition: vlc_input_item.h:115
vlc_meta_GetStatus
int vlc_meta_GetStatus(vlc_meta_t *m)
vlc_meta status (see vlc_meta_status_e)
Definition: meta.c:161
input_item_slave::i_type
enum slave_type i_type
Slave type (spu, audio)
Definition: vlc_input_item.h:188
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:1797
vlc_readdir_helper_init
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.
Definition: item.c:1769
TAB_INIT
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:55
input_item_HasErrorWhenReading
bool input_item_HasErrorWhenReading(input_item_t *p_item)
Definition: item.c:213
vlc_readdir_helper::pp_dirs
void ** pp_dirs
Definition: vlc_input_item.h:546
entry
Definition: fourcc_gen.c:51
input_item_parser_id_t::state
input_state_e state
Definition: item.c:1340
input_item_slave
Definition: vlc_input_item.h:186
ITEM_ART_FETCHED
#define ITEM_ART_FETCHED
Definition: vlc_meta.h:67
vlc_epg_Delete
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:198
input_item_t::i_duration
vlc_tick_t i_duration
Duration in vlc ticks.
Definition: vlc_input_item.h:88
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:106
SLAVE_AUDIO_EXTENSIONS
#define SLAVE_AUDIO_EXTENSIONS
Definition: vlc_input_item.h:181
vlc_epg_event_Duplicate
vlc_epg_event_t * vlc_epg_event_Duplicate(const vlc_epg_event_t *p_src)
Returns a vlc_epg_event_t * duplicated from p_src.
Definition: epg.c:74
MASTER_EXTENSIONS
#define MASTER_EXTENSIONS
Definition: vlc_input_item.h:159
INPUT_DURATION_UNSET
#define INPUT_DURATION_UNSET
Definition: vlc_input_item.h:133
rdh_sort
static void rdh_sort(input_item_node_t *p_node)
Definition: item.c:1437
SLAVE_SPU_EXTENSIONS
#define SLAVE_SPU_EXTENSIONS
Definition: vlc_input_item.h:171
info_t
Definition: vlc_input_item.h:44
input_item_t::p_epg_table
const vlc_epg_t * p_epg_table
EPG timedate as epoch time.
Definition: vlc_input_item.h:104
vlc_epg_t::p_current
const vlc_epg_event_t * p_current
Definition: vlc_epg.h:59
input_item_owner
Definition: item.h:33
localtime_r
struct tm * localtime_r(const time_t *, struct tm *)
vlc_meta_Set
void vlc_meta_Set(vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val)
vlc_meta has two kinds of meta, the one in a table, and the one in a dictionary.
Definition: meta.c:122
rdh_file_is_ignored
static bool rdh_file_is_ignored(struct vlc_readdir_helper *p_rdh, const char *psz_filename)
Definition: item.c:1482
item.h
input_item_SetEpgTime
void input_item_SetEpgTime(input_item_t *p_item, int64_t i_time)
Definition: item.c:983
rdh_compar_filename
static int rdh_compar_filename(const void *a, const void *b)
Definition: item.c:1425
rdh_dir::psz_path
char psz_path[]
Definition: item.c:1502
vlc_object_delete
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
var_SetAddress
static int var_SetAddress(vlc_object_t *p_obj, const char *psz_name, void *ptr)
Set the value of a pointer variable.
Definition: vlc_variables.h:360
input_item_t::pp_epg
vlc_epg_t ** pp_epg
EPG entries.
Definition: vlc_input_item.h:102
vlc_playlist.h
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
info_category_ReplaceInfo
static void info_category_ReplaceInfo(info_category_t *cat, info_t *info)
Definition: info.h:67
input_item_SetErrorWhenReading
void input_item_SetErrorWhenReading(input_item_t *p_i, bool b_error)
Definition: item.c:50
ITEM_TYPE_STREAM
@ ITEM_TYPE_STREAM
Definition: vlc_input_item.h:66
SLAVE_PRIORITY_MATCH_NONE
@ SLAVE_PRIORITY_MATCH_NONE
Definition: vlc_input_item.h:151
vlc_uri_decode
char * vlc_uri_decode(char *str)
Decodes an URI component in place.
Definition: url.c:54
vlc_meta_ESNowPlaying
@ vlc_meta_ESNowPlaying
Definition: vlc_meta.h:48
vlc_readdir_helper::i_sub_autodetect_fuzzy
int i_sub_autodetect_fuzzy
Definition: vlc_input_item.h:548
vlc_readdir_helper
Access pf_readdir helper struct.
Definition: vlc_input_item.h:541
input_item_slave_Delete
#define input_item_slave_Delete(p_slave)
Definition: vlc_input_item.h:264
input_item_t::p_stats
input_stats_t * p_stats
Statistics.
Definition: vlc_input_item.h:97
input_item_IsMaster
static bool input_item_IsMaster(const char *psz_filename)
Definition: item.c:591
vlc_epg_Duplicate
vlc_epg_t * vlc_epg_Duplicate(const vlc_epg_t *p_src)
Returns a duplicated p_src and its associated events.
Definition: epg.c:221
input_thread_t
Main structure representing an input thread.
Definition: input_internal.h:48
input_item_SetURI
void input_item_SetURI(input_item_t *p_i, const char *psz_uri)
Definition: item.c:299
vlc_meta_type_t
vlc_meta_type_t
Definition: vlc_meta.h:33
input_item_node_t
Definition: vlc_input_item.h:194
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
input_item_UpdateTracksInfo
void input_item_UpdateTracksInfo(input_item_t *item, const es_format_t *fmt)
Definition: item.c:1288
input_item_Hold
input_item_t * input_item_Hold(input_item_t *p_item)
Holds an input item, i.e.
Definition: item.c:442
vlc_readdir_helper::b_flatten
bool b_flatten
Definition: vlc_input_item.h:550
input_item_Parse
input_item_parser_id_t * input_item_Parse(input_item_t *item, vlc_object_t *obj, const input_item_parser_cbs_t *cbs, void *userdata)
Parse an item asynchronously.
Definition: item.c:1376
input_item_ReplaceInfos
void input_item_ReplaceInfos(input_item_t *p_item, info_category_t *p_cat)
Definition: item.c:795
input_internal.h
vlc_atomic_rc_init
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
item_type_entry::psz_scheme
const char * psz_scheme
Definition: item.c:1124
ITEM_ART_NOTFOUND
#define ITEM_ART_NOTFOUND
Definition: vlc_meta.h:68
input_item_GetMetaLocked
const char * input_item_GetMetaLocked(input_item_t *item, vlc_meta_type_t meta_type)
Definition: item.c:237
vlc_url_t::psz_path
char * psz_path
Definition: vlc_url.h:152
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:436
vlc_atomic_rc_t
Definition: vlc_atomic.h:41
input_item_UpdateTracksInfo
void input_item_UpdateTracksInfo(input_item_t *item, const es_format_t *fmt)
Definition: item.c:1288
input_item_t::es
es_format_t ** es
Es formats.
Definition: vlc_input_item.h:95
input_item_parser_id_Release
void input_item_parser_id_Release(input_item_parser_id_t *parser)
Release (and interrupt if needed) a parser.
Definition: item.c:1406
vlc_epg_event_Delete
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:47
rdh_slave::p_slave
input_item_slave_t * p_slave
Definition: item.c:1494
input_item_ShouldPreparseSubItems
bool input_item_ShouldPreparseSubItems(input_item_t *p_i)
Definition: item.c:431
input_item_slave_GetType
bool input_item_slave_GetType(const char *psz_filename, enum slave_type *p_slave_type)
Definition: item.c:603
INPUT_DURATION_INDEFINITE
#define INPUT_DURATION_INDEFINITE
Definition: vlc_input_item.h:134
input_item_t::i_es
int i_es
Number of es format descriptions.
Definition: vlc_input_item.h:94
input_item_t::psz_uri
char * psz_uri
mrl of this item
Definition: vlc_input_item.h:80
vlc_playlist_item_Release
void vlc_playlist_item_Release(vlc_playlist_item_t *item)
Release a playlist item.
Definition: item.c:51
ITEM_TYPE_DISC
@ ITEM_TYPE_DISC
Definition: vlc_input_item.h:64
END_S
@ END_S
Definition: input_internal.h:70
vlc_event_send
void vlc_event_send(vlc_event_manager_t *p_em, vlc_event_t *p_event)
Send an event to the listener attached to this p_em.
Definition: events.c:97
input_item_slave::psz_uri
char psz_uri[]
Slave mrl.
Definition: vlc_input_item.h:191
input_item_SetEpgOffline
void input_item_SetEpgOffline(input_item_t *p_item)
Definition: item.c:990
info_t::psz_value
char * psz_value
Value of the info.
Definition: vlc_input_item.h:47
input_item_t::ppsz_options
char ** ppsz_options
Array of input options.
Definition: vlc_input_item.h:83