VLC
3.0.15
|
Modules | |
Chained demultiplexer | |
Demultiplexers wrapped by another demultiplexer. | |
Files | |
file | vlc_demux.h |
Data Structures | |
struct | demux_t |
struct | demux_meta_t |
Macros | |
#define | VLC_DEMUXER_EOF 0 |
#define | VLC_DEMUXER_EGENERIC -1 |
#define | VLC_DEMUXER_SUCCESS 1 |
#define | INPUT_UPDATE_TITLE 0x0010 |
#define | INPUT_UPDATE_SEEKPOINT 0x0020 |
#define | INPUT_UPDATE_META 0x0040 |
#define | INPUT_UPDATE_TITLE_LIST 0x0100 |
#define | DEMUX_INIT_COMMON() |
Typedefs | |
typedef struct demux_meta_t | demux_meta_t |
Enumerations | |
enum | demux_query_e { DEMUX_CAN_SEEK, DEMUX_CAN_PAUSE = 0x002, DEMUX_CAN_CONTROL_PACE, DEMUX_GET_PTS_DELAY = 0x101, DEMUX_GET_META = 0x105, DEMUX_GET_SIGNAL = 0x107, DEMUX_SET_PAUSE_STATE = 0x200, DEMUX_SET_TITLE, DEMUX_SET_SEEKPOINT, DEMUX_TEST_AND_CLEAR_FLAGS, DEMUX_GET_TITLE, DEMUX_GET_SEEKPOINT, DEMUX_GET_POSITION = 0x300, DEMUX_SET_POSITION, DEMUX_GET_LENGTH, DEMUX_GET_TIME, DEMUX_SET_TIME, DEMUX_GET_TITLE_INFO, DEMUX_SET_GROUP, DEMUX_SET_ES, DEMUX_SET_NEXT_DEMUX_TIME, DEMUX_GET_FPS, DEMUX_HAS_UNSUPPORTED_META, DEMUX_GET_ATTACHMENTS, DEMUX_CAN_RECORD, DEMUX_SET_RECORD_STATE, DEMUX_CAN_CONTROL_RATE, DEMUX_SET_RATE, DEMUX_IS_PLAYLIST, DEMUX_NAV_ACTIVATE, DEMUX_NAV_UP, DEMUX_NAV_DOWN, DEMUX_NAV_LEFT, DEMUX_NAV_RIGHT, DEMUX_NAV_POPUP, DEMUX_NAV_MENU, DEMUX_FILTER_ENABLE, DEMUX_FILTER_DISABLE } |
Control query identifiers for use with demux_t.pf_control. More... | |
Functions | |
demux_t * | demux_New (vlc_object_t *p_obj, const char *psz_name, const char *psz_path, stream_t *s, es_out_t *out) |
void | demux_Delete (demux_t *) |
int | demux_vaControlHelper (stream_t *, int64_t i_start, int64_t i_end, int64_t i_bitrate, int i_align, int i_query, va_list args) |
static int | demux_Demux (demux_t *p_demux) |
int | demux_vaControl (demux_t *p_demux, int i_query, va_list args) |
static int | demux_Control (demux_t *p_demux, int i_query,...) |
static void | demux_UpdateTitleFromStream (demux_t *demux) |
static bool | demux_IsPathExtension (demux_t *p_demux, const char *psz_extension) |
static bool | demux_IsContentType (demux_t *demux, const char *type) |
static bool | demux_IsForced (demux_t *p_demux, const char *psz_name) |
decoder_t * | demux_PacketizerNew (demux_t *p_demux, es_format_t *p_fmt, const char *psz_msg) |
This function will create a packetizer suitable for a demuxer that parses elementary stream. More... | |
void | demux_PacketizerDestroy (decoder_t *p_packetizer) |
This function will destroy a packetizer create by demux_PacketizerNew. More... | |
Demultiplexers (file format parsers)
#define DEMUX_INIT_COMMON | ( | ) |
#define INPUT_UPDATE_META 0x0040 |
#define INPUT_UPDATE_SEEKPOINT 0x0020 |
#define INPUT_UPDATE_TITLE 0x0010 |
#define INPUT_UPDATE_TITLE_LIST 0x0100 |
#define VLC_DEMUXER_EGENERIC -1 |
#define VLC_DEMUXER_EOF 0 |
#define VLC_DEMUXER_SUCCESS 1 |
typedef struct demux_meta_t demux_meta_t |
enum demux_query_e |
Control query identifiers for use with demux_t.pf_control.
In the individual identifier description, the input stream refers to demux_t.s if non-NULL, and the output refers to demux_t.out.
A demuxer is synchronous if it only accesses its input stream and the output from within its demux_t callbacks, i.e. demux.pf_demux and demux_t.pf_control.
A demuxer is threaded if it accesses either or both input and output asynchronously.
An access-demuxer is a demuxer without input, i.e. demux_t.s == NULL).
Enumerator | |
---|---|
DEMUX_CAN_SEEK | Checks whether the stream supports seeking. Can fail if seeking is not supported (same as returning false).
arg1 = bool * |
DEMUX_CAN_PAUSE | Checks whether (long) pause then stream resumption is supported. Can fail only if synchronous and not an access-demuxer. The underlying input stream then determines if pause is supported.
arg1= bool * |
DEMUX_CAN_CONTROL_PACE | Whether the stream can be read at an arbitrary pace. Cannot fail. arg1= bool * |
DEMUX_GET_PTS_DELAY | Retrieves the PTS delay (roughly the default buffer duration). Can fail only if synchronous and not an access-demuxer. The underlying input stream then determines the PTS delay. arg1= int64_t * |
DEMUX_GET_META | Retrieves stream meta-data. Should fail if no meta-data were retrieved. arg1= vlc_meta_t * |
DEMUX_GET_SIGNAL | Retrieves an estimate of signal quality and strength. Can fail. arg1=double *quality, arg2=double *strength |
DEMUX_SET_PAUSE_STATE | Sets the paused or playing/resumed state. Streams are initially in playing state. The control always specifies a change from paused to playing (false) or from playing to paused (true) and streams are initially playing; a no-op cannot be requested. The control is never used if DEMUX_CAN_PAUSE fails. Can fail. arg1= bool |
DEMUX_SET_TITLE | Seeks to the beginning of a title. The control is never used if DEMUX_GET_TITLE_INFO fails. Can fail. arg1= int |
DEMUX_SET_SEEKPOINT | Seeks to the beginning of a chapter of the current title. The control is never used if DEMUX_GET_TITLE_INFO fails. Can fail. arg1= int |
DEMUX_TEST_AND_CLEAR_FLAGS | Check which INPUT_UPDATE_XXX flag is set and reset the ones set. The unsigned* argument is set with the flags needed to be checked, on return it contains the values that were reset during the call This can can fail, in which case flags from demux_t.info.i_update are read/reset arg1= unsigned * |
DEMUX_GET_TITLE | Read the title number currently playing. Can fail, in which case demux_t.info.i_title is used arg1= int * |
DEMUX_GET_SEEKPOINT | |
DEMUX_GET_POSITION | |
DEMUX_SET_POSITION | |
DEMUX_GET_LENGTH | |
DEMUX_GET_TIME | |
DEMUX_SET_TIME | |
DEMUX_GET_TITLE_INFO |
Can fail, meaning there is only one title and one chapter. arg1= input_title_t ***, arg2=int *, arg3=int *pi_title_offset(0), arg4= int *pi_seekpoint_offset(0) |
DEMUX_SET_GROUP | |
DEMUX_SET_ES | |
DEMUX_SET_NEXT_DEMUX_TIME | |
DEMUX_GET_FPS | |
DEMUX_HAS_UNSUPPORTED_META | |
DEMUX_GET_ATTACHMENTS | |
DEMUX_CAN_RECORD | |
DEMUX_SET_RECORD_STATE |
The control is never used if DEMUX_CAN_RECORD fails or returns false. Can fail. arg1= bool |
DEMUX_CAN_CONTROL_RATE | |
DEMUX_SET_RATE | |
DEMUX_IS_PLAYLIST | Checks whether the stream is actually a playlist, rather than a real stream.
Can fail if the stream is not a playlist (same as returning false). arg1= bool * |
DEMUX_NAV_ACTIVATE | Activate the navigation item selected. Can fail |
DEMUX_NAV_UP | Use the up arrow to select a navigation item above. Can fail |
DEMUX_NAV_DOWN | Use the down arrow to select a navigation item under. Can fail |
DEMUX_NAV_LEFT | Use the left arrow to select a navigation item on the left. Can fail |
DEMUX_NAV_RIGHT | Use the right arrow to select a navigation item on the right. Can fail |
DEMUX_NAV_POPUP | Activate the popup Menu (for BD). Can fail |
DEMUX_NAV_MENU | Activate disc Root Menu. Can fail |
DEMUX_FILTER_ENABLE | Enable/Disable a demux filter.
|
DEMUX_FILTER_DISABLE |
|
inlinestatic |
Referenced by MainLoopDemux(), and MainLoopStatistics().
void demux_Delete | ( | demux_t * | ) |
References demux_priv_t::destroy, module_unneed, demux_t::p_module, demux_t::psz_access, demux_t::psz_demux, demux_t::psz_file, and demux_t::psz_location.
Referenced by demux_DestroyDemuxFilter().
|
inlinestatic |
Referenced by MainLoopDemux().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
demux_t* demux_New | ( | vlc_object_t * | p_obj, |
const char * | psz_name, | ||
const char * | psz_path, | ||
stream_t * | s, | ||
es_out_t * | out | ||
) |
References demux_NewAdvanced(), and psz_name.
void demux_PacketizerDestroy | ( | decoder_t * | p_packetizer | ) |
This function will destroy a packetizer create by demux_PacketizerNew.
decoder_t* demux_PacketizerNew | ( | demux_t * | p_demux, |
es_format_t * | p_fmt, | ||
const char * | psz_msg | ||
) |
This function will create a packetizer suitable for a demuxer that parses elementary stream.
The provided es_format_t will be cleaned on error or by demux_PacketizerDestroy.
|
inlinestatic |
< No error
< No error
References demux_t::i_seekpoint, demux_t::i_title, demux_t::i_update, demux_t::info, INPUT_UPDATE_SEEKPOINT, INPUT_UPDATE_TITLE, demux_t::s, STREAM_GET_SEEKPOINT, STREAM_GET_TITLE, vlc_stream_Control(), and VLC_SUCCESS.
int demux_vaControl | ( | demux_t * | p_demux, |
int | i_query, | ||
va_list | args | ||
) |
< No error
int demux_vaControlHelper | ( | stream_t * | , |
int64_t | i_start, | ||
int64_t | i_end, | ||
int64_t | i_bitrate, | ||
int | i_align, | ||
int | i_query, | ||
va_list | args | ||
) |
< No error
< Unspecified error
< No error
< Unspecified error
< No error
< Unspecified error
< Unspecified error
< No error
< Unspecified error
< Unspecified error
< No error
< Unspecified error
< No error
< Unspecified error
< Unspecified error
< No error
References DEMUX_CAN_CONTROL_PACE, DEMUX_CAN_PAUSE, DEMUX_CAN_RECORD, DEMUX_CAN_SEEK, DEMUX_FILTER_DISABLE, DEMUX_FILTER_ENABLE, DEMUX_GET_ATTACHMENTS, DEMUX_GET_FPS, DEMUX_GET_LENGTH, DEMUX_GET_META, DEMUX_GET_POSITION, DEMUX_GET_PTS_DELAY, DEMUX_GET_SEEKPOINT, DEMUX_GET_SIGNAL, DEMUX_GET_TIME, DEMUX_GET_TITLE, DEMUX_GET_TITLE_INFO, DEMUX_HAS_UNSUPPORTED_META, DEMUX_IS_PLAYLIST, DEMUX_NAV_ACTIVATE, DEMUX_NAV_DOWN, DEMUX_NAV_LEFT, DEMUX_NAV_MENU, DEMUX_NAV_POPUP, DEMUX_NAV_RIGHT, DEMUX_NAV_UP, DEMUX_SET_ES, DEMUX_SET_GROUP, DEMUX_SET_NEXT_DEMUX_TIME, DEMUX_SET_PAUSE_STATE, DEMUX_SET_POSITION, DEMUX_SET_RECORD_STATE, DEMUX_SET_SEEKPOINT, DEMUX_SET_TIME, DEMUX_SET_TITLE, DEMUX_TEST_AND_CLEAR_FLAGS, msg_Err, static_control_match, STREAM_CAN_SEEK, stream_Size(), VLC_EGENERIC, vlc_stream_Control(), vlc_stream_Seek(), vlc_stream_Tell(), vlc_stream_vaControl(), and VLC_SUCCESS.