43#define VLC_DEMUXER_EOF 0
44#define VLC_DEMUXER_EGENERIC -1
45#define VLC_DEMUXER_SUCCESS 1
49#define VLC_DEMUXER_BUFFERING 2
52#define INPUT_UPDATE_TITLE 0x0010
53#define INPUT_UPDATE_SEEKPOINT 0x0020
54#define INPUT_UPDATE_META 0x0040
55#define INPUT_UPDATE_TITLE_LIST 0x0100
58#define add_file_extension(ext) add_shortcut("ext-" ext)
306 int64_t i_bitrate,
int i_align,
int i_query, va_list args );
316 va_start( args, i_query );
328 bool can_seek =
false;
335 bool can_pause =
false;
342 bool can_control_pace =
false;
344 return can_control_pace;
349 bool can_control_rate =
false;
351 return can_control_rate;
356 bool can_record =
false;
363 bool has_unsupported_meta =
false;
365 return has_unsupported_meta;
505 int *restrict titlep,
int *restrict seekpointp,
506 unsigned *restrict updatep )
509 unsigned title, seekpoint;
512 && title != (
unsigned)*titlep )
520 && seekpoint != (
unsigned)*seekpointp )
522 *seekpointp = seekpoint;
526# define demux_UpdateTitleFromStream(demux) \
527 demux_UpdateTitleFromStream(demux, \
528 &((demux_sys_t *)((demux)->p_sys))->current_title, \
529 &((demux_sys_t *)((demux)->p_sys))->current_seekpoint, \
530 &((demux_sys_t *)((demux)->p_sys))->updates)
589#define DEMUX_INIT_COMMON() do { \
590 p_demux->pf_read = NULL; \
591 p_demux->pf_block = NULL; \
592 p_demux->pf_seek = NULL; \
593 p_demux->pf_control = Control; \
594 p_demux->pf_demux = Demux; \
595 p_demux->p_sys = calloc( 1, sizeof( demux_sys_t ) ); \
596 if( !p_demux->p_sys ) return VLC_ENOMEM;\
662 int query, va_list args);
#define VLC_USED
Definition fourcc_gen.c:32
#define VLC_API
Definition fourcc_gen.c:31
static int vlc_demux_chained_Control(vlc_demux_chained_t *dc, int query,...)
Definition vlc_demux.h:665
void vlc_demux_chained_Delete(vlc_demux_chained_t *)
Destroys a chained demuxer.
Definition demux_chained.c:164
int vlc_demux_chained_ControlVa(vlc_demux_chained_t *demux, int query, va_list args)
Controls a chained demuxer.
Definition demux_chained.c:139
vlc_demux_chained_t * vlc_demux_chained_New(vlc_object_t *parent, const char *name, es_out_t *out)
Creates a chained demuxer.
Definition demux_chained.c:102
void vlc_demux_chained_Send(vlc_demux_chained_t *demux, block_t *block)
Sends data to a chained demuxer.
Definition demux_chained.c:134
static int vlc_demux_GetAttachments(demux_t *demux, input_attachment_t ***attachments)
Definition vlc_demux.h:429
demux_t * demux_New(vlc_object_t *p_obj, const char *module_name, const char *url, stream_t *s, es_out_t *out)
Definition demux.c:73
static int vlc_demux_SetTitle(demux_t *demux, int title)
Definition vlc_demux.h:444
static int vlc_demux_NavDown(demux_t *demux)
Definition vlc_demux.h:469
static int demux_SetTime(demux_t *p_demux, vlc_tick_t time, bool precise)
Definition vlc_demux.h:568
static int vlc_demux_NavUp(demux_t *demux)
Definition vlc_demux.h:464
static int vlc_demux_GetPtsDelay(demux_t *demux, vlc_tick_t *pts_delay)
Definition vlc_demux.h:369
static bool demux_IsForced(demux_t *p_demux, const char *psz_name)
Definition vlc_demux.h:552
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)
Definition demux.c:542
static int vlc_demux_GetTitleInfo(demux_t *demux, input_title_t ***title_info, int *size, int *pi_title_offset, int *pi_seekpoint_offset)
Definition vlc_demux.h:399
#define demux_UpdateTitleFromStream(demux)
Definition vlc_demux.h:527
static int vlc_demux_GetType(demux_t *demux, int *type)
Definition vlc_demux.h:394
static int vlc_demux_NavRight(demux_t *demux)
Definition vlc_demux.h:479
#define INPUT_UPDATE_SEEKPOINT
Definition vlc_demux.h:54
#define INPUT_UPDATE_TITLE
Definition vlc_demux.h:53
static int demux_SetPosition(demux_t *p_demux, double pos, bool precise)
Definition vlc_demux.h:559
static int vlc_demux_GetSeekpoint(demux_t *demux, int *seekpoint)
Definition vlc_demux.h:374
static int vlc_demux_GetPosition(demux_t *demux, double *position)
Definition vlc_demux.h:404
static int vlc_demux_SetPauseState(demux_t *demux, bool pause_state)
Definition vlc_demux.h:434
static bool vlc_demux_CanPace(demux_t *demux)
Definition vlc_demux.h:341
static int vlc_demux_GetNormalTime(demux_t *demux, vlc_tick_t *normal_time)
Definition vlc_demux.h:419
decoder_t * demux_PacketizerNew(vlc_object_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.
Definition demux.c:684
demux_query_e
Control query identifiers for use with demux_t.pf_control.
Definition vlc_demux.h:89
static int vlc_demux_GetTitle(demux_t *demux, int *title)
Definition vlc_demux.h:384
static bool vlc_demux_CanSeek(demux_t *demux)
Definition vlc_demux.h:327
static int vlc_demux_GetFPS(demux_t *demux, double *fps)
Definition vlc_demux.h:424
void demux_PacketizerDestroy(decoder_t *p_packetizer)
This function will destroy a packetizer create by demux_PacketizerNew.
Definition demux.c:715
static int vlc_demux_SetSeekPoint(demux_t *demux, int seekpoint)
Definition vlc_demux.h:439
static int vlc_demux_FilterDisable(demux_t *demux)
Definition vlc_demux.h:499
static int vlc_demux_NavActivate(demux_t *demux)
Definition vlc_demux.h:459
static bool vlc_demux_CanPause(demux_t *demux)
Definition vlc_demux.h:334
static int vlc_demux_SetRecordState(demux_t *demux, bool record_state, const char *dir_path, const char *ext)
Definition vlc_demux.h:454
static int demux_Control(demux_t *p_demux, int i_query,...)
Definition vlc_demux.h:312
static int vlc_demux_GetMeta(demux_t *demux, vlc_meta_t *meta)
Definition vlc_demux.h:389
static int vlc_demux_FilterEnable(demux_t *demux)
Definition vlc_demux.h:494
static int vlc_demux_NavMenu(demux_t *demux)
Definition vlc_demux.h:489
static bool demux_IsContentType(demux_t *demux, const char *type)
Definition vlc_demux.h:546
static void demux_Delete(demux_t *demux)
Definition vlc_demux.h:301
static int vlc_demux_GetLength(demux_t *demux, vlc_tick_t *length)
Definition vlc_demux.h:409
static bool vlc_demux_CanRecord(demux_t *demux)
Definition vlc_demux.h:355
static int vlc_demux_SetRate(demux_t *demux, float rate)
Definition vlc_demux.h:449
static int vlc_demux_GetTime(demux_t *demux, vlc_tick_t *time)
Definition vlc_demux.h:414
int demux_Demux(demux_t *p_demux)
Definition demux.c:220
static bool vlc_demux_HasUnsupportedMeta(demux_t *demux)
Definition vlc_demux.h:362
static bool vlc_demux_CanRate(demux_t *demux)
Definition vlc_demux.h:348
static int vlc_demux_NavPopup(demux_t *demux)
Definition vlc_demux.h:484
static bool demux_IsPathExtension(demux_t *p_demux, const char *psz_extension)
Definition vlc_demux.h:535
static int vlc_demux_NavLeft(demux_t *demux)
Definition vlc_demux.h:474
int demux_vaControl(demux_t *p_demux, int i_query, va_list args)
Definition demux.c:247
static int vlc_demux_GetSignal(demux_t *demux, double *quality, double *strength)
Definition vlc_demux.h:379
@ DEMUX_GET_SIGNAL
Retrieves an estimate of signal quality and strength.
Definition vlc_demux.h:128
@ DEMUX_TEST_AND_CLEAR_FLAGS
Check which INPUT_UPDATE_XXX flag is set and reset the ones set.
Definition vlc_demux.h:170
@ DEMUX_GET_TIME
Get time and live state.
Definition vlc_demux.h:200
@ DEMUX_GET_TYPE
Retrieves the demuxed content type Can fail if the control is not implemented.
Definition vlc_demux.h:134
@ DEMUX_GET_ATTACHMENTS
Definition vlc_demux.h:243
@ DEMUX_GET_PTS_DELAY
Retrieves the PTS delay (roughly the default buffer duration).
Definition vlc_demux.h:116
@ DEMUX_NAV_LEFT
Use the left arrow to select a navigation item on the left.
Definition vlc_demux.h:278
@ DEMUX_NAV_MENU
Activate disc Root Menu.
Definition vlc_demux.h:284
@ DEMUX_CAN_CONTROL_PACE
Whether the stream can be read at an arbitrary pace.
Definition vlc_demux.h:109
@ DEMUX_GET_POSITION
Definition vlc_demux.h:188
@ DEMUX_SET_TITLE
Seeks to the beginning of a title.
Definition vlc_demux.h:154
@ DEMUX_SET_RECORD_STATE
Definition vlc_demux.h:258
@ DEMUX_NAV_ACTIVATE
Activate the navigation item selected.
Definition vlc_demux.h:272
@ DEMUX_SET_ES
Definition vlc_demux.h:223
@ DEMUX_SET_TIME
Definition vlc_demux.h:201
@ DEMUX_NAV_DOWN
Use the down arrow to select a navigation item under.
Definition vlc_demux.h:276
@ DEMUX_SET_SEEKPOINT
Seeks to the beginning of a chapter of the current title.
Definition vlc_demux.h:162
@ DEMUX_SET_GROUP_LIST
Definition vlc_demux.h:222
@ DEMUX_SET_PAUSE_STATE
Sets the paused or playing/resumed state.
Definition vlc_demux.h:146
@ DEMUX_CAN_PAUSE
Checks whether (long) pause then stream resumption is supported.
Definition vlc_demux.h:103
@ DEMUX_CAN_RECORD
Definition vlc_demux.h:248
@ DEMUX_HAS_UNSUPPORTED_META
Definition vlc_demux.h:236
@ DEMUX_SET_GROUP_ALL
Definition vlc_demux.h:221
@ DEMUX_GET_NORMAL_TIME
Definition vlc_demux.h:203
@ DEMUX_SET_GROUP_DEFAULT
Definition vlc_demux.h:220
@ DEMUX_GET_TITLE
Read the title number currently playing.
Definition vlc_demux.h:177
@ DEMUX_NAV_UP
Use the up arrow to select a navigation item above.
Definition vlc_demux.h:274
@ DEMUX_GET_FPS
Definition vlc_demux.h:233
@ DEMUX_GET_LENGTH
Definition vlc_demux.h:192
@ DEMUX_SET_ES_LIST
Definition vlc_demux.h:224
@ DEMUX_NAV_POPUP
Activate the popup Menu (for BD).
Definition vlc_demux.h:282
@ DEMUX_SET_POSITION
Definition vlc_demux.h:189
@ DEMUX_SET_RATE
Definition vlc_demux.h:268
@ DEMUX_CAN_CONTROL_RATE
Definition vlc_demux.h:265
@ DEMUX_CAN_SEEK
Checks whether the stream supports seeking.
Definition vlc_demux.h:95
@ DEMUX_FILTER_DISABLE
Definition vlc_demux.h:291
@ DEMUX_SET_NEXT_DEMUX_TIME
Definition vlc_demux.h:231
@ DEMUX_GET_SEEKPOINT
Definition vlc_demux.h:184
@ DEMUX_GET_TITLE_INFO
Definition vlc_demux.h:214
@ DEMUX_GET_META
Retrieves stream meta-data.
Definition vlc_demux.h:122
@ DEMUX_FILTER_ENABLE
Enable/Disable a demux filter.
Definition vlc_demux.h:290
@ DEMUX_NAV_RIGHT
Use the right arrow to select a navigation item on the right.
Definition vlc_demux.h:280
#define VLC_SUCCESS
No error.
Definition vlc_common.h:480
static bool stream_IsMimeType(stream_t *s, const char *type)
Checks for a MIME type.
Definition vlc_stream.h:635
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition stream.c:143
static int vlc_stream_Control(stream_t *s, int query,...)
Definition vlc_stream.h:411
@ STREAM_GET_TITLE
arg1=(unsigned *) res=can fail
Definition vlc_stream.h:268
@ STREAM_GET_SEEKPOINT
arg1=(unsigned *) res=can fail
Definition vlc_stream.h:269
const char name[16]
Definition httpd.c:1299
const char psz_ext[7]
Definition image.c:577
Definition vlc_codec.h:102
Definition vlc_es_out.h:142
stream_t definition
Definition vlc_stream.h:135
char * psz_name
Definition vlc_stream.h:138
stream_t * s
Input stream.
Definition vlc_stream.h:153
const char * psz_location
Location (URL with the scheme stripped).
Definition vlc_stream.h:140
char * psz_filepath
Local file path (if applicable).
Definition vlc_stream.h:141
Definition demux_chained.c:36
es_out_t * out
Definition demux_chained.c:50
VLC object common members.
Definition vlc_objects.h:53
const char * psz_name
Definition text_style.c:33
This file is a collection of common definitions and types.
struct vlc_frame_t block_t
Definition vlc_common.h:447
struct stream_t demux_t
Definition vlc_common.h:384
This file defines the elementary streams format types.
Elementary streams output interface.
int strcasecmp(const char *, const char *)
Byte streams and byte stream filter modules interface.
int64_t vlc_tick_t
High precision date or time interval.
Definition vlc_tick.h:48