Go to the documentation of this file.
125 # define VLCDEC_SUCCESS VLC_SUCCESS
126 # define VLCDEC_ECRITICAL VLC_EGENERIC
127 # define VLCDEC_RELOAD (-100)
304 return dec->
cbs->
video.get_device( dec );
395 dec->
cbs->
video.queue( dec, p_pic );
410 if( dec->
cbs->
video.queue_cc == NULL )
413 dec->
cbs->
video.queue_cc( dec, p_cc, p_desc );
428 dec->
cbs->
audio.queue( dec, p_aout_buf );
443 dec->
cbs->
spu.queue( dec, p_spu );
457 return dec->
cbs->
audio.format_update( dec );
482 msg_Warn( dec,
"can't get output subpicture" );
515 if( !dec->
cbs->
video.get_display_date )
518 return dec->
cbs->
video.get_display_date( dec, system_now, i_ts );
530 if( !dec->
cbs->
video.get_display_rate )
533 return dec->
cbs->
video.get_display_rate( dec );
604 #define set_callback_dec_device(activate, priority) \
606 vlc_decoder_device_Open open__ = activate; \
608 set_callback(activate) \
610 set_capability( "decoder device", priority )
@ VLC_DECODER_DEVICE_VAAPI
Definition: vlc_codec.h:548
struct vlc_object_t obj
Definition: vlc_codec.h:568
#define VLC_API
Definition: fourcc_gen.c:31
static void decoder_QueueVideo(decoder_t *dec, picture_t *p_pic)
This function queues a single picture to the video output.
Definition: vlc_codec.h:391
@ VIDEO_ES
Definition: vlc_es.h:603
@ VLC_DECODER_DEVICE_MMAL
Definition: vlc_codec.h:555
@ VLC_DECODER_DEVICE_NVDEC
Definition: vlc_codec.h:554
vlc_tick_t(* get_display_date)(decoder_t *, vlc_tick_t, vlc_tick_t)
Definition: vlc_codec.h:66
static float decoder_GetDisplayRate(decoder_t *dec)
This function returns the current input rate.
Definition: vlc_codec.h:527
int i_threads
Definition: vlc_codec.h:262
subpicture_t * p_next
an increasing unique number
Definition: vlc_subpicture.h:177
VLC_EXPORT vlc_decoder_device * vlc_decoder_device_Create(vlc_object_t *, vout_window_t *window)
Create a decoder device from a window.
Definition: decoder_helpers.c:181
Window object.
Definition: vlc_vout_window.h:353
void(* queue_cc)(decoder_t *, block_t *, const decoder_cc_desc_t *)
Definition: vlc_codec.h:61
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
Definition: vlc_subpicture.h:135
uint8_t i_608_channels
Definition: vlc_codec.h:207
static int decoder_UpdateAudioFormat(decoder_t *dec)
This function notifies the audio output pipeline of a new audio output format (fmt_out....
Definition: vlc_codec.h:453
VLC_EXPORT block_t * decoder_NewAudioBuffer(decoder_t *, int i_nb_samples)
This function will return a new audio buffer usable by a decoder as an output buffer.
Definition: decoder.c:790
static int decoder_GetInputAttachments(decoder_t *dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
This function gives all input attachments at once.
Definition: vlc_codec.h:492
int(* get_attachments)(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: vlc_codec.h:91
Definition: vlc_codec.h:205
const struct decoder_owner_callbacks * cbs
Definition: vlc_codec.h:200
VLC_EXPORT void decoder_Destroy(decoder_t *p_dec)
Destroy a decoder and reset the structure.
Definition: decoder_helpers.c:70
float(* get_display_rate)(decoder_t *)
Definition: vlc_codec.h:69
@ VLC_DECODER_DEVICE_D3D11VA
Definition: vlc_codec.h:551
int i_reorder_depth
Definition: vlc_codec.h:209
int(* pf_decode)(decoder_t *, block_t *p_block)
Definition: vlc_codec.h:150
void * opaque
Could be set from the "decoder device" module open entry point and will be used by hardware decoder m...
Definition: vlc_codec.h:593
const struct encoder_owner_callbacks * cbs
Definition: vlc_codec.h:271
Definition: vlc_codec.h:101
static vlc_decoder_device * decoder_GetDecoderDevice(decoder_t *dec)
Creates/Updates the output decoder device.
Definition: vlc_codec.h:298
int i_iframes
Definition: vlc_codec.h:263
struct vlc_object_t obj
Definition: vlc_codec.h:244
void(* pf_flush)(decoder_t *)
Definition: vlc_codec.h:183
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
Definition: vlc_codec.h:216
static void decoder_QueueSub(decoder_t *dec, subpicture_t *p_spu)
This function queues a single subtitle to the video output.
Definition: vlc_codec.h:439
struct vlc_object_t obj
Definition: vlc_codec.h:103
void(* close)(struct vlc_decoder_device *)
Definition: vlc_codec.h:560
static void decoder_QueueCc(decoder_t *dec, block_t *p_cc, const decoder_cc_desc_t *p_desc)
This function queues the Closed Captions.
Definition: vlc_codec.h:406
Video picture.
Definition: vlc_picture.h:120
void * p_sys
Definition: vlc_codec.h:248
int i_bframes
Definition: vlc_codec.h:264
int(* format_update)(decoder_t *, vlc_video_context *)
Definition: vlc_codec.h:54
VLC_EXPORT void decoder_Clean(decoder_t *p_dec)
Unload a decoder module and reset the input/output formats.
Definition: decoder_helpers.c:52
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
vlc_video_context * vctx_in
Definition: vlc_codec.h:252
module_t * p_module
Definition: vlc_codec.h:106
Definition: vlc_codec.h:558
block_t * p_next
Definition: vlc_block.h:119
Definition: vlc_codec.h:47
Definition: vlc_configuration.h:331
static void decoder_QueueAudio(decoder_t *dec, block_t *p_aout_buf)
This function queues a single audio block to the audio output.
Definition: vlc_codec.h:424
Internal module descriptor.
Definition: modules.h:78
struct vlc_decoder_device vlc_decoder_device
Decoder context struct.
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
VLC_EXPORT int decoder_UpdateVideoFormat(decoder_t *dec)
Updates the video output format.
Definition: decoder_helpers.c:79
void * sys
Private context that could be used by the "decoder device" module implementation.
Definition: vlc_codec.h:574
VLC_EXPORT picture_t * decoder_NewPicture(decoder_t *dec)
Allocates an output picture buffer.
Definition: decoder_helpers.c:154
Video subtitle.
Definition: vlc_subpicture.h:166
Decoder context struct.
Definition: vlc_codec.h:566
es_format_t fmt_in
Definition: vlc_codec.h:110
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
Definition: vlc_codec.h:242
struct decoder_owner_callbacks::@182::@184 video
es_format_t fmt_in
Definition: vlc_codec.h:251
struct decoder_owner_callbacks::@182::@185 audio
@ VLC_DECODER_DEVICE_VDPAU
Definition: vlc_codec.h:549
@ AUDIO_ES
Definition: vlc_es.h:604
config_chain_t * p_cfg
Definition: vlc_codec.h:268
es_format_t fmt_out
Definition: vlc_codec.h:113
Definition: decoder_helpers.c:228
VLC object common members.
Definition: vlc_objects.h:43
VLC_EXPORT void vlc_decoder_device_Release(vlc_decoder_device *device)
Release a decoder device.
Definition: decoder_helpers.c:213
uint64_t i_708_channels
Definition: vlc_codec.h:208
#define VLC_USED
Definition: fourcc_gen.c:32
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:271
VLC_EXPORT vlc_decoder_device * vlc_decoder_device_Hold(vlc_decoder_device *device)
Hold a decoder device.
Definition: decoder_helpers.c:204
@ VLC_DECODER_DEVICE_VIDEOTOOLBOX
Definition: vlc_codec.h:552
enum vlc_decoder_device_type type
Must be set from the "decoder device" module open entry point.
Definition: vlc_codec.h:577
static subpicture_t * decoder_NewSubpicture(decoder_t *dec, const subpicture_updater_t *p_dyn)
This function will return a new subpicture usable by a decoder as an output buffer.
Definition: vlc_codec.h:476
@ SPU_ES
Definition: vlc_es.h:605
es_format_t fmt_out
Definition: vlc_codec.h:255
module_t * p_module
Definition: vlc_codec.h:247
void(* queue)(decoder_t *, picture_t *)
Definition: vlc_codec.h:59
void * p_sys
Definition: vlc_codec.h:107
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 i_tolerance
Definition: vlc_codec.h:265
static vlc_tick_t decoder_GetDisplayDate(decoder_t *dec, vlc_tick_t system_now, vlc_tick_t i_ts)
This function converts a decoder timestamp into a display date comparable to vlc_tick_now().
Definition: vlc_codec.h:510
static bool picture_HasChainedPics(const picture_t *pic)
Check whether a picture has other pictures linked.
Definition: vlc_picture.h:168
vlc_decoder_device_type
Decoder device type.
Definition: vlc_codec.h:546
struct encoder_owner_callbacks::@189 video
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
Definition: vlc_block.h:117
VLC_EXPORT vlc_decoder_device * vlc_encoder_GetDecoderDevice(encoder_t *)
Creates/Updates the output decoder device.
Definition: decoder_helpers.c:296
VLC_EXPORT void decoder_Init(decoder_t *dec, const es_format_t *)
Initialize a decoder structure before creating the decoder.
VLC_EXPORT 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
@ VLC_DECODER_DEVICE_AWINDOW
Definition: vlc_codec.h:553
@ VLC_DECODER_DEVICE_DXVA2
Definition: vlc_codec.h:550
struct decoder_owner_callbacks::@182::@186 spu
const struct vlc_decoder_device_operations * ops
Definition: vlc_codec.h:570
vlc_meta_t * p_description
Definition: vlc_codec.h:197