Go to the documentation of this file.
24 #ifndef LIBVLC_INPUT_DECODER_H
25 #define LIBVLC_INPUT_DECODER_H 1
42 unsigned lost,
unsigned displayed,
unsigned late,
45 unsigned lost,
unsigned played,
void *userdata);
const char * psz_password
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:177
block_t * vlc_fifo_DequeueAllUnlocked(block_fifo_t *fifo)
Dequeues the all blocks from a locked FIFO.
Definition: fifo.c:83
@ STREAM_CAN_PAUSE
arg1= bool * res=cannot fail
Definition: vlc_stream.h:149
#define vlc_module_begin()
Definition: vlc_plugin.h:267
void decoder_Destroy(decoder_t *p_dec)
Destroy a decoder and reset the structure.
Definition: decoder_helpers.c:70
#define VLC_CODEC_UNKNOWN
Definition: vlc_fourcc.h:27
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
int vlc_stream_vaControl(stream_t *s, int cmd, va_list args)
Use to control the "stream_t *".
Definition: stream.c:687
Mouse state.
Definition: vlc_mouse.h:45
static bool DecoderHasVbi(decoder_t *dec)
Definition: decoder.c:2582
@ VLC_SYSDATA_DIR
Global architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:280
#define AOUT_CHAN_RIGHT
Definition: vlc_es.h:119
void vlc_input_decoder_Wait(vlc_input_decoder_t *)
This function waits for the decoder to actually receive data.
Definition: decoder.c:2500
void vlc_fifo_QueueUnlocked(block_fifo_t *fifo, block_t *block)
Queues a linked-list of blocks into a locked FIFO.
Definition: fifo.c:59
#define VLC_THREAD_PRIORITY_AUDIO
Definition: vlc_threads.h:209
@ VIDEO_ES
Definition: vlc_es.h:603
void aout_DecChangeDelay(audio_output_t *aout, vlc_tick_t delay)
Definition: dec.c:551
static void block_ChainRelease(block_t *p_block)
Definition: vlc_block.h:358
static void Close(vlc_object_t *obj)
Definition: access.c:273
struct vlc_http_resource * resource
Definition: access.c:47
void decoder_Init(decoder_t *p_dec, const es_format_t *restrict p_fmt)
Definition: decoder_helpers.c:37
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:52
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
block_t * decoder_NewAudioBuffer(decoder_t *dec, int samples)
This function will return a new audio buffer usable by a decoder as an output buffer.
Definition: decoder.c:790
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
@ VLC_VIDEOS_DIR
Definition: vlc_configuration.h:319
bool vlc_http_file_can_seek(struct vlc_http_resource *res)
Checks seeking support.
Definition: file.c:196
block_t * vlc_fifo_DequeueUnlocked(block_fifo_t *fifo)
Dequeues the first block from a locked FIFO, if any.
Definition: fifo.c:69
static void vlc_fifo_Wait(vlc_fifo_t *fifo)
Waits on the FIFO.
Definition: vlc_block.h:546
static void ModuleThread_UpdateStatAudio(vlc_input_decoder_t *p_owner, bool lost)
Definition: decoder.c:1240
const char * psz_name
Definition: text_style.c:53
#define VLC_ACCESS_REDIRECT
Special redirection error code.
Definition: vlc_access.h:45
size_t vlc_fifo_GetCount(const vlc_fifo_t *fifo)
Counts blocks in a FIFO.
Definition: fifo.c:47
static float ModuleThread_GetDisplayRate(decoder_t *p_dec)
Definition: decoder.c:775
int vlc_input_decoder_GetVbiPage(vlc_input_decoder_t *owner, bool *opaque)
Definition: decoder.c:2588
bool vlc_input_decoder_IsEmpty(vlc_input_decoder_t *p_owner)
This function returns true if the decoder fifo is empty and false otherwise.
Definition: decoder.c:2247
static void DecoderThread_DecodeBlock(vlc_input_decoder_t *p_owner, block_t *p_block)
Definition: decoder.c:1322
@ RELOAD_DECODER
Definition: decoder.c:86
void vlc_input_decoder_StopWait(vlc_input_decoder_t *)
This function exits the waiting mode of the decoder.
Definition: decoder.c:2490
Definition: vlc_subpicture.h:85
block_t * vlc_http_live_read(struct vlc_http_resource *res)
Definition: live.c:75
@ VLC_PKG_LIB_DIR
Package-specific architecture-dependent read-only data directory (e.g.
Definition: vlc_configuration.h:275
int vlc_input_decoder_GetCcState(vlc_input_decoder_t *, vlc_fourcc_t, int i_channel, bool *pb_decode)
This function returns an error if the requested channel does not exist and set pb_decode to the chann...
Definition: decoder.c:2438
void vlc_input_decoder_GetCcDesc(vlc_input_decoder_t *p_owner, decoder_cc_desc_t *p_desc)
This function get cc channels descriptions.
Definition: decoder.c:2354
static picture_t * thumbnailer_buffer_new(decoder_t *p_dec)
Definition: decoder.c:1138
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
static void DecoderThread_ChangeDelay(vlc_input_decoder_t *p_owner, vlc_tick_t delay)
Definition: decoder.c:1573
@ VLC_DESKTOP_DIR
Definition: vlc_configuration.h:312
Definition: vlc_subpicture.h:135
uint8_t i_608_channels
Definition: vlc_codec.h:207
void vlc_input_decoder_ChangeRate(vlc_input_decoder_t *owner, float rate)
Changes the decoder rate.
Definition: decoder.c:2464
char * vlc_http_res_get_redirect(struct vlc_http_resource *restrict res)
Definition: resource.c:236
bool b_preparsing
True if this access is used to preparse.
Definition: vlc_stream.h:54
#define BLOCK_FLAG_CORRUPTED
This block is corrupted and/or there is data loss
Definition: vlc_block.h:87
void vlc_input_decoder_Decode(vlc_input_decoder_t *p_owner, block_t *p_block, bool b_do_pace)
Put a block_t in the decoder's fifo.
Definition: decoder.c:2217
#define VLC_CODEC_H264
Definition: vlc_fourcc.h:37
#define AOUT_DEC_CHANGED
Definition: aout_internal.h:155
block_t *(* pf_block)(stream_t *, bool *eof)
Read data block.
Definition: vlc_stream.h:103
int sout_InputDelete(sout_instance_t *p_sout, sout_packetizer_input_t *p_input)
Definition: stream_output.c:195
int vlc_input_decoder_SetVbiOpaque(vlc_input_decoder_t *, bool opaque)
Definition: decoder.c:2605
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
void vlc_input_decoder_ChangePause(vlc_input_decoder_t *, bool b_paused, vlc_tick_t i_date)
This function changes the pause state.
Definition: decoder.c:2450
#define BLOCK_FLAG_PREROLL
This block has to be decoded but not be displayed.
Definition: vlc_block.h:85
void vlc_input_decoder_SetVoutMouseEvent(vlc_input_decoder_t *, vlc_mouse_event, void *)
Definition: decoder.c:2613
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
int vlc_input_decoder_SetVbiOpaque(vlc_input_decoder_t *owner, bool opaque)
Definition: decoder.c:2605
static void block_FifoPut(block_fifo_t *fifo, block_t *block)
Immediately queue one block at the end of a FIFO.
Definition: vlc_block.h:660
reload
Definition: decoder.c:59
#define vlc_http_live_get_type
Definition: live.h:38
#define module_need_var(a, b, c)
Definition: vlc_modules.h:123
#define set_callbacks(activate, deactivate)
Definition: vlc_plugin.h:320
static char * config_getLibraryDirReal(const char *fallback)
Definition: dirs.m:46
Definition: vlc_codec.h:205
const struct decoder_owner_callbacks * cbs
Definition: vlc_codec.h:200
int vlc_input_decoder_SetCcState(vlc_input_decoder_t *, vlc_fourcc_t, int i_channel, bool b_decode)
This function activates the request closed caption channel.
Definition: decoder.c:2383
void vout_ChangeSpuRate(vout_thread_t *vout, size_t channel_id, float rate)
This function will change the rate of the spu channel It is thread safe.
Definition: video_output.c:1602
#define VLC_CODEC_HEVC
Definition: vlc_fourcc.h:141
int access_vaDirectoryControlHelper(stream_t *p_access, int i_query, va_list args)
Default pf_control callback for directory accesses.
Definition: access.c:196
@ DATA_ES
Definition: vlc_es.h:606
bool vlc_input_decoder_IsEmpty(vlc_input_decoder_t *)
This function returns true if the decoder fifo is empty and false otherwise.
Definition: decoder.c:2247
#define VLC_CODEC_VP6F
Definition: vlc_fourcc.h:68
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
void vout_ChangeDelay(vout_thread_t *vout, vlc_tick_t delay)
This function will change the delay of the vout It is thread safe.
Definition: video_output.c:1571
#define VLCDEC_ECRITICAL
Definition: vlc_codec.h:127
int i_reorder_depth
Definition: vlc_codec.h:209
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
static const struct decoder_owner_callbacks dec_audio_cbs
Definition: decoder.c:1764
static void ModuleThread_QueueCc(decoder_t *p_videodec, block_t *p_cc, const decoder_cc_desc_t *p_desc)
Definition: decoder.c:1013
static const struct decoder_owner_callbacks dec_video_cbs
Definition: decoder.c:1742
int(* pf_decode)(decoder_t *, block_t *p_block)
Definition: vlc_codec.h:150
struct vlc_http_mgr * vlc_http_mgr_create(vlc_object_t *obj, struct vlc_http_cookie_jar_t *jar)
Creates an HTTP connection manager.
Definition: connmgr.c:290
vlc_input_decoder_t * vlc_input_decoder_Create(vlc_object_t *p_parent, const es_format_t *fmt, input_resource_t *p_resource)
Spawn a decoder thread outside of the input thread.
Definition: decoder.c:2136
const char * vlc_fourcc_GetDescription(int cat, vlc_fourcc_t fourcc)
It returns the description of the given fourcc or NULL if not found.
Definition: fourcc.c:197
void vlc_input_decoder_GetCcDesc(vlc_input_decoder_t *, decoder_cc_desc_t *)
This function get cc channels descriptions.
Definition: decoder.c:2354
bool vlc_input_decoder_HasFormatChanged(vlc_input_decoder_t *p_owner, es_format_t *p_fmt, vlc_meta_t **pp_meta)
This function will return true if the ES format or meta data have changed since the last call.
Definition: decoder.c:2544
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
void vlc_input_decoder_ChangeDelay(vlc_input_decoder_t *owner, vlc_tick_t delay)
This function changes the delay.
Definition: decoder.c:2471
void vlc_input_decoder_SetVoutMouseEvent(vlc_input_decoder_t *owner, vlc_mouse_event mouse_event, void *user_data)
Definition: decoder.c:2613
stream_t * stream_FilterChainNew(stream_t *source, const char *list)
Builds an explicit chain of stream filters.
Definition: stream_filter.c:109
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:598
void vlc_http_res_destroy(struct vlc_http_resource *res)
Destroys an HTTP resource.
Definition: resource.c:162
void aout_DecFlush(audio_output_t *)
Definition: dec.c:558
static picture_t * ModuleThread_NewVideoBuffer(decoder_t *p_dec)
Definition: decoder.c:638
void vout_Release(vout_thread_t *vout)
Definition: video_output.c:1906
float pf_peak[(2)]
Definition: vlc_es.h:60
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
#define set_shortname(shortname)
Definition: vlc_plugin.h:299
vout_thread_t * vout
Definition: vout_internal.h:44
uintmax_t vlc_http_file_get_size(struct vlc_http_resource *res)
Gets file size.
Definition: file.c:178
char * vlc_getProxyUrl(const char *url)
Determines the network proxy server to use (if any).
Definition: netconf.m:44
Definition: vlc_codec.h:101
#define vlc_tick_sleep(d)
Definition: vlc_threads.h:902
#define _(str)
Definition: vlc_fixups.h:374
stream_t * vlc_stream_AttachmentNew(vlc_object_t *p_this, input_attachment_t *attachement)
Definition: stream_memory.c:90
void vout_ChangePause(vout_thread_t *vout, bool is_paused, vlc_tick_t date)
This function will (un)pause the display of pictures.
Definition: video_output.c:1478
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
static int FileSeek(stream_t *access, uint64_t pos)
Definition: access.c:60
vlc_tick_t date
display date
Definition: vlc_picture.h:134
int vlc_input_decoder_DelVoutOverlay(vlc_input_decoder_t *owner, size_t channel)
Definition: decoder.c:2657
Internal state for block queues.
Definition: fifo.c:38
void(* pf_flush)(decoder_t *)
Definition: vlc_codec.h:183
#define MAX_CC_DECODERS
Definition: decoder.c:164
void picture_pool_Release(picture_pool_t *pool)
Releases a pool created by picture_pool_New() or picture_pool_NewFromFormat().
Definition: picture_pool.c:61
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
@ STREAM_SET_PAUSE_STATE
arg1= bool res=can fail
Definition: vlc_stream.h:165
static vlc_input_decoder_t * dec_get_owner(decoder_t *p_dec)
Definition: decoder.c:193
@ VLC_LIB_DIR
Global architecture-dependent read-only directory (e.g.
Definition: vlc_configuration.h:283
static void vlc_fifo_Lock(vlc_fifo_t *fifo)
Locks a block FIFO.
Definition: vlc_block.h:504
#define vlc_dialog_display_error(a, b, c,...)
Definition: vlc_dialog.h:73
#define VLC_CODEC_AV1
Definition: vlc_fourcc.h:125
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
void picture_Reset(picture_t *p_picture)
This function will reset a picture information (properties and quantizers).
Definition: picture.c:91
#define AOUT_DEC_FAILED
Definition: aout_internal.h:156
vlc_tick_t i_start
beginning of display date
Definition: vlc_subpicture.h:184
int sout_InputSendBuffer(sout_instance_t *p_sout, sout_packetizer_input_t *p_input, block_t *p_buffer)
Definition: stream_output.c:242
static char * getenv(const char *name)
Definition: vlc_fixups.h:292
static block_t * FileRead(stream_t *access, bool *restrict eof)
Definition: access.c:50
vlc_tick_t i_length
Definition: vlc_block.h:131
vlc_video_context * vlc_video_context_Hold(vlc_video_context *vctx)
Definition: decoder_helpers.c:269
int vlc_http_res_set_login(struct vlc_http_resource *res, const char *username, const char *password)
Definition: resource.c:319
#define VLC_CODEC_MP4V
Definition: vlc_fourcc.h:31
static size_t block_FifoSize(block_fifo_t *fifo)
Definition: vlc_block.h:669
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
static vlc_decoder_device * thumbnailer_get_device(decoder_t *p_dec)
Definition: decoder.c:1129
#define set_category(i_id)
Definition: vlc_plugin.h:368
void vout_PutPicture(vout_thread_t *vout, picture_t *picture)
It gives to the vout a picture to be displayed.
Definition: video_output.c:470
Video picture.
Definition: vlc_picture.h:120
static int ModuleThread_PlayVideo(vlc_input_decoder_t *p_owner, picture_t *p_picture)
Definition: decoder.c:1028
#define change_safe()
Definition: vlc_plugin.h:500
int asprintf(char **, const char *,...)
@ VLC_HOME_DIR
Definition: vlc_configuration.h:307
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
static bool vlc_fifo_IsEmpty(const vlc_fifo_t *fifo)
Definition: vlc_block.h:630
struct vlc_http_mgr * manager
Definition: access.c:46
void aout_DecGetResetStats(audio_output_t *, unsigned *, unsigned *)
#define set_description(desc)
Definition: vlc_plugin.h:303
Mutex.
Definition: vlc_threads.h:225
bool b_wants_substreams
Definition: stream_output.h:60
#define VLCDEC_SUCCESS
Definition: vlc_codec.h:126
es_out_t * out
Definition: vlc_stream.h:68
void vout_SetSpuHighlight(vout_thread_t *vout, const vlc_spu_highlight_t *spu_hl)
Definition: video_output.c:432
const char * psz_location
Location (URL with the scheme stripped)
Definition: vlc_stream.h:52
char * strndup(const char *, size_t)
block_t *(* pf_get_cc)(decoder_t *, decoder_cc_desc_t *)
Definition: vlc_codec.h:191
#define VOUT_SPU_CHANNEL_INVALID
Definition: vlc_vout.h:127
#define PREROLL_NONE
Definition: decoder.c:138
picture_t * picture_pool_Wait(picture_pool_t *pool)
Obtains a picture from a pool.
Definition: picture_pool.c:201
static void vlc_fifo_Signal(vlc_fifo_t *fifo)
Wakes up one thread waiting on the FIFO, if any.
Definition: vlc_block.h:530
int vlc_input_decoder_AddVoutOverlay(vlc_input_decoder_t *owner, subpicture_t *sub, size_t *channel)
Definition: decoder.c:2627
static vlc_decoder_device * ModuleThread_GetDecoderDevice(decoder_t *p_dec)
Definition: decoder.c:594
@ STREAM_CAN_SEEK
arg1= bool * res=cannot fail
Definition: vlc_stream.h:147
vlc_input_decoder_t * vlc_input_decoder_New(vlc_object_t *parent, es_format_t *, vlc_clock_t *, input_resource_t *, sout_instance_t *, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *userdata)
Spawns a new decoder thread from the input thread.
Definition: decoder.c:2122
void() var_TriggerCallback(vlc_object_t *p_this, const char *psz_name)
Triggers callbacks on a variable.
Definition: variables.c:864
void vout_NextPicture(vout_thread_t *vout, vlc_tick_t *duration)
This function will force to display the next picture while paused.
Definition: video_output.c:1548
#define vlc_module_end()
Definition: vlc_plugin.h:278
void aout_DecChangeRate(audio_output_t *aout, float rate)
Definition: dec.c:544
Vout configuration.
Definition: vout_internal.h:43
es_format_category_e
ES Categories.
Definition: vlc_es.h:600
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
#define VLC_CODEC_VP5
Definition: vlc_fourcc.h:66
@ VLC_VOUT_ORDER_NONE
Definition: vlc_vout.h:72
char * psz_name
Definition: vlc_stream.h:50
static void ModuleThread_QueueSpu(decoder_t *p_dec, subpicture_t *p_spu)
Definition: decoder.c:1297
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
static void DeleteDecoder(vlc_input_decoder_t *p_owner)
Destroys a decoder object.
Definition: decoder.c:1942
Audio output object.
Definition: vlc_aout.h:141
Definition: vlc_es_out.h:143
static bool vlc_input_decoder_HasCCChanFlag(vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel)
Definition: decoder.c:2362
module_t * p_module
Definition: vlc_codec.h:106
static char * config_getDataDirReal(const char *fallback)
Definition: dirs.m:68
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
picture_t * picture_NewFromFormat(const video_format_t *restrict fmt)
Definition: picture.c:259
void vlc_input_decoder_FrameNext(vlc_input_decoder_t *p_dec, vlc_tick_t *pi_duration)
This function force the display of the next picture and fills the stream time consumed.
Definition: decoder.c:2524
char * config_GetUserDir(vlc_userdir_t type)
Definition: dirs.m:191
static char * getAppDependentDir(vlc_userdir_t type)
Definition: dirs.m:157
void vout_PutSubpicture(vout_thread_t *vout, subpicture_t *subpic)
Definition: video_output.c:379
block_t * p_next
Definition: vlc_block.h:119
Definition: vlc_codec.h:47
static void DecoderThread_ProcessInput(vlc_input_decoder_t *p_owner, block_t *p_block)
Decode a block.
Definition: decoder.c:1357
void aout_DecChangePause(audio_output_t *, bool b_paused, vlc_tick_t i_date)
Definition: dec.c:531
ssize_t i_channel
subpicture channel ID
Definition: vlc_subpicture.h:170
#define AOUT_FMTS_IDENTICAL(p_first, p_second)
Definition: vlc_aout.h:64
void block_FifoRelease(block_fifo_t *p_fifo)
Destroys a FIFO created by block_FifoNew().
Definition: fifo.c:103
@ VLC_LOCALE_DIR
Base directory for package read-only locale data.
Definition: vlc_configuration.h:288
Definition: picture_pool.c:42
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
@ VLC_DOCUMENTS_DIR
Definition: vlc_configuration.h:316
#define decoder_Notify(decoder_priv, event,...)
Definition: decoder.c:188
int vlc_input_decoder_GetVbiPage(vlc_input_decoder_t *, bool *opaque)
Definition: decoder.c:2588
#define AOUT_CHANMODE_DOLBYSTEREO
Definition: vlc_es.h:173
static block_t * block_Duplicate(const block_t *p_block)
Duplicates a block.
Definition: vlc_block.h:223
static const struct decoder_owner_callbacks dec_thumbnailer_cbs
Definition: decoder.c:1755
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:558
Internal module descriptor.
Definition: modules.h:78
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
static void * DecoderThread(void *p_data)
The decoding main loop.
Definition: decoder.c:1613
static void vlc_fifo_Unlock(vlc_fifo_t *fifo)
Unlocks a block FIFO.
Definition: vlc_block.h:517
static int InputThread_GetInputAttachments(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: decoder.c:742
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
@ RELOAD_NO_REQUEST
Definition: decoder.c:85
bool pb_peak[(2)]
Definition: vlc_es.h:58
@ VLC_PICTURES_DIR
Definition: vlc_configuration.h:318
block_t * block_Alloc(size_t size)
Allocates a block.
Definition: block.c:108
uint32_t i_flags
Definition: vlc_block.h:126
Video subtitle.
Definition: vlc_subpicture.h:166
block_t * vlc_http_file_read(struct vlc_http_resource *res)
Reads data.
Definition: file.c:232
int(* pf_seek)(stream_t *, uint64_t)
Seek.
Definition: vlc_stream.h:124
#define VLC_CODEC_VP6
Definition: vlc_fourcc.h:67
static void ModuleThread_UpdateStatVideo(vlc_input_decoder_t *p_owner, bool lost)
Definition: decoder.c:1104
static vlc_input_decoder_t * decoder_New(vlc_object_t *p_parent, const es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *p_resource, sout_instance_t *p_sout, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *userdata)
Definition: decoder.c:2049
module_t * module
Definition: access.c:62
char * psz_url
Full URL or MRL (can be NULL)
Definition: vlc_stream.h:51
static int DecoderThread_Reload(vlc_input_decoder_t *p_owner, const es_format_t *restrict p_fmt, enum reload reload)
Definition: decoder.c:230
char * vlc_uri2path(const char *url)
Converts a URI to a local path.
Definition: url.c:247
static void DecoderUpdatePreroll(vlc_tick_t *pi_preroll, const block_t *p)
Definition: decoder.c:825
static void PacketizerGetCc(vlc_input_decoder_t *p_owner, decoder_t *p_dec_cc)
Definition: decoder.c:996
@ VLC_CONFIG_DIR
Definition: vlc_configuration.h:308
ssize_t vout_RegisterSubpictureChannel(vout_thread_t *vout)
Definition: video_output.c:390
Decoder context struct.
Definition: vlc_codec.h:566
void aout_DecDrain(audio_output_t *)
Definition: dec.c:593
static void DecoderThread_ChangeRate(vlc_input_decoder_t *p_owner, float rate)
Definition: decoder.c:1542
es_format_t fmt_in
Definition: vlc_codec.h:110
unsigned i_nb_samples
Definition: vlc_block.h:127
vlc_decoder_device * vout_GetDevice(vout_thread_t *vout)
Setup the vout for the given configuration and get an associated decoder device.
Definition: video_output.c:2186
vout_thread_t * vout_Hold(vout_thread_t *vout)
Definition: video_output.c:2047
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
stream_t * vlc_access_NewMRL(vlc_object_t *parent, const char *mrl)
Opens a new read-only byte stream.
Definition: access.c:188
static void ModuleThread_PlaySpu(vlc_input_decoder_t *p_owner, subpicture_t *p_subpic)
Definition: decoder.c:1263
void vout_ChangeRate(vout_thread_t *vout, float rate)
This function will change the rate of the vout It is thread safe.
Definition: video_output.c:1583
int vlc_input_decoder_SetVbiPage(vlc_input_decoder_t *, unsigned page)
Definition: decoder.c:2597
Definition: resource.h:43
void vlc_input_decoder_StartWait(vlc_input_decoder_t *p_owner)
This function makes the decoder start waiting for a valid data block from its fifo.
Definition: decoder.c:2478
struct decoder_owner_callbacks::@182::@184 video
bool b_force
Definition: vlc_picture.h:135
void vlc_http_mgr_destroy(struct vlc_http_mgr *mgr)
Destroys an HTTP connection manager.
Definition: connmgr.c:305
static void DecoderUpdateFormatLocked(vlc_input_decoder_t *p_owner)
Definition: decoder.c:270
Thread handle.
Definition: vlc_threads.h:180
static int var_SetBool(vlc_object_t *p_obj, const char *psz_name, bool b)
Set the value of an boolean variable.
Definition: vlc_variables.h:308
int aout_DecPlay(audio_output_t *aout, block_t *block)
Definition: dec.c:429
@ VLC_LIBEXEC_DIR
Global executable read-only directory (e.g.
Definition: vlc_configuration.h:285
size_t vlc_fifo_GetBytes(const vlc_fifo_t *fifo)
Counts bytes in a FIFO.
Definition: fifo.c:53
float pf_gain[(2)]
Definition: vlc_es.h:65
void picture_pool_Cancel(picture_pool_t *pool, bool canceled)
Cancel the picture pool.
Definition: picture_pool.c:223
#define DECODER_SPU_VOUT_WAIT_DURATION
Definition: decoder.c:185
stream_t definition
Definition: vlc_stream.h:46
block_fifo_t * block_FifoNew(void)
Creates a thread-safe FIFO queue of blocks.
Definition: fifo.c:90
bool vlc_killed(void)
Checks if the interruption context was "killed".
Definition: interrupt.c:185
void vlc_input_decoder_Flush(vlc_input_decoder_t *p_owner)
Requests that the decoder immediately discard all pending buffers.
Definition: decoder.c:2298
void sout_InputFlush(sout_instance_t *p_sout, sout_packetizer_input_t *p_input)
Definition: stream_output.c:232
vlc_tick_t i_pts
Definition: vlc_block.h:129
@ VLC_PKG_DATA_DIR
Package-specific architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:273
int vlc_input_decoder_SetSpuHighlight(vlc_input_decoder_t *p_owner, const vlc_spu_highlight_t *spu_hl)
Definition: decoder.c:2674
#define change_private()
Definition: vlc_plugin.h:492
struct decoder_owner_callbacks::@182::@185 audio
void vlc_input_decoder_StartWait(vlc_input_decoder_t *)
This function makes the decoder start waiting for a valid data block from its fifo.
Definition: decoder.c:2478
const char * psz_mime
Definition: image.c:634
static void DecoderPlayCc(vlc_input_decoder_t *p_owner, block_t *p_cc, const decoder_cc_desc_t *p_desc)
Definition: decoder.c:961
struct vlc_http_resource * vlc_http_file_create(struct vlc_http_mgr *mgr, const char *uri, const char *ua, const char *ref)
Creates an HTTP file.
Definition: file.c:113
static void DecoderUnsupportedCodec(decoder_t *p_dec, const es_format_t *fmt, bool b_decoding)
Definition: decoder.c:2030
#define VLC_ENOOBJ
Object not found.
Definition: vlc_common.h:482
static int LoadDecoder(decoder_t *p_dec, bool b_packetizer, const es_format_t *restrict p_fmt)
Load a decoder module.
Definition: decoder.c:201
void vout_Flush(vout_thread_t *vout, vlc_tick_t date)
This function will ensure that all ready/displayed pictures have at most the provided date.
Definition: video_output.c:1538
#define static_assert
Definition: vlc_fixups.h:370
int vlc_stream_Seek(stream_t *s, uint64_t offset)
Sets the current stream position.
Definition: stream.c:625
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:196
#define AOUT_CHAN_LEFT
Definition: vlc_es.h:118
@ AUDIO_ES
Definition: vlc_es.h:604
int vlc_input_decoder_SetVbiPage(vlc_input_decoder_t *owner, unsigned page)
Definition: decoder.c:2597
void vlc_input_decoder_ChangeDelay(vlc_input_decoder_t *, vlc_tick_t i_delay)
This function changes the delay.
Definition: decoder.c:2471
void vout_ChangeSpuDelay(vout_thread_t *vout, size_t channel_id, vlc_tick_t delay)
This function will change the delay of the spu channel It is thread safe.
Definition: video_output.c:1593
@ VLC_PUBLICSHARE_DIR
Definition: vlc_configuration.h:315
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
static const struct decoder_owner_callbacks dec_spu_cbs
Definition: decoder.c:1772
static int CreateVoutIfNeeded(vlc_input_decoder_t *)
Definition: decoder.c:512
@ STREAM_GET_PTS_DELAY
arg1= vlc_tick_t* res=cannot fail
Definition: vlc_stream.h:155
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:43
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
@ UNKNOWN_ES
Definition: vlc_es.h:602
input_thread_t * input
Definition: access.c:47
void vlc_input_decoder_Drain(vlc_input_decoder_t *p_owner)
Signals that there are no further blocks to decode, and requests that the decoder drain all pending b...
Definition: decoder.c:2286
input_item_t * p_input_item
Input item (can be NULL)
Definition: vlc_stream.h:55
Definition: vlc_url.h:145
int vlc_http_res_get_status(struct vlc_http_resource *res)
Definition: resource.c:131
VLC object common members.
Definition: vlc_objects.h:43
#define change_volatile()
Definition: vlc_plugin.h:496
static vlc_tick_t ModuleThread_GetDisplayDate(decoder_t *p_dec, vlc_tick_t system_now, vlc_tick_t i_ts)
Definition: decoder.c:758
static struct input_attachment_priv * input_attachment_priv(input_attachment_t *a)
Definition: attachment.c:35
#define SUBCAT_INPUT_ACCESS
Definition: vlc_plugin.h:167
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
#define set_capability(cap, score)
Definition: vlc_plugin.h:311
static int ModuleThread_UpdateVideoFormat(decoder_t *p_dec, vlc_video_context *vctx)
Definition: decoder.c:410
vlc_input_decoder_t * vlc_input_decoder_New(vlc_object_t *parent, es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *resource, sout_instance_t *p_sout, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *cbs_userdata)
Spawns a new decoder thread from the input thread.
Definition: decoder.c:2122
bool b_ephemer
If this flag is set to true the subtitle will be displayed until the next one appear.
Definition: vlc_subpicture.h:186
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define vout_FlushAll(vout)
Empty all the pending pictures in the vout.
Definition: vlc_vout.h:147
void vlc_input_decoder_ChangePause(vlc_input_decoder_t *p_owner, bool b_paused, vlc_tick_t i_date)
This function changes the pause state.
Definition: decoder.c:2450
static block_t * LiveRead(stream_t *access, bool *restrict eof)
Definition: access.c:116
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
bool b_still
Definition: vlc_picture.h:136
#define VLC_THREAD_PRIORITY_VIDEO
Definition: vlc_threads.h:210
char * strdup(const char *)
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
uint64_t i_708_channels
Definition: vlc_codec.h:208
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
char * config_GetSysPath(vlc_sysdir_t type, const char *filename)
Gets an installation directory.
Definition: dirs.m:96
@ SOUT_INPUT_SET_SPU_HIGHLIGHT
Definition: stream_output.h:54
#define vlc_http_file_get_type
Definition: file.h:84
#define VLCDEC_RELOAD
Definition: vlc_codec.h:128
const char * psz_authtype
http authtype to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:173
#define VLC_USED
Definition: fourcc_gen.c:32
static int Open(vlc_object_t *obj)
Definition: access.c:154
@ RELOAD_DECODER_AOUT
Definition: decoder.c:87
sout_packetizer_input_t * sout_InputNew(sout_instance_t *p_sout, const es_format_t *p_fmt)
Definition: stream_output.c:164
static int ModuleThread_UpdateAudioFormat(decoder_t *p_dec)
Definition: decoder.c:322
void vout_FlushSubpictureChannel(vout_thread_t *vout, size_t channel)
Definition: video_output.c:424
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
int vlc_input_decoder_GetCcState(vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel, bool *pb_decode)
This function returns an error if the requested channel does not exist and set pb_decode to the chann...
Definition: decoder.c:2438
#define vlc_credential_store(a, b)
Definition: vlc_keystore.h:260
static bool var_GetBool(vlc_object_t *p_obj, const char *psz_name)
Get a boolean value.
Definition: vlc_variables.h:390
int vlc_input_decoder_SetCcState(vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel, bool b_decode)
This function activates the request closed caption channel.
Definition: decoder.c:2383
enum vlc_system_dir vlc_sysdir_t
System directory identifiers.
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
const char name[16]
Definition: httpd.c:1268
struct vlc_http_resource * vlc_http_live_create(struct vlc_http_mgr *mgr, const char *uri, const char *ua, const char *ref)
Definition: live.c:58
ssize_t(* pf_read)(stream_t *, void *buf, size_t len)
Read data.
Definition: vlc_stream.h:85
int() var_Type(vlc_object_t *p_this, const char *psz_name)
Get the type of a variable.
Definition: variables.c:655
int vlc_input_decoder_DelVoutOverlay(vlc_input_decoder_t *, size_t)
Definition: decoder.c:2657
Condition variable.
Definition: vlc_threads.h:349
void aout_FormatPrepare(audio_sample_format_t *p_format)
Definition: common.c:87
vlc_vout_order
vout or spu_channel order
Definition: vlc_vout.h:70
block_t * vlc_stream_ReadBlock(stream_t *s)
Reads a data block from a byte stream.
Definition: stream.c:561
@ STREAM_GET_CONTENT_TYPE
arg1= char ** res=can fail
Definition: vlc_stream.h:160
#define N_(str)
Definition: vlc_fixups.h:375
#define add_bool(name, v, text, longtext, advc)
Definition: vlc_plugin.h:446
@ VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:313
@ SPU_ES
Definition: vlc_es.h:605
static int var_SetInteger(vlc_object_t *p_obj, const char *psz_name, int64_t i)
Set the value of an integer variable.
Definition: vlc_variables.h:293
bool vout_IsEmpty(vout_thread_t *vout)
This function will return true if no more pictures are to be displayed.
Definition: video_output.c:338
static int FileControl(stream_t *access, int query, va_list args)
Definition: access.c:69
void vlc_input_decoder_Delete(vlc_input_decoder_t *p_owner)
Kills a decoder thread and waits until it's finished.
Definition: decoder.c:2151
#define VLC_CODEC_DIRAC
Definition: vlc_fourcc.h:56
Definition: vlc_keystore.h:164
vlc_tick_t i_stop
end of display date
Definition: vlc_subpicture.h:185
static void DecoderThread_ChangePause(vlc_input_decoder_t *p_owner, bool paused, vlc_tick_t date)
Definition: decoder.c:1516
char * vlc_http_res_get_basic_realm(struct vlc_http_resource *res)
Definition: resource.c:353
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
#define ES_CATEGORY_COUNT
Definition: vlc_es.h:608
static void ModuleThread_QueueAudio(decoder_t *p_dec, block_t *p_aout_buf)
Definition: decoder.c:1254
static void RequestReload(vlc_input_decoder_t *p_owner)
Definition: decoder.c:806
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 void * var_InheritAddress(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:720
@ STREAM_CAN_CONTROL_PACE
arg1= bool * res=cannot fail
Definition: vlc_stream.h:150
@ VLC_TEMPLATES_DIR
Definition: vlc_configuration.h:314
void vlc_input_decoder_FrameNext(vlc_input_decoder_t *p_owner, vlc_tick_t *pi_duration)
This function force the display of the next picture and fills the stream time consumed.
Definition: decoder.c:2524
size_t vlc_input_decoder_GetFifoSize(vlc_input_decoder_t *p_owner)
This function returns the current size in bytes of the decoder fifo.
Definition: decoder.c:2577
#define add_string(name, value, text, longtext, advc)
Definition: vlc_plugin.h:385
void(* vlc_mouse_event)(const vlc_mouse_t *mouse, void *user_data)
Mouse event callback.
Definition: vlc_mouse.h:62
static char * config_GetHomeDir(void)
Definition: dirs.m:147
#define vlc_credential_get(a, b, c, d, e, f,...)
Definition: vlc_keystore.h:245
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
#define PREROLL_FORCED
Definition: decoder.c:139
static subpicture_t * ModuleThread_NewSpuBuffer(decoder_t *p_dec, const subpicture_updater_t *p_updater)
Definition: decoder.c:650
picture_pool_t * picture_pool_NewFromFormat(const video_format_t *fmt, unsigned count)
Allocates pictures from the heap and creates a picture pool with them.
Definition: picture_pool.c:128
#define set_subcategory(i_id)
Definition: vlc_plugin.h:372
static int LiveControl(stream_t *access, int query, va_list args)
Definition: access.c:126
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
int vlc_input_decoder_AddVoutOverlay(vlc_input_decoder_t *, subpicture_t *, size_t *)
Definition: decoder.c:2627
const char * psz_username
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:175
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
ssize_t vout_RegisterSubpictureChannelInternal(vout_thread_t *vout, vlc_clock_t *clock, enum vlc_vout_order *out_order)
Definition: video_output.c:402
void vout_UnregisterSubpictureChannel(vout_thread_t *vout, size_t channel)
Definition: video_output.c:416
static void ModuleThread_QueueThumbnail(decoder_t *p_dec, picture_t *p_pic)
Definition: decoder.c:1153
bool vlc_stream_Eof(const stream_t *s)
Checks for end of stream.
Definition: stream.c:618
char * psz_filepath
Local file path (if applicable)
Definition: vlc_stream.h:53
@ VLC_USERDATA_DIR
Definition: vlc_configuration.h:309
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
#define CAT_INPUT
Definition: vlc_plugin.h:165
bool vlc_input_decoder_HasFormatChanged(vlc_input_decoder_t *p_dec, es_format_t *p_fmt, vlc_meta_t **pp_meta)
This function will return true if the ES format or meta data have changed since the last call.
Definition: decoder.c:2544
#define BLOCK_FLAG_CORE_PRIVATE_RELOADED
Definition: decoder.c:186
@ STREAM_GET_SIZE
arg1= uint64_t * res=can fail
Definition: vlc_stream.h:152
void vlc_input_decoder_ChangeRate(vlc_input_decoder_t *dec, float rate)
Changes the decoder rate.
Definition: decoder.c:2464
Video output thread descriptor.
Definition: vlc_vout.h:55
static bool aout_replaygain_changed(const audio_replay_gain_t *a, const audio_replay_gain_t *b)
Definition: decoder.c:308
static int ModuleThread_PlayAudio(vlc_input_decoder_t *p_owner, block_t *p_audio)
Definition: decoder.c:1169
static bool config_isBundle()
Definition: dirs.m:39
void vout_GetResetStatistic(vout_thread_t *vout, unsigned *restrict displayed, unsigned *restrict lost, unsigned *restrict late)
Definition: video_output.c:330
int sout_InputControl(sout_instance_t *p_sout, sout_packetizer_input_t *p_input, int i_query,...)
Definition: stream_output.c:220
#define BLOCK_FLAG_DISCONTINUITY
The content doesn't follow the last block, possible some blocks in between have been lost.
Definition: vlc_block.h:67
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
#define module_unneed(a, b)
Definition: vlc_modules.h:126
void vlc_input_decoder_Wait(vlc_input_decoder_t *p_owner)
This function waits for the decoder to actually receive data.
Definition: decoder.c:2500
static void MouseEvent(const vlc_mouse_t *newmouse, void *user_data)
Definition: decoder.c:294
size_t vlc_input_decoder_GetFifoSize(vlc_input_decoder_t *p_dec)
This function returns the current size in bytes of the decoder fifo.
Definition: decoder.c:2577
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
static vlc_input_decoder_t * CreateDecoder(vlc_object_t *p_parent, const es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *p_resource, sout_instance_t *p_sout, bool b_thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *cbs_userdata)
Create a decoder object.
Definition: decoder.c:1790
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
const char * psz_realm
http realm or smb domain to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:170
@ STREAM_CAN_FASTSEEK
arg1= bool * res=cannot fail
Definition: vlc_stream.h:148
enum vlc_user_dir vlc_userdir_t
Stream output instance.
Definition: stream_output.h:33
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vlc_tick_t vlc_clock_ConvertToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function converts a timestamp from stream to system.
Definition: clock.c:502
void * p_sys
Private data pointer.
Definition: vlc_stream.h:138
Definition: vlc_atomic.h:41
Definition: vlc_block.h:117
static void ModuleThread_QueueVideo(decoder_t *p_dec, picture_t *p_pic)
Definition: decoder.c:1119
void vlc_input_decoder_StopWait(vlc_input_decoder_t *p_owner)
This function exits the waiting mode of the decoder.
Definition: decoder.c:2490
int vlc_http_file_seek(struct vlc_http_resource *res, uintmax_t offset)
Sets the read offset.
Definition: file.c:204
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
bool pb_gain[(2)]
Definition: vlc_es.h:63
void vlc_video_context_Release(vlc_video_context *vctx)
Definition: decoder_helpers.c:275
int64_t i_order
Definition: vlc_subpicture.h:176
static void vlc_fifo_WaitCond(vlc_fifo_t *fifo, vlc_cond_t *condvar)
Definition: vlc_block.h:551
#define VLC_CODEC_VP8
Definition: vlc_fourcc.h:122
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:82
#define VLC_CODEC_TELETEXT
Definition: vlc_fourcc.h:594
@ VLC_MUSIC_DIR
Definition: vlc_configuration.h:317
ssize_t vlc_stream_ReadPartial(stream_t *s, void *buf, size_t len)
Reads partial data from a byte stream.
Definition: stream.c:463
#define VLC_CODEC_CEA708
Definition: vlc_fourcc.h:614
struct decoder_owner_callbacks::@182::@186 spu
void vlc_credential_clean(vlc_credential *p_credential)
Clean a credential struct.
Definition: keystore.c:359
static void DecoderWaitUnblock(vlc_input_decoder_t *p_owner)
Definition: decoder.c:813
static void DecoderThread_Flush(vlc_input_decoder_t *p_owner)
Definition: decoder.c:1456
@ VLC_PKG_LIBEXEC_DIR
Package-specific executable read-only directory (e.g.
Definition: vlc_configuration.h:277
void aout_DecDelete(audio_output_t *)
Stops all plugins involved in the audio output.
Definition: dec.c:143
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
void vlc_credential_init(vlc_credential *p_credential, const vlc_url_t *p_url)
Init a credential struct.
Definition: keystore.c:349
int aout_DecNew(audio_output_t *, const audio_sample_format_t *, int profile, struct vlc_clock_t *clock, const audio_replay_gain_t *)
Creates an audio output.
Definition: dec.c:56
char * config_GetLibDir(void)
Gets the arch-specific installation directory.
Definition: dirs.m:91
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
#define VLC_CODEC_CEA608
Definition: vlc_fourcc.h:613
block_t *(* pf_packetize)(decoder_t *, block_t **pp_block)
Definition: vlc_codec.h:179
#define add_shortcut(...)
Definition: vlc_plugin.h:291
vlc_meta_t * p_description
Definition: vlc_codec.h:197