Go to the documentation of this file.
24 #ifndef LIBVLC_INPUT_DEMUX_H
25 #define LIBVLC_INPUT_DEMUX_H 1
34 const char *psz_demux,
const char *url,
const struct vlc_video_context_operations * ops
Definition: decoder_helpers.c:232
void decoder_Destroy(decoder_t *p_dec)
Destroy a decoder and reset the structure.
Definition: decoder_helpers.c:70
@ DEMUX_GET_META
Retrieves stream meta-data.
Definition: vlc_demux.h:118
int vlc_stream_vaControl(stream_t *s, int cmd, va_list args)
Use to control the "stream_t *".
Definition: stream.c:687
vlc_video_context * vlc_video_context_Create(vlc_decoder_device *device, enum vlc_video_context_type private_type, size_t private_size, const struct vlc_video_context_operations *ops)
Definition: decoder_helpers.c:238
@ DEMUX_SET_PAUSE_STATE
Sets the paused or playing/resumed state.
Definition: vlc_demux.h:142
uint64_t vlc_stream_Tell(const stream_t *s)
Tells the current stream position.
Definition: stream.c:611
vlc_decoder_device * vlc_video_context_HoldDevice(vlc_video_context *vctx)
Get the decoder device used by the device context.
Definition: decoder_helpers.c:287
struct vlc_object_t obj
Definition: vlc_codec.h:568
@ DEMUX_GET_SIGNAL
Retrieves an estimate of signal quality and strength.
Definition: vlc_demux.h:124
@ DEMUX_NAV_UP
Use the up arrow to select a navigation item above.
Definition: vlc_demux.h:263
@ VIDEO_ES
Definition: vlc_es.h:603
void decoder_Init(decoder_t *p_dec, const es_format_t *restrict p_fmt)
Definition: decoder_helpers.c:37
bool demux_FilterEnable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:516
@ DEMUX_GET_TYPE
Retrieves the demuxed content type Can fail if the control is not implemented.
Definition: vlc_demux.h:130
int strcasecmp(const char *, const char *)
const char * psz_name
Definition: text_style.c:53
vlc_decoder_device * vlc_decoder_device_Create(vlc_object_t *o, vout_window_t *window)
Create a decoder device from a window.
Definition: decoder_helpers.c:181
Window object.
Definition: vlc_vout_window.h:353
@ DEMUX_SET_TIME
Definition: vlc_demux.h:190
int demux_GetSeekpoint(demux_t *p_demux)
Definition: demux.c:432
struct vlc_object_t obj
Definition: vlc_stream.h:48
enum vlc_video_context_type private_type
Definition: decoder_helpers.c:233
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static int demux_Control(demux_t *p_demux, int i_query,...)
Definition: vlc_demux.h:301
bool b_preparsing
True if this access is used to preparse.
Definition: vlc_stream.h:54
#define VLC_DEMUXER_EGENERIC
Definition: vlc_demux.h:45
static const char * demux_NameFromMimeType(const char *mime)
Definition: demux.c:52
@ DEMUX_GET_TITLE_INFO
Definition: vlc_demux.h:203
@ DEMUX_CAN_RECORD
Definition: vlc_demux.h:237
vlc_rational_t w
Definition: vlc_fourcc.h:750
static demux_t * demux_FilterNew(demux_t *p_next, const char *p_name)
Definition: demux.c:441
bool demux_FilterDisable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:521
const struct decoder_owner_callbacks * cbs
Definition: vlc_codec.h:200
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
module_t * module
Definition: demux.c:81
uint8_t private[]
Definition: decoder_helpers.c:235
#define vlc_module_load(ctx, cap, name, strict,...)
Definition: vlc_modules.h:99
static int decoder_device_Open(void *func, bool forced, va_list ap)
Definition: decoder_helpers.c:168
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:61
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.
Definition: demux.c:373
Definition: vlc_picture.h:80
demux_t * demux_FilterChainNew(demux_t *p_demux, const char *psz_chain)
Builds an explicit chain of demux filters.
Definition: demux.c:471
int(* pf_decode)(decoder_t *, block_t *p_block)
Definition: vlc_codec.h:150
@ DEMUX_SET_TITLE
Seeks to the beginning of a title.
Definition: vlc_demux.h:150
@ DEMUX_SET_GROUP_LIST
Definition: vlc_demux.h:211
@ DEMUX_SET_ES
Definition: vlc_demux.h:212
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
@ DEMUX_SET_ES_LIST
Definition: vlc_demux.h:213
const struct encoder_owner_callbacks * cbs
Definition: vlc_codec.h:271
Definition: vlc_codec.h:101
unsigned den
Definition: fourcc_gen.c:34
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
static int vlc_ascii_strcasecmp(const char *psz1, const char *psz2)
Compare two ASCII strings ignoring case.
Definition: vlc_strings.h:60
void(* pf_flush)(decoder_t *)
Definition: vlc_codec.h:183
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
@ DEMUX_SET_SEEKPOINT
Seeks to the beginning of a chapter of the current title.
Definition: vlc_demux.h:158
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
int demux_vaControl(demux_t *demux, int query, va_list args)
Definition: demux.c:229
char * key
Definition: vlc_fixups.h:493
vlc_video_context * vlc_video_context_Hold(vlc_video_context *vctx)
Definition: decoder_helpers.c:269
vlc_atomic_rc_t rc
Definition: decoder_helpers.c:165
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:428
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
int(* pf_demux)(stream_t *)
Definition: vlc_stream.h:115
void(* close)(struct vlc_decoder_device *)
Definition: vlc_codec.h:560
Video picture.
Definition: vlc_picture.h:120
size_t private_size
Definition: decoder_helpers.c:234
@ VLC_VIDEO_CONTEXT_NONE
Definition: vlc_picture.h:88
int asprintf(char **, const char *,...)
#define vlc_object_create(a, b)
Definition: vlc_objects.h:179
es_out_t * out
Definition: vlc_stream.h:68
const char * psz_location
Location (URL with the scheme stripped)
Definition: vlc_stream.h:52
unsigned demux_TestAndClearFlags(demux_t *p_demux, unsigned flags)
Definition: demux.c:414
block_t *(* pf_get_cc)(decoder_t *, decoder_cc_desc_t *)
Definition: vlc_codec.h:191
@ DEMUX_HAS_UNSUPPORTED_META
Definition: vlc_demux.h:225
@ STREAM_CAN_SEEK
arg1= bool * res=cannot fail
Definition: vlc_stream.h:147
@ DEMUX_GET_TIME
Definition: vlc_demux.h:189
@ DEMUX_SET_GROUP_ALL
Definition: vlc_demux.h:210
demux_t * demux_NewAdvanced(vlc_object_t *p_obj, input_thread_t *p_parent_input, const char *psz_demux, const char *url, stream_t *s, es_out_t *out, bool)
Definition: demux.c:117
int(* pf_readdir)(stream_t *, input_item_node_t *)
Read directory.
Definition: vlc_stream.h:113
char * psz_name
Definition: vlc_stream.h:50
bool demux_FilterDisable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:521
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
Definition: vlc_es_out.h:143
const char name[8]
Definition: demux.c:62
module_t * p_module
Definition: vlc_codec.h:106
picture_t * picture_NewFromFormat(const video_format_t *restrict fmt)
Definition: picture.c:259
@ DEMUX_CAN_PAUSE
Checks whether (long) pause then stream resumption is supported.
Definition: vlc_demux.h:99
picture_t * decoder_NewPicture(decoder_t *dec)
Allocates an output picture buffer.
Definition: decoder_helpers.c:154
int demux_GetTitle(demux_t *)
Definition: demux.c:423
@ DEMUX_SET_NEXT_DEMUX_TIME
Definition: vlc_demux.h:220
static int es_out_Control(es_out_t *out, int i_query,...)
Definition: vlc_es_out.h:170
Definition: vlc_configuration.h:331
const vlc_chroma_description_t * vlc_fourcc_GetChromaDescription(vlc_fourcc_t i_fourcc)
It returns a vlc_chroma_description_t describing the requested fourcc or NULL if not found.
Definition: fourcc.c:848
Internal module descriptor.
Definition: modules.h:78
void demux_PacketizerDestroy(decoder_t *p_packetizer)
This function will destroy a packetizer create by demux_PacketizerNew.
Definition: demux.c:403
@ DEMUX_GET_LENGTH
Definition: vlc_demux.h:188
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
int vlc_stream_ReadDir(stream_t *s, input_item_node_t *p_node)
Reads a directory.
Definition: stream.c:749
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
bool demux_FilterEnable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:516
vlc_atomic_rc_t rc
Definition: decoder_helpers.c:230
static bool demux_filter_enable_disable(demux_t *p_demux, const char *psz_demux, bool b_enable)
Definition: demux.c:500
char * psz_url
Full URL or MRL (can be NULL)
Definition: vlc_stream.h:51
@ DEMUX_SET_GROUP_DEFAULT
Definition: vlc_demux.h:209
Decoder context struct.
Definition: vlc_codec.h:566
demux_t * demux_FilterChainNew(demux_t *source, const char *list)
Builds an explicit chain of demux filters.
Definition: demux.c:471
es_format_t fmt_in
Definition: vlc_codec.h:110
demux_t * demux_New(vlc_object_t *p_obj, const char *psz_name, stream_t *s, es_out_t *out)
Definition: demux.c:72
@ DEMUX_SET_POSITION
Definition: vlc_demux.h:185
@ DEMUX_NAV_LEFT
Use the left arrow to select a navigation item on the left.
Definition: vlc_demux.h:267
void vlc_objres_clear(vlc_object_t *obj)
Releases all resources of an object.
Definition: objres.c:84
vlc_rational_t h
Definition: vlc_fourcc.h:751
Definition: vlc_codec.h:242
@ DEMUX_GET_NORMAL_TIME
Definition: vlc_demux.h:192
static int demux_Probe(void *func, bool forced, va_list ap)
Definition: demux.c:96
static int vlc_stream_Control(stream_t *s, int query,...)
Definition: vlc_stream.h:294
struct decoder_owner_callbacks::@182::@184 video
@ DEMUX_GET_SEEKPOINT
Definition: vlc_demux.h:180
vlc_video_context_type
Decoder device type.
Definition: vlc_picture.h:86
@ DEMUX_NAV_POPUP
Activate the popup Menu (for BD).
Definition: vlc_demux.h:271
@ DEMUX_NAV_ACTIVATE
Activate the navigation item selected.
Definition: vlc_demux.h:261
@ DEMUX_CAN_SEEK
Checks whether the stream supports seeking.
Definition: vlc_demux.h:91
stream_t definition
Definition: vlc_stream.h:46
stream_t * s
Input stream.
Definition: vlc_stream.h:65
int decoder_UpdateVideoOutput(decoder_t *dec, vlc_video_context *vctx_out)
Creates/Updates the rest of the video output pipeline.
Definition: decoder_helpers.c:84
es_format_t fmt_in
Definition: vlc_codec.h:251
int vlc_stream_Seek(stream_t *s, uint64_t offset)
Sets the current stream position.
Definition: stream.c:625
bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition: fourcc.c:680
@ DEMUX_NAV_DOWN
Use the down arrow to select a navigation item under.
Definition: vlc_demux.h:265
struct vlc_chroma_description_t::@219 p[4]
#define VLC_DEMUXER_EOF
Definition: vlc_demux.h:44
static int demux_mapping_cmp(const void *k, const void *v)
Definition: demux.c:46
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
@ DEMUX_FILTER_DISABLE
Definition: vlc_demux.h:280
int demux_GetTitle(demux_t *p_demux)
Definition: demux.c:423
int(* pf_control)(stream_t *, int i_query, va_list)
Stream control.
Definition: vlc_stream.h:133
es_format_t fmt_out
Definition: vlc_codec.h:113
Definition: decoder_helpers.c:228
input_item_t * p_input_item
Input item (can be NULL)
Definition: vlc_stream.h:55
vlc_decoder_device *(* get_device)(encoder_t *)
Definition: vlc_codec.h:220
@ DEMUX_NAV_MENU
Activate disc Root Menu.
Definition: vlc_demux.h:273
int demux_GetSeekpoint(demux_t *)
Definition: demux.c:432
VLC object common members.
Definition: vlc_objects.h:43
char * config_ChainCreate(char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
This function will parse a configuration string (psz_string) and.
Definition: chain.c:225
void vlc_decoder_device_Release(vlc_decoder_device *device)
Release a decoder device.
Definition: decoder_helpers.c:213
demux_t * demux_NewAdvanced(vlc_object_t *p_obj, input_thread_t *p_input, const char *module, const char *url, stream_t *s, es_out_t *out, bool b_preparsing)
Definition: demux.c:117
static int64_t samples_from_vlc_tick(vlc_tick_t t, int samp_rate)
Definition: vlc_tick.h:105
static bool var_CreateGetBool(vlc_object_t *p_obj, const char *psz_name)
Create a boolean variable with inherit and get its value.
Definition: vlc_variables.h:536
@ DEMUX_GET_FPS
Definition: vlc_demux.h:222
void config_ChainDestroy(config_chain_t *p_cfg)
This function will release a linked list of config_chain_t (Including the head)
Definition: chain.c:253
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
@ DEMUX_GET_PTS_DELAY
Retrieves the PTS delay (roughly the default buffer duration).
Definition: vlc_demux.h:112
unsigned demux_TestAndClearFlags(demux_t *, unsigned)
Definition: demux.c:414
struct vlc_decoder_device device
Definition: decoder_helpers.c:164
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
char * strdup(const char *)
const char * module_get_name(const module_t *m, bool long_name)
Gets the human-friendly name of a module.
Definition: modules.c:57
#define VLC_USED
Definition: fourcc_gen.c:32
static void demux_DestroyDemux(demux_t *demux)
Definition: demux.c:84
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
void(* destroy)(void *priv)
Definition: vlc_picture.h:82
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:271
module_config_t ** list
Definition: core.c:400
vlc_decoder_device * vlc_decoder_device_Hold(vlc_decoder_device *device)
Hold a decoder device.
Definition: decoder_helpers.c:204
const char name[16]
Definition: httpd.c:1268
@ DEMUX_CAN_CONTROL_PACE
Whether the stream can be read at an arbitrary pace.
Definition: vlc_demux.h:105
Definition: fourcc_gen.c:51
@ DEMUX_FILTER_ENABLE
Enable/Disable a demux filter.
Definition: vlc_demux.h:279
@ ES_OUT_POST_SUBNODE
Definition: vlc_es_out.h:102
@ DEMUX_GET_TITLE
Read the title number currently playing.
Definition: vlc_demux.h:173
static int64_t stream_Size(stream_t *s)
Definition: vlc_stream.h:336
@ DEMUX_GET_POSITION
Definition: vlc_demux.h:184
@ DEMUX_SET_RECORD_STATE
Definition: vlc_demux.h:247
Definition: decoder_helpers.c:162
bool force
Module probe flag.
Definition: vlc_objects.h:58
void decoder_Clean(decoder_t *p_dec)
Unload a decoder module and reset the input/output formats.
Definition: decoder_helpers.c:52
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:133
static char * stream_MimeType(stream_t *s)
Get the mime-type of a stream.
Definition: vlc_stream.h:375
int i_extra_picture_buffers
Number of extra (ie in addition to the DPB) picture buffers needed for decoding.
Definition: vlc_codec.h:122
bool b_frame_drop_allowed
Definition: vlc_codec.h:116
int(* vlc_decoder_device_Open)(vlc_decoder_device *device, vout_window_t *window)
"decoder device" module open entry point
Definition: vlc_codec.h:602
int demux_Demux(demux_t *demux)
Definition: demux.c:202
int decoder_UpdateVideoFormat(decoder_t *dec)
Updates the video output format.
Definition: decoder_helpers.c:79
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
char * psz_filepath
Local file path (if applicable)
Definition: vlc_stream.h:53
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
Chroma related information.
Definition: vlc_fourcc.h:747
@ DEMUX_NAV_RIGHT
Use the right arrow to select a navigation item on the right.
Definition: vlc_demux.h:269
struct encoder_owner_callbacks::@189 video
@ DEMUX_GET_ATTACHMENTS
Definition: vlc_demux.h:232
#define module_unneed(a, b)
Definition: vlc_modules.h:126
int demux_vaControlHelper(stream_t *s, int64_t i_start, int64_t i_end, int64_t i_bitrate, int i_align, int i_query, va_list args)
Definition: demux.c:237
vlc_decoder_device * vlc_encoder_GetDecoderDevice(encoder_t *enc)
encoder
Definition: decoder_helpers.c:296
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
#define static_control_match(foo)
Definition: demux.c:226
void * p_sys
Private data pointer.
Definition: vlc_stream.h:138
Definition: vlc_atomic.h:41
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
vlc_decoder_device * device
Definition: decoder_helpers.c:231
void vlc_video_context_Release(vlc_video_context *vctx)
Definition: decoder_helpers.c:275
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
enum vlc_video_context_type vlc_video_context_GetType(const vlc_video_context *vctx)
Definition: decoder_helpers.c:264
void * vlc_video_context_GetPrivate(vlc_video_context *vctx, enum vlc_video_context_type type)
Definition: decoder_helpers.c:257
#define VLC_DEMUXER_SUCCESS
Definition: vlc_demux.h:46
@ DEMUX_TEST_AND_CLEAR_FLAGS
Check which INPUT_UPDATE_XXX flag is set and reset the ones set.
Definition: vlc_demux.h:166
unsigned plane_count
Definition: vlc_fourcc.h:748
block_t *(* pf_packetize)(decoder_t *, block_t **pp_block)
Definition: vlc_codec.h:179
const struct vlc_decoder_device_operations * ops
Definition: vlc_codec.h:570
vlc_meta_t * p_description
Definition: vlc_codec.h:197