VLC  3.0.15
stream.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * stream.h: Input stream functions
3  *****************************************************************************
4  * Copyright (C) 1998-2008 VLC authors and VideoLAN
5  * Copyright (C) 2008 Laurent Aimar
6  * $Id: c481e7fe109f6d7d75f744f2dfbc06e20330b789 $
7  *
8  * Authors: 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 LIBVLC_INPUT_STREAM_H
26 #define LIBVLC_INPUT_STREAM_H 1
27 
28 #include <vlc_common.h>
29 #include <vlc_stream.h>
30 
31 /* */
32 void stream_CommonDelete( stream_t *s );
33 
34 /**
35  * This function creates a raw stream_t from an URL.
36  */
37 stream_t *stream_AccessNew(vlc_object_t *, input_thread_t *, bool, const char *);
38 
39 /**
40  * Probes stream filters automatically.
41  *
42  * This function automatically and repeatedly probes for applicable stream
43  * filters to append downstream of an existing stream. Any such filter will
44  * convert the stream into another stream, e.g. decompressing it or extracting
45  * the list of contained files (playlist).
46  *
47  * This function transfers ownership of the supplied stream to the following
48  * stream filter, of the first stream filter to the second stream filter, and
49  * so on. Any attempt to access the original stream filter directly is
50  * explicitly undefined.
51  *
52  * If, and only if, no filters were probed succesfully, a pointer to the
53  * unchanged source stream will be returned. Otherwise, this returns a stream
54  * filter. The return value is thus guaranteed to be non-NULL.
55  *
56  * @param source input stream around which to build a filter chain
57  *
58  * @return the last, most downstream stream object.
59  *
60  * @note The return value must be freed with vlc_stream_Delete() after use.
61  * This will automatically free the whole chain and the underlying stream.
62  */
64 
65 /**
66  * Builds an explicit chain of stream filters.
67  *
68  * This function creates a chain of filters according to a supplied list.
69  *
70  * See also stream_FilterAutoNew(). Those two functions have identical
71  * semantics; the only difference lies in how the list of probed filters is
72  * determined (manually versus automatically).
73  *
74  * If the list is empty, or if probing each of the requested filters failed,
75  * this function will return a pointer to the supplied source stream.
76  *
77  * @param source input stream around which to build a filter chain
78  * @param list colon-separated list of stream filters (upstream first)
79  *
80  * @return The last stream (filter) in the chain.
81  * The return value is always a valid (non-NULL) stream pointer.
82  */
83 stream_t *stream_FilterChainNew( stream_t *source, const char *list ) VLC_USED;
84 
85 /**
86  * Attach \ref stream_extractor%s according to specified data
87  *
88  * This function will parse the passed data, and try to attach a \ref
89  * stream_extractor for each specified entity as per the fragment specification
90  * associated with a \ref mrl,
91  *
92  * \warning The data in `*stream` can be modified even if this function only
93  * locates some of the entities specified in `psz_data`. It is up to
94  * the caller to free the resource referred to by `*stream`, no matter
95  * what this function returns.
96  *
97  * \warning Please see \ref vlc_stream_extractor_Attach for a function that
98  * will not modify the passed stream upon failure. \ref
99  * stream_extractor_AttachParsed shall only be used when the caller
100  * only cares about the stream on successful attachment of **all**
101  * stream-extractors referred to by `psz_data`, something which is not
102  * guaranteed.
103  *
104  * \param[out] source a pointer-to-pointer to stream where the attached
105  * stream-extractor will be applied. `*stream` will refer
106  * to the last successful attachment.
107  * \param[out] out_extra `*out_extra` will point to any additional data
108  * in `psz_data` that does not specify an entity (if any).
109  * \return VLC_SUCCESS on success, an error-code on failure
110  **/
111 int stream_extractor_AttachParsed( stream_t** stream, const char* psz_data,
112  char const** out_extra );
113 
114 char *get_path(const char *location);
115 
116 #endif
playlist_t
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
count
size_t count
Definition: core.c:461
input_thread_private_t::counters
struct input_thread_private_t::@27 counters
vlc_stream_ReadRaw
static ssize_t vlc_stream_ReadRaw(stream_t *s, void *buf, size_t len)
Definition: stream.c:387
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:46
vlc_stream_ReadPartial
ssize_t vlc_stream_ReadPartial(stream_t *s, void *buf, size_t len)
Reads partial data from a byte stream.
Definition: stream.c:431
vlc_iconv
size_t vlc_iconv(vlc_iconv_t, const char **, size_t *, char **, size_t *)
vlc_stream_vaControl
int vlc_stream_vaControl(stream_t *s, int cmd, va_list args)
Use to control the "stream_t *".
Definition: stream.c:655
playlist_NodeCreate
playlist_item_t * playlist_NodeCreate(playlist_t *p_playlist, const char *psz_name, playlist_item_t *p_parent, int i_pos, int i_flags)
Create a playlist node.
Definition: tree.c:56
stream_CommonDelete
void stream_CommonDelete(stream_t *s)
Definition: stream.c:101
services_discovery_t
Main service discovery structure to build a SD module.
Definition: vlc_services_discovery.h:54
stream_priv_t::peek
block_t * peek
Definition: stream.c:73
playlist_NodeAddInput
playlist_item_t * playlist_NodeAddInput(playlist_t *p_playlist, input_item_t *p_input, playlist_item_t *p_parent, int i_pos)
Add an input item to a given node.
Definition: item.c:517
counter_sample_t::date
mtime_t date
Definition: libvlc.h:230
stats_ReinitInputStats
void stats_ReinitInputStats(input_stats_t *p_stats)
Definition: stats.c:123
vlc_common.h
playlist_item_t
playlist item / node
Definition: vlc_playlist.h:126
vlc_probe
#define vlc_probe(obj, cap, pcount)
Definition: vlc_probe.h:36
vlc_sd_internal_t::node
playlist_item_t * node
Definition: services_discovery.c:55
playlist_Lock
void playlist_Lock(playlist_t *pl)
Locks the playlist.
Definition: control.c:35
stream_t::pf_block
block_t *(* pf_block)(stream_t *, bool *eof)
Read data block.
Definition: vlc_stream.h:95
vlc_probe_t
Definition: vlc_probe.h:39
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:116
stats_GetTotal
static int64_t stats_GetTotal(const counter_t *counter)
Definition: stats.c:51
vlc_interrupt.h
input_thread_private_t::p_sout_send_bitrate
counter_t * p_sout_send_bitrate
Definition: input_internal.h:161
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:58
stats_Update
void stats_Update(counter_t *p_counter, uint64_t val, uint64_t *new_val)
Update a counter element with new values.
Definition: stats.c:157
input_thread_private_t::p_demux_corrupted
counter_t * p_demux_corrupted
Definition: input_internal.h:154
vlc_access.h
vlc_stream_Eof
bool vlc_stream_Eof(const stream_t *s)
Checks for end of stream.
Definition: stream.c:586
stream_AccessNew
stream_t * stream_AccessNew(vlc_object_t *, input_thread_t *, bool, const char *)
This function creates a raw stream_t from an URL.
Definition: access.c:270
vlc_stream_NewURL
stream_t *() vlc_stream_NewURL(vlc_object_t *p_parent, const char *psz_url)
Create a stream_t reading from a URL.
Definition: stream.c:128
input_thread_private_t::p_demux_bitrate
counter_t * p_demux_bitrate
Definition: input_internal.h:153
playlist_t::root
playlist_item_t root
Definition: vlc_playlist.h:161
STREAM_SET_SEEKPOINT
arg1= int res=can fail
Definition: vlc_stream.h:160
PLAYLIST_DELETE_FORCE
#define PLAYLIST_DELETE_FORCE
delete node even if read-only
Definition: playlist_internal.h:135
vlc_charset.h
stream_FilterChainNew
stream_t * stream_FilterChainNew(stream_t *source, const char *list)
Builds an explicit chain of stream filters.
Definition: stream_filter.c:86
playlist_private_t
Definition: playlist_internal.h:46
vlc_sd_probe_t::category
int category
Definition: services_discovery.c:58
counter_t::i_samples
int i_samples
Definition: libvlc.h:236
libvlc_stats
#define libvlc_stats(o)
Definition: libvlc.h:207
playlist_item_t::i_children
int i_children
Number of children, -1 if not a node.
Definition: vlc_playlist.h:132
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
input_thread_private_t::p_played_abuffers
counter_t * p_played_abuffers
Definition: input_internal.h:162
counter_t::i_compute_type
int i_compute_type
Definition: libvlc.h:235
input_thread_private_t::p_demux_discontinuity
counter_t * p_demux_discontinuity
Definition: input_internal.h:155
STREAM_SET_TITLE
arg1= int res=can fail
Definition: vlc_stream.h:159
input_stats_t::i_decoded_video
int64_t i_decoded_video
Definition: vlc_input_item.h:410
vlc_memory.h
input_stats_t
Definition: vlc_input_item.h:389
input_thread_private_t::counters_lock
vlc_mutex_t counters_lock
Definition: input_internal.h:166
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
input_stats_t::i_lost_pictures
int64_t i_lost_pictures
Definition: vlc_input_item.h:414
vlc_stream_CopyBlock
static ssize_t vlc_stream_CopyBlock(block_t **restrict pp, void *buf, size_t len)
Definition: stream.c:361
input_stats_t::i_played_abuffers
int64_t i_played_abuffers
Definition: vlc_input_item.h:422
stats_CounterCreate
counter_t * stats_CounterCreate(int i_compute_type)
Create a statistics counter.
Definition: stats.c:37
stream_priv_t::conv
vlc_iconv_t conv
Definition: stream.c:79
U16_AT
static uint16_t U16_AT(const void *p)
Reads 16 bits in network byte order.
Definition: vlc_common.h:792
vlc_sd_probe_t
Definition: services_discovery.c:34
input_stats_t::f_input_bitrate
float f_input_bitrate
Definition: vlc_input_item.h:397
services_discovery_t::p_module
module_t * p_module
Loaded module.
Definition: vlc_services_discovery.h:57
stream_priv_t
struct stream_priv_t stream_priv_t
vlc_sd_internal_t::name
char name[]
Definition: services_discovery.c:57
STATS_COUNTER
Definition: libvlc.h:223
vlc_stream_ReadBlock
block_t * vlc_stream_ReadBlock(stream_t *s)
Reads a data block from a byte stream.
Definition: stream.c:529
vlc_iconv_t
void * vlc_iconv_t
Definition: vlc_charset.h:113
counter_sample_t
Definition: libvlc.h:227
TAB_ERASE
#define TAB_ERASE(count, tab, index)
Definition: vlc_arrays.h:77
stream_t::pf_readdir
int(* pf_readdir)(stream_t *, input_item_node_t *)
Read directory.
Definition: vlc_stream.h:105
input_stats_t::f_send_bitrate
float f_send_bitrate
Definition: vlc_input_item.h:419
playlist_ServicesDiscoveryAdd
int playlist_ServicesDiscoveryAdd(playlist_t *playlist, const char *chain)
Add a service discovery module.
Definition: services_discovery.c:112
vlc_killed
bool vlc_killed(void)
Checks if the interruption context was "killed".
Definition: interrupt.c:186
vlc_common_members::parent
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
input_thread_private_t::p_lost_pictures
counter_t * p_lost_pictures
Definition: input_internal.h:165
CLOCK_FREQ
#define CLOCK_FREQ
Definition: vlc_config.h:45
stream_priv_t::char_width
unsigned char char_width
Definition: stream.c:80
stream_priv_t::little_endian
bool little_endian
Definition: stream.c:81
stream_priv_t
Definition: stream.c:47
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
playlist_private_t::i_sds
int i_sds
Number of service discovery modules.
Definition: playlist_internal.h:56
stream_t::p_module
module_t * p_module
Definition: vlc_stream.h:51
input_stats_t::f_demux_bitrate
float f_demux_bitrate
Definition: vlc_input_item.h:403
input_stats_t::i_displayed_pictures
int64_t i_displayed_pictures
Definition: vlc_input_item.h:413
services_discovery_t::description
const char * description
Human-readable name.
Definition: vlc_services_discovery.h:62
stream_extractor_AttachParsed
int stream_extractor_AttachParsed(stream_t **stream, const char *psz_data, char const **out_extra)
Attach Stream Extractors according to specified data.
Definition: stream_extractor.c:346
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vlc_stream_CommonNew
stream_t * vlc_stream_CommonNew(vlc_object_t *parent, void(*destroy)(stream_t *))
Allocates a VLC stream object.
Definition: stream.c:67
playlist_sd_item_removed
static void playlist_sd_item_removed(services_discovery_t *sd, input_item_t *p_input)
Definition: services_discovery.c:78
input_stats_t::i_demux_discontinuity
int64_t i_demux_discontinuity
Definition: vlc_input_item.h:406
playlist_item_t::p_parent
playlist_item_t * p_parent
Item parent.
Definition: vlc_playlist.h:131
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:60
STREAM_PROBE_LINE
#define STREAM_PROBE_LINE
Read from the stream until first newline.
Definition: stream.c:170
TAB_INSERT
#define TAB_INSERT(count, tab, p, index)
Definition: vlc_arrays.h:113
counter_t
Definition: libvlc.h:233
playlist_ServicesDiscoveryKillAll
void playlist_ServicesDiscoveryKillAll(playlist_t *playlist)
Definition: services_discovery.c:246
stream_t::pf_seek
int(* pf_seek)(stream_t *, uint64_t)
Seek.
Definition: vlc_stream.h:114
stream_t::psz_url
char * psz_url
Full URL or MRL (can be NULL)
Definition: vlc_stream.h:54
stream_FilterAutoNew
stream_t * stream_FilterAutoNew(stream_t *source)
Probes stream filters automatically.
Definition: stream_filter.c:70
input_thread_private_t
Private input fields.
Definition: input_internal.h:83
realloc_or_free
static void * realloc_or_free(void *p, size_t sz)
This wrapper around realloc() will free the input pointer when realloc() returns NULL.
Definition: vlc_memory.h:42
input_thread_private_t::p_displayed_pictures
counter_t * p_displayed_pictures
Definition: input_internal.h:164
vlc_stream_extractor.h
block_Release
static void block_Release(block_t *block)
Releases a block.
Definition: vlc_block.h:181
input_stats_t::lock
vlc_mutex_t lock
Definition: vlc_input_item.h:392
stream.h
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
vlc_stream_Peek
ssize_t vlc_stream_Peek(stream_t *s, const uint8_t **restrict bufp, size_t len)
Definition: stream.c:475
playlist_ServicesDiscoveryControl
int playlist_ServicesDiscoveryControl(playlist_t *playlist, const char *psz_name, int i_control,...)
Query a services discovery.
Definition: services_discovery.c:220
playlist_internal.h
vlc_stream_ReadDir
int vlc_stream_ReadDir(stream_t *s, input_item_node_t *p_node)
Returns a node containing all the input_item of the directory pointer by this stream.
Definition: stream.c:721
stream_t::p_input
input_thread_t * p_input
Definition: vlc_stream.h:131
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
vlc_services_discovery.h
input_thread_private_t::p_read_bytes
counter_t * p_read_bytes
Definition: input_internal.h:150
PLAYLIST_DELETE_STOP_IF_CURRENT
#define PLAYLIST_DELETE_STOP_IF_CURRENT
stop playlist playback if node is currently the one played
Definition: playlist_internal.h:136
mrl_helpers.h
input_stats_t::i_demux_corrupted
int64_t i_demux_corrupted
Definition: vlc_input_item.h:405
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
playlist_IsServicesDiscoveryLoaded
bool playlist_IsServicesDiscoveryLoaded(playlist_t *playlist, const char *psz_name)
Check whether a given SD is loaded.
Definition: services_discovery.c:199
stream_t
stream_t definition
Definition: vlc_stream.h:46
PLAYLIST_RO_FLAG
Write-enabled ?
Definition: vlc_playlist.h:141
vlc_iconv_open
vlc_iconv_t vlc_iconv_open(const char *, const char *)
stream_priv_t::text
struct stream_priv_t::@28 text
vlc_stream_Seek
int vlc_stream_Seek(stream_t *s, uint64_t offset)
Sets the current stream position.
Definition: stream.c:593
input_stats_t::i_demux_read_packets
int64_t i_demux_read_packets
Definition: vlc_input_item.h:401
STREAM_LINE_MAX
#define STREAM_LINE_MAX
Definition: stream.c:171
vlc_stream_Read
ssize_t vlc_stream_Read(stream_t *s, void *buf, size_t len)
Reads data from a byte stream.
Definition: stream.c:453
services_discovery_t::owner
struct services_discovery_owner_t owner
Owner callbacks.
Definition: vlc_services_discovery.h:71
config_ChainCreate
char * config_ChainCreate(char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
This function will parse a configuration string (psz_string) and.
Definition: chain.c:225
vlc_sd_probe_t::name
char * name
Definition: services_discovery.c:56
vlc_sd_probe_t::longname
char * longname
Definition: services_discovery.c:57
stats_NewInputStats
input_stats_t * stats_NewInputStats(input_thread_t *p_input)
Definition: stats.c:67
playlist_NodeDeleteExplicit
void playlist_NodeDeleteExplicit(playlist_t *, playlist_item_t *, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
stream_t::pf_control
int(* pf_control)(stream_t *, int i_query, va_list)
Stream control.
Definition: vlc_stream.h:123
input_thread_private_t::p_decoded_audio
counter_t * p_decoded_audio
Definition: input_internal.h:156
stream_priv_t::stream
stream_t stream
Definition: stream.c:70
stats_ComputeInputStats
void stats_ComputeInputStats(input_thread_t *input, input_stats_t *st)
Definition: stats.c:80
counter_sample_t::value
uint64_t value
Definition: libvlc.h:229
services_discovery_owner_t
Definition: vlc_services_discovery.h:43
input_stats_t::i_sent_packets
int64_t i_sent_packets
Definition: vlc_input_item.h:417
likely
#define likely(p)
Definition: vlc_common.h:113
stream_t::p_source
stream_t * p_source
Definition: vlc_stream.h:60
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
vlc_stream_Block
block_t * vlc_stream_Block(stream_t *s, size_t size)
Read data into a block.
Definition: stream.c:697
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
vlc_probe.h
vlc_stream.h
STATS_DERIVATIVE
Definition: libvlc.h:224
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
vlc_sd_control
static int vlc_sd_control(services_discovery_t *p_sd, int i_control, va_list args)
Ask for a research in the SD.
Definition: vlc_services_discovery.h:126
counter_t::pp_samples
counter_sample_t ** pp_samples
Definition: libvlc.h:237
playlist_sd_item_added
static void playlist_sd_item_added(services_discovery_t *sd, input_item_t *parent, input_item_t *p_input, const char *psz_cat)
Definition: services_discovery.c:41
strdup
char * strdup(const char *)
input_thread_private_t::p_read_packets
counter_t * p_read_packets
Definition: input_internal.h:149
services_discovery_t::obj
struct vlc_common_members obj
Definition: vlc_services_discovery.h:56
VLC_USED
#define VLC_USED
Definition: fourcc_gen.c:31
vlc_iconv_close
int vlc_iconv_close(vlc_iconv_t)
stream_AccessNew
stream_t * stream_AccessNew(vlc_object_t *parent, input_thread_t *input, bool preparsing, const char *url)
This function creates a raw stream_t from an URL.
Definition: access.c:270
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
input_priv
static input_thread_private_t * input_priv(input_thread_t *input)
Definition: input_internal.h:179
input_thread_private_t::p_lost_abuffers
counter_t * p_lost_abuffers
Definition: input_internal.h:163
vlc_block.h
playlist_ChildSearchName
playlist_item_t * playlist_ChildSearchName(playlist_item_t *p_node, const char *psz_search)
Search a child of a node by its name.
Definition: tree.c:175
list
module_config_t ** list
Definition: core.c:460
PLAYLIST_END
#define PLAYLIST_END
Definition: vlc_playlist.h:204
input_thread_private_t::p_decoded_video
counter_t * p_decoded_video
Definition: input_internal.h:157
counter_t::last_update
mtime_t last_update
Definition: libvlc.h:239
name
const char name[16]
Definition: httpd.c:1249
stream_t::pf_read
ssize_t(* pf_read)(stream_t *, void *buf, size_t len)
Read data.
Definition: vlc_stream.h:77
services_discovery_t::p_cfg
config_chain_t * p_cfg
Configuration for the SD.
Definition: vlc_services_discovery.h:60
entry
Definition: fourcc_gen.c:50
VLC_PROBE_CONTINUE
#define VLC_PROBE_CONTINUE
Definition: vlc_probe.h:62
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
services_discovery_t::psz_name
char * psz_name
Main name of the SD.
Definition: vlc_services_discovery.h:59
pl_priv
#define pl_priv(pl)
Definition: playlist_internal.h:95
block_Alloc
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:119
playlist_ServicesDiscoveryRemove
int playlist_ServicesDiscoveryRemove(playlist_t *playlist, const char *name)
Remove a services discovery module by name.
Definition: services_discovery.c:167
input_stats_t::i_read_bytes
int64_t i_read_bytes
Definition: vlc_input_item.h:396
playlist_ItemGetByInput
playlist_item_t * playlist_ItemGetByInput(playlist_t *p_playlist, const input_item_t *item)
Finds a playlist item by input item.
Definition: item.c:406
stream_priv_t::offset
uint64_t offset
Definition: stream.c:74
get_path
char * get_path(const char *location)
Definition: access.c:42
libvlc.h
services_discovery_owner_t::sys
void * sys
Private data for the owner callbacks.
Definition: vlc_services_discovery.h:45
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
vlc_sd_internal_t
Definition: services_discovery.c:32
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
stream_CommonDelete
void stream_CommonDelete(stream_t *s)
Definition: stream.c:101
vlc_playlist.h
input_stats_t::i_lost_abuffers
int64_t i_lost_abuffers
Definition: vlc_input_item.h:423
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:115
playlist_Unlock
void playlist_Unlock(playlist_t *pl)
Unlocks the playlist.
Definition: control.c:40
stats_CounterClean
void stats_CounterClean(counter_t *p_c)
Definition: stats.c:139
vlc_stream_Tell
uint64_t vlc_stream_Tell(const stream_t *s)
Tells the current stream position.
Definition: stream.c:579
vlc_stream_ReadLine
char * vlc_stream_ReadLine(stream_t *s)
Definition: stream.c:172
stream_priv_t::block
block_t * block
Definition: stream.c:72
vlc_sd_internal_t::sd
services_discovery_t * sd
Loaded service discovery modules.
Definition: services_discovery.c:56
vlc_probe_add
static int vlc_probe_add(vlc_probe_t *obj, const void *data, size_t len)
Definition: vlc_probe.h:49
input_thread_private_t::p_input_bitrate
counter_t * p_input_bitrate
Definition: input_internal.h:151
input_thread_t
Main structure representing an input thread.
Definition: vlc_input.h:221
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
input_item_node_t
Definition: vlc_input_item.h:180
input_thread_private_t::p_sout_sent_packets
counter_t * p_sout_sent_packets
Definition: input_internal.h:159
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
stream_priv_t::destroy
void(* destroy)(stream_t *)
Definition: stream.c:71
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
input_thread_private_t::p_sout_sent_bytes
counter_t * p_sout_sent_bytes
Definition: input_internal.h:160
input_stats_t::i_read_packets
int64_t i_read_packets
Definition: vlc_input_item.h:395
input_internal.h
input_thread_private_t::p_demux_read
counter_t * p_demux_read
Definition: input_internal.h:152
vlc_stream_NewMRL
stream_t *() vlc_stream_NewMRL(vlc_object_t *parent, const char *mrl)
Create a stream for the data referred to by a Media Resource Locator (MRL).
Definition: stream.c:139
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
vlc_sd_probe_Add
int vlc_sd_probe_Add(vlc_probe_t *probe, const char *name, const char *longname, int category)
Definition: services_discovery.c:41
stream_t::p_sys
void * p_sys
Private data pointer.
Definition: vlc_stream.h:128
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
block_t
Definition: vlc_block.h:111
config_ChainDestroy
void config_ChainDestroy(config_chain_t *p_cfg)
This function will release a linked list of config_chain_t (Including the head)
Definition: chain.c:253
vlc_sd_Destroy
void vlc_sd_Destroy(services_discovery_t *sd)
Definition: services_discovery.c:130
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
input_stats_t::i_decoded_audio
int64_t i_decoded_audio
Definition: vlc_input_item.h:409
playlist_ServicesDiscoveryInternalRemoveLocked
static void playlist_ServicesDiscoveryInternalRemoveLocked(playlist_t *playlist, vlc_sd_internal_t *sds)
Definition: services_discovery.c:149
stats_GetRate
static float stats_GetRate(const counter_t *counter)
Definition: stats.c:58
input_stats_t::i_sent_bytes
int64_t i_sent_bytes
Definition: vlc_input_item.h:418
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
stream_priv_t::eof
bool eof
Definition: stream.c:75
vlc_sd_Create
services_discovery_t * vlc_sd_Create(vlc_object_t *parent, const char *cfg, const struct services_discovery_owner_t *restrict owner)
Definition: services_discovery.c:106
p
#define p(t)
block_TryRealloc
block_t * block_TryRealloc(block_t *p_block, ssize_t i_prebody, size_t i_body)
Definition: block.c:147
vlc_modules.h
vlc_stream_Delete
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:120
vlc_sd_GetNames
char ** vlc_sd_GetNames(vlc_object_t *obj, char ***pppsz_longnames, int **pp_categories)
Gets the list of available services discovery plugins.
Definition: services_discovery.c:61
playlist_private_t::pp_sds
vlc_sd_internal_t ** pp_sds
Definition: playlist_internal.h:55