VLC 4.0.0-dev
|
Demultiplexers wrapped by another demultiplexer. More...
Typedefs | |
typedef struct vlc_demux_chained_t | vlc_demux_chained_t |
Functions | |
vlc_demux_chained_t * | vlc_demux_chained_New (vlc_object_t *parent, const char *name, es_out_t *out) |
Creates a chained demuxer. More... | |
void | vlc_demux_chained_Delete (vlc_demux_chained_t *) |
Destroys a chained demuxer. More... | |
void | vlc_demux_chained_Send (vlc_demux_chained_t *, block_t *block) |
Sends data to a chained demuxer. More... | |
int | vlc_demux_chained_ControlVa (vlc_demux_chained_t *, int query, va_list args) |
Controls a chained demuxer. More... | |
static int | vlc_demux_chained_Control (vlc_demux_chained_t *dc, int query,...) |
Demultiplexers wrapped by another demultiplexer.
typedef struct vlc_demux_chained_t vlc_demux_chained_t |
|
inlinestatic |
References vlc_demux_chained_ControlVa().
int vlc_demux_chained_ControlVa | ( | vlc_demux_chained_t * | dc, |
int | query, | ||
va_list | args | ||
) |
Controls a chained demuxer.
This performs a demux (i.e. DEMUX_...) control request on a chained demux.
query | demux control (see demux_query_e) |
args | variable arguments (depending on the query) |
References DEMUX_GET_LENGTH, DEMUX_GET_POSITION, DEMUX_GET_TIME, vlc_demux_chained_t::length, vlc_demux_chained_t::lock, vlc_demux_chained_t::position, vlc_demux_chained_t::stats, vlc_demux_chained_t::time, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.
Referenced by Control(), and vlc_demux_chained_Control().
void vlc_demux_chained_Delete | ( | vlc_demux_chained_t * | dc | ) |
Destroys a chained demuxer.
Sends an end-of-stream to the chained demuxer, and releases all underlying allocated resources.
References vlc_demux_chained_t::thread, vlc_join(), vlc_stream_fifo_Close(), and vlc_demux_chained_t::writer.
Referenced by vlc_rtp_es_mux_destroy().
vlc_demux_chained_t * vlc_demux_chained_New | ( | vlc_object_t * | parent, |
const char * | name, | ||
es_out_t * | out | ||
) |
Creates a chained demuxer.
This creates a thread running a demuxer whose input stream is generated directly by the caller. This typically handles some sort of stream within a stream, e.g. MPEG-TS within something else.
parent | parent VLC object |
name | chained demux module name (e.g. "ts") |
out | elementary stream output for the chained demux |
References vlc_demux_chained_t::length, vlc_demux_chained_t::lock, name, vlc_demux_chained_t::name, vlc_demux_chained_t::out, vlc_demux_chained_t::position, vlc_demux_chained_t::reader, vlc_demux_chained_t::stats, vlc_demux_chained_t::thread, vlc_demux_chained_t::time, unlikely, vlc_clone(), vlc_demux_chained_Thread(), vlc_mutex_init(), vlc_stream_Delete(), vlc_stream_fifo_Close(), vlc_stream_fifo_New(), and vlc_demux_chained_t::writer.
Referenced by vlc_rtp_mux_request().
void vlc_demux_chained_Send | ( | vlc_demux_chained_t * | dc, |
block_t * | block | ||
) |
Sends data to a chained demuxer.
This queues data for a chained demuxer to consume.
block | data block to queue |
References vlc_stream_fifo_Queue(), and vlc_demux_chained_t::writer.
Referenced by vlc_rtp_es_mux_send().