43#define VLC_DEMUXER_EOF       0 
   44#define VLC_DEMUXER_EGENERIC -1 
   45#define VLC_DEMUXER_SUCCESS   1 
   48#define INPUT_UPDATE_TITLE      0x0010 
   49#define INPUT_UPDATE_SEEKPOINT  0x0020 
   50#define INPUT_UPDATE_META       0x0040 
   51#define INPUT_UPDATE_TITLE_LIST 0x0100 
   54#define add_file_extension(ext) add_shortcut("ext-" ext)
 
  295                                   int64_t i_bitrate, 
int i_align, 
int i_query, va_list args );
 
  305    va_start( args, i_query );
 
  317    bool can_seek = 
false;
 
  324    bool can_pause = 
false;
 
  331    bool can_control_pace = 
false;
 
  333    return can_control_pace;
 
  338    bool can_control_rate = 
false;
 
  340    return can_control_rate;
 
  345    bool can_record = 
false;
 
  352    bool has_unsupported_meta = 
false;
 
  354    return has_unsupported_meta;
 
  494    int *restrict titlep, 
int *restrict seekpointp,
 
  495    unsigned *restrict updatep )
 
  498    unsigned title, seekpoint;
 
  501     && title != (
unsigned)*titlep )
 
  509     && seekpoint != (
unsigned)*seekpointp )
 
  511        *seekpointp = seekpoint;
 
  515# define demux_UpdateTitleFromStream(demux) \ 
  516     demux_UpdateTitleFromStream(demux, \ 
  517         &((demux_sys_t *)((demux)->p_sys))->current_title, \ 
  518         &((demux_sys_t *)((demux)->p_sys))->current_seekpoint, \ 
  519         &((demux_sys_t *)((demux)->p_sys))->updates) 
  575        time += current_time;
 
  598#define DEMUX_INIT_COMMON() do {            \ 
  599    p_demux->pf_read = NULL;                \ 
  600    p_demux->pf_block = NULL;               \ 
  601    p_demux->pf_seek = NULL;                \ 
  602    p_demux->pf_control = Control;          \ 
  603    p_demux->pf_demux = Demux;              \ 
  604    p_demux->p_sys = calloc( 1, sizeof( demux_sys_t ) ); \ 
  605    if( !p_demux->p_sys ) return VLC_ENOMEM;\ 
#define VLC_USED
Definition: fourcc_gen.c:32
 
#define VLC_API
Definition: fourcc_gen.c:31
 
int vlc_demux_chained_ControlVa(vlc_demux_chained_t *, int query, va_list args)
Controls a chained demuxer.
Definition: demux_chained.c:139
 
static int vlc_demux_chained_Control(vlc_demux_chained_t *dc, int query,...)
Definition: vlc_demux.h:672
 
void vlc_demux_chained_Delete(vlc_demux_chained_t *)
Destroys a chained demuxer.
Definition: demux_chained.c:164
 
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 *, 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:418
 
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:433
 
static int vlc_demux_NavDown(demux_t *demux)
Definition: vlc_demux.h:458
 
static int vlc_demux_NavUp(demux_t *demux)
Definition: vlc_demux.h:453
 
static int vlc_demux_GetPtsDelay(demux_t *demux, vlc_tick_t *pts_delay)
Definition: vlc_demux.h:358
 
static bool demux_IsForced(demux_t *p_demux, const char *psz_name)
Definition: vlc_demux.h:541
 
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:539
 
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:388
 
#define demux_UpdateTitleFromStream(demux)
Definition: vlc_demux.h:516
 
static int vlc_demux_GetType(demux_t *demux, int *type)
Definition: vlc_demux.h:383
 
static int vlc_demux_NavRight(demux_t *demux)
Definition: vlc_demux.h:468
 
static int demux_SetPosition(demux_t *p_demux, double pos, bool precise, bool absolute)
Definition: vlc_demux.h:548
 
#define INPUT_UPDATE_SEEKPOINT
Definition: vlc_demux.h:50
 
#define INPUT_UPDATE_TITLE
Definition: vlc_demux.h:49
 
static int vlc_demux_GetSeekpoint(demux_t *demux, int *seekpoint)
Definition: vlc_demux.h:363
 
static int vlc_demux_GetPosition(demux_t *demux, double *position)
Definition: vlc_demux.h:393
 
static int vlc_demux_SetPauseState(demux_t *demux, bool pause_state)
Definition: vlc_demux.h:423
 
static bool vlc_demux_CanPace(demux_t *demux)
Definition: vlc_demux.h:330
 
static int vlc_demux_GetNormalTime(demux_t *demux, vlc_tick_t *normal_time)
Definition: vlc_demux.h:408
 
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:681
 
struct demux_meta_t demux_meta_t
 
demux_query_e
Control query identifiers for use with demux_t.pf_control.
Definition: vlc_demux.h:85
 
static int vlc_demux_GetTitle(demux_t *demux, int *title)
Definition: vlc_demux.h:373
 
static bool vlc_demux_CanSeek(demux_t *demux)
Definition: vlc_demux.h:316
 
static int vlc_demux_GetFPS(demux_t *demux, double *fps)
Definition: vlc_demux.h:413
 
void demux_PacketizerDestroy(decoder_t *p_packetizer)
This function will destroy a packetizer create by demux_PacketizerNew.
Definition: demux.c:712
 
static int vlc_demux_SetSeekPoint(demux_t *demux, int seekpoint)
Definition: vlc_demux.h:428
 
static int vlc_demux_FilterDisable(demux_t *demux)
Definition: vlc_demux.h:488
 
static int vlc_demux_NavActivate(demux_t *demux)
Definition: vlc_demux.h:448
 
static bool vlc_demux_CanPause(demux_t *demux)
Definition: vlc_demux.h:323
 
static int vlc_demux_SetRecordState(demux_t *demux, bool record_state, const char *dir_path, const char *ext)
Definition: vlc_demux.h:443
 
static int demux_Control(demux_t *p_demux, int i_query,...)
Definition: vlc_demux.h:301
 
static int vlc_demux_GetMeta(demux_t *demux, vlc_meta_t *meta)
Definition: vlc_demux.h:378
 
static int vlc_demux_FilterEnable(demux_t *demux)
Definition: vlc_demux.h:483
 
static int vlc_demux_NavMenu(demux_t *demux)
Definition: vlc_demux.h:478
 
static bool demux_IsContentType(demux_t *demux, const char *type)
Definition: vlc_demux.h:535
 
static void demux_Delete(demux_t *demux)
Definition: vlc_demux.h:290
 
static int vlc_demux_GetLength(demux_t *demux, vlc_tick_t *length)
Definition: vlc_demux.h:398
 
static bool vlc_demux_CanRecord(demux_t *demux)
Definition: vlc_demux.h:344
 
static int vlc_demux_SetRate(demux_t *demux, float rate)
Definition: vlc_demux.h:438
 
static int vlc_demux_GetTime(demux_t *demux, vlc_tick_t *time)
Definition: vlc_demux.h:403
 
int demux_Demux(demux_t *p_demux)
Definition: demux.c:217
 
static bool vlc_demux_HasUnsupportedMeta(demux_t *demux)
Definition: vlc_demux.h:351
 
static bool vlc_demux_CanRate(demux_t *demux)
Definition: vlc_demux.h:337
 
static int vlc_demux_NavPopup(demux_t *demux)
Definition: vlc_demux.h:473
 
static bool demux_IsPathExtension(demux_t *p_demux, const char *psz_extension)
Definition: vlc_demux.h:524
 
static int vlc_demux_NavLeft(demux_t *demux)
Definition: vlc_demux.h:463
 
static int demux_SetTime(demux_t *p_demux, vlc_tick_t time, bool precise, bool absolute)
Definition: vlc_demux.h:567
 
int demux_vaControl(demux_t *p_demux, int i_query, va_list args)
Definition: demux.c:244
 
static int vlc_demux_GetSignal(demux_t *demux, double *quality, double *strength)
Definition: vlc_demux.h:368
 
@ DEMUX_GET_SIGNAL
Retrieves an estimate of signal quality and strength.
Definition: vlc_demux.h:124
 
@ DEMUX_TEST_AND_CLEAR_FLAGS
Check which INPUT_UPDATE_XXX flag is set and reset the ones set.
Definition: vlc_demux.h:166
 
@ DEMUX_GET_TIME
Definition: vlc_demux.h:189
 
@ DEMUX_GET_TYPE
Retrieves the demuxed content type Can fail if the control is not implemented.
Definition: vlc_demux.h:130
 
@ DEMUX_GET_ATTACHMENTS
Definition: vlc_demux.h:232
 
@ DEMUX_GET_PTS_DELAY
Retrieves the PTS delay (roughly the default buffer duration).
Definition: vlc_demux.h:112
 
@ DEMUX_NAV_LEFT
Use the left arrow to select a navigation item on the left.
Definition: vlc_demux.h:267
 
@ DEMUX_NAV_MENU
Activate disc Root Menu.
Definition: vlc_demux.h:273
 
@ DEMUX_CAN_CONTROL_PACE
Whether the stream can be read at an arbitrary pace.
Definition: vlc_demux.h:105
 
@ DEMUX_GET_POSITION
Definition: vlc_demux.h:184
 
@ DEMUX_SET_TITLE
Seeks to the beginning of a title.
Definition: vlc_demux.h:150
 
@ DEMUX_SET_RECORD_STATE
Definition: vlc_demux.h:247
 
@ DEMUX_NAV_ACTIVATE
Activate the navigation item selected.
Definition: vlc_demux.h:261
 
@ DEMUX_SET_ES
Definition: vlc_demux.h:212
 
@ DEMUX_SET_TIME
Definition: vlc_demux.h:190
 
@ DEMUX_NAV_DOWN
Use the down arrow to select a navigation item under.
Definition: vlc_demux.h:265
 
@ DEMUX_SET_SEEKPOINT
Seeks to the beginning of a chapter of the current title.
Definition: vlc_demux.h:158
 
@ DEMUX_SET_GROUP_LIST
Definition: vlc_demux.h:211
 
@ DEMUX_SET_PAUSE_STATE
Sets the paused or playing/resumed state.
Definition: vlc_demux.h:142
 
@ DEMUX_CAN_PAUSE
Checks whether (long) pause then stream resumption is supported.
Definition: vlc_demux.h:99
 
@ DEMUX_CAN_RECORD
Definition: vlc_demux.h:237
 
@ DEMUX_HAS_UNSUPPORTED_META
Definition: vlc_demux.h:225
 
@ DEMUX_SET_GROUP_ALL
Definition: vlc_demux.h:210
 
@ DEMUX_GET_NORMAL_TIME
Definition: vlc_demux.h:192
 
@ DEMUX_SET_GROUP_DEFAULT
Definition: vlc_demux.h:209
 
@ DEMUX_GET_TITLE
Read the title number currently playing.
Definition: vlc_demux.h:173
 
@ DEMUX_NAV_UP
Use the up arrow to select a navigation item above.
Definition: vlc_demux.h:263
 
@ DEMUX_GET_FPS
Definition: vlc_demux.h:222
 
@ DEMUX_GET_LENGTH
Definition: vlc_demux.h:188
 
@ DEMUX_SET_ES_LIST
Definition: vlc_demux.h:213
 
@ DEMUX_NAV_POPUP
Activate the popup Menu (for BD).
Definition: vlc_demux.h:271
 
@ DEMUX_SET_POSITION
Definition: vlc_demux.h:185
 
@ DEMUX_SET_RATE
Definition: vlc_demux.h:257
 
@ DEMUX_CAN_CONTROL_RATE
Definition: vlc_demux.h:254
 
@ DEMUX_CAN_SEEK
Checks whether the stream supports seeking.
Definition: vlc_demux.h:91
 
@ DEMUX_FILTER_DISABLE
Definition: vlc_demux.h:280
 
@ DEMUX_SET_NEXT_DEMUX_TIME
Definition: vlc_demux.h:220
 
@ DEMUX_GET_SEEKPOINT
Definition: vlc_demux.h:180
 
@ DEMUX_GET_TITLE_INFO
Definition: vlc_demux.h:203
 
@ DEMUX_GET_META
Retrieves stream meta-data.
Definition: vlc_demux.h:118
 
@ DEMUX_FILTER_ENABLE
Enable/Disable a demux filter.
Definition: vlc_demux.h:279
 
@ DEMUX_NAV_RIGHT
Use the right arrow to select a navigation item on the right.
Definition: vlc_demux.h:269
 
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:503
 
static bool stream_IsMimeType(stream_t *s, const char *type)
Checks for a MIME type.
Definition: vlc_stream.h:611
 
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:401
 
@ STREAM_GET_TITLE
arg1=unsigned * res=can fail
Definition: vlc_stream.h:263
 
@ STREAM_GET_SEEKPOINT
arg1=unsigned * res=can fail
Definition: vlc_stream.h:264
 
const char name[16]
Definition: httpd.c:1281
 
const char psz_ext[7]
Definition: image.c:590
 
Definition: vlc_codec.h:102
 
Definition: vlc_es_out.h:148
 
stream_t definition
Definition: vlc_stream.h:133
 
char * psz_name
Definition: vlc_stream.h:136
 
stream_t * s
Input stream.
Definition: vlc_stream.h:151
 
const char * psz_location
Location (URL with the scheme stripped)
Definition: vlc_stream.h:138
 
char * psz_filepath
Local file path (if applicable)
Definition: vlc_stream.h:139
 
Definition: demux_chained.c:36
 
es_out_t * out
Definition: demux_chained.c:50
 
Definition: vlc_frame.h:123
 
VLC object common members.
Definition: vlc_objects.h:45
 
const char * psz_name
Definition: text_style.c:33
 
This file is a collection of common definitions and types.
 
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:45