VLC
4.0.0-dev
|
Demultiplexers (file format parsers) More...
![]() |
Modules | |
Chained demultiplexer | |
Demultiplexers wrapped by another demultiplexer. | |
Files | |
file | vlc_demux.h |
Demultiplexer modules interface. | |
Data Structures | |
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_UpdateTitleFromStream(demux) |
#define | DEMUX_INIT_COMMON() |
Typedefs | |
typedef struct demux_meta_t | demux_meta_t |
Functions | |
demux_t * | demux_New (vlc_object_t *p_obj, const char *psz_name, stream_t *s, es_out_t *out) |
static void | demux_Delete (demux_t *demux) |
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, int *restrict titlep, int *restrict seekpointp, unsigned *restrict updatep) |
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) |
static int | demux_SetPosition (demux_t *p_demux, double pos, bool precise, bool absolute) |
static int | demux_SetTime (demux_t *p_demux, vlc_tick_t time, bool precise, bool absolute) |
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 demux_UpdateTitleFromStream | ( | demux | ) |
#define INPUT_UPDATE_META 0x0040 |
Referenced by UpdateGenericFromDemux().
#define INPUT_UPDATE_SEEKPOINT 0x0020 |
Referenced by demux_UpdateTitleFromStream(), and UpdateTitleSeekpointFromDemux().
#define INPUT_UPDATE_TITLE 0x0010 |
Referenced by demux_UpdateTitleFromStream(), and UpdateTitleSeekpointFromDemux().
#define INPUT_UPDATE_TITLE_LIST 0x0100 |
Referenced by MainLoopDemux().
#define VLC_DEMUXER_EGENERIC -1 |
Referenced by MainLoopDemux().
#define VLC_DEMUXER_EOF 0 |
Referenced by MainLoopDemux(), and UpdateTitleSeekpoint().
#define VLC_DEMUXER_SUCCESS 1 |
Referenced by demux_Demux(), MainLoopDemux(), and UpdateTitleSeekpoint().
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= vlc_tick_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 arg1= unsigned * |
DEMUX_GET_TITLE | Read the title number currently playing. Can fail. arg1= int * |
DEMUX_GET_SEEKPOINT | |
DEMUX_GET_POSITION | |
DEMUX_SET_POSITION | |
DEMUX_GET_LENGTH | |
DEMUX_GET_TIME | |
DEMUX_SET_TIME | |
DEMUX_GET_NORMAL_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_DEFAULT | |
DEMUX_SET_GROUP_ALL | |
DEMUX_SET_GROUP_LIST | |
DEMUX_SET_ES | |
DEMUX_SET_ES_LIST | |
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 |
References demux_vaControl().
Referenced by Control(), ControlNav(), ControlPause(), ControlSetEsList(), ControlUnpause(), demux_filter_enable_disable(), demux_GetSeekpoint(), demux_GetTitle(), demux_SetPosition(), demux_SetTime(), demux_TestAndClearFlags(), Init(), InitPrograms(), input_SlaveSourceAdd(), InputSourceInit(), InputSourceMeta(), InputUpdateMeta(), MainLoopDemux(), MainLoopStatistics(), Preparse(), SlaveDemux(), SlaveSeek(), UpdateGenericFromDemux(), UpdateTitleListfromDemux(), and vlc_demux_chained_Thread().
|
inlinestatic |
References demux_vaControlHelper(), VLC_API, and vlc_stream_Delete().
Referenced by InputSourceDestroy(), and vlc_demux_chained_Thread().
|
inlinestatic |
References demux_vaControl(), stream_t::pf_demux, VLC_API, and VLC_DEMUXER_SUCCESS.
Referenced by MainLoopDemux(), SlaveDemux(), and vlc_demux_chained_Thread().
|
inlinestatic |
References stream_t::s, stream_IsMimeType(), and VLC_USED.
|
inlinestatic |
References stream_t::psz_name.
|
inlinestatic |
References name, psz_ext, stream_t::psz_filepath, stream_t::psz_location, strcasecmp(), and VLC_USED.
demux_t* demux_New | ( | vlc_object_t * | p_obj, |
const char * | psz_name, | ||
stream_t * | s, | ||
es_out_t * | out | ||
) |
References demux_NewAdvanced().
Referenced by vlc_demux_chained_Thread().
void demux_PacketizerDestroy | ( | decoder_t * | p_packetizer | ) |
This function will destroy a packetizer create by demux_PacketizerNew.
References es_format_Clean(), decoder_t::fmt_in, decoder_t::fmt_out, module_unneed, decoder_t::p_description, decoder_t::p_module, vlc_meta_Delete(), and vlc_object_delete.
Referenced by demux_SetTime().
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.
References es_format_t::b_packetized, es_format_Clean(), es_format_Init(), decoder_t::fmt_in, decoder_t::fmt_out, es_format_t::i_cat, module_need, msg_Err, decoder_t::p_module, decoder_t::pf_decode, decoder_t::pf_packetize, vlc_custom_create, and vlc_object_delete.
Referenced by demux_SetTime().
|
inlinestatic |
References demux_Control(), DEMUX_GET_POSITION, DEMUX_SET_POSITION, and VLC_SUCCESS.
Referenced by Control().
|
inlinestatic |
References demux_Control(), DEMUX_GET_TIME, demux_PacketizerDestroy(), demux_PacketizerNew(), DEMUX_SET_TIME, VLC_API, VLC_SUCCESS, and VLC_USED.
Referenced by Control().
|
inlinestatic |
int demux_vaControl | ( | demux_t * | p_demux, |
int | i_query, | ||
va_list | args | ||
) |
References stream_t::pf_control.
Referenced by demux_Control(), and demux_Demux().
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 | ||
) |
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_NORMAL_TIME, 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_ES_LIST, DEMUX_SET_GROUP_ALL, DEMUX_SET_GROUP_DEFAULT, DEMUX_SET_GROUP_LIST, 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.
Referenced by demux_Delete().