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

Data Structures

struct  vlc_stream_filter_private
 

Functions

static void StreamDelete (stream_t *s)
 
stream_tvlc_stream_FilterNew (stream_t *p_source, const char *psz_stream_filter)
 Try to add a stream filter to an open stream.
 
stream_tstream_FilterAutoNew (stream_t *p_source)
 Probes stream filters automatically.
 
stream_tstream_FilterChainNew (stream_t *p_source, const char *psz_chain)
 Builds an explicit chain of stream filters.
 

Function Documentation

◆ stream_FilterAutoNew()

stream_t * stream_FilterAutoNew ( stream_t source)

Probes stream filters automatically.

This function automatically and repeatedly probes for applicable stream filters to append downstream of an existing stream. Any such filter will convert the stream into another stream, e.g. decompressing it or extracting the list of contained files (playlist).

This function transfers ownership of the supplied stream to the following stream filter, of the first stream filter to the second stream filter, and so on. Any attempt to access the original stream filter directly is explicitly undefined.

If, and only if, no filters were probed successfully, a pointer to the unchanged source stream will be returned. Otherwise, this returns a stream filter. The return value is thus guaranteed to be non-NULL.

Parameters
sourceinput stream around which to build a filter chain
Returns
the last, most downstream stream object.
Note
The return value must be freed with vlc_stream_Delete() after use. This will automatically free the whole chain and the underlying stream.

References msg_Dbg, and vlc_stream_FilterNew().

Referenced by InputDemuxNew(), and vlc_stream_NewURL().

◆ stream_FilterChainNew()

stream_t * stream_FilterChainNew ( stream_t source,
const char *  list 
)

Builds an explicit chain of stream filters.

This function creates a chain of filters according to a supplied list.

See also stream_FilterAutoNew(). Those two functions have identical semantics; the only difference lies in how the list of probed filters is determined (manually versus automatically).

If the list is empty, or if probing each of the requested filters failed, this function will return a pointer to the supplied source stream.

Parameters
sourceinput stream around which to build a filter chain
listcolon-separated list of stream filters (upstream first)
Returns
The last stream (filter) in the chain. The return value is always a valid (non-NULL) stream pointer.

References msg_Warn, name, strdup(), strtok_r(), unlikely, and vlc_stream_FilterNew().

Referenced by InputDemuxNew(), se_AttachWrapper(), and stream_AccessNew().

◆ StreamDelete()

static void StreamDelete ( stream_t s)
static