126# define VLCDEC_SUCCESS VLC_SUCCESS
127# define VLCDEC_ECRITICAL VLC_EGENERIC
128# define VLCDEC_RELOAD (-100)
518 msg_Warn( dec,
"can't get output subpicture" );
641#define set_callback_dec_device(activate, priority) \
643 vlc_decoder_device_Open open__ = activate; \
645 set_callback(activate) \
647 set_capability( "decoder device", priority )
#define VLC_USED
Definition: fourcc_gen.c:32
#define VLC_API
Definition: fourcc_gen.c:31
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:257
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:301
vlc_decoder_device * vlc_decoder_device_Create(vlc_object_t *, vlc_window_t *window)
Create a decoder device from a window.
Definition: decoder_device.c:49
void vlc_decoder_device_Release(vlc_decoder_device *device)
Release a decoder device.
Definition: decoder_device.c:81
int(* vlc_decoder_device_Open)(vlc_decoder_device *device, vlc_window_t *window)
"decoder device" module open entry point
Definition: vlc_codec.h:639
struct vlc_decoder_device vlc_decoder_device
Decoder context struct.
vlc_decoder_device_type
Decoder device type.
Definition: vlc_codec.h:583
vlc_decoder_device * vlc_decoder_device_Hold(vlc_decoder_device *device)
Hold a decoder device.
Definition: decoder_device.c:72
@ VLC_DECODER_DEVICE_AWINDOW
Definition: vlc_codec.h:589
@ VLC_DECODER_DEVICE_NVDEC
Definition: vlc_codec.h:590
@ VLC_DECODER_DEVICE_D3D11VA
Definition: vlc_codec.h:587
@ VLC_DECODER_DEVICE_VIDEOTOOLBOX
Definition: vlc_codec.h:588
@ VLC_DECODER_DEVICE_VDPAU
Definition: vlc_codec.h:585
@ VLC_DECODER_DEVICE_GSTDECODE
Definition: vlc_codec.h:592
@ VLC_DECODER_DEVICE_VAAPI
Definition: vlc_codec.h:584
@ VLC_DECODER_DEVICE_DXVA2
Definition: vlc_codec.h:586
@ VLC_DECODER_DEVICE_MMAL
Definition: vlc_codec.h:591
void decoder_Destroy(decoder_t *p_dec)
Destroy a decoder and reset the structure.
Definition: decoder_helpers.c:71
int decoder_UpdateVideoFormat(decoder_t *dec)
Updates the video output format.
Definition: decoder_helpers.c:80
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:528
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:475
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:546
static void decoder_QueueAudio(decoder_t *dec, vlc_frame_t *p_aout_buf)
This function queues a single audio block to the audio output.
Definition: vlc_codec.h:460
static void decoder_QueueCc(decoder_t *dec, vlc_frame_t *p_cc, const decoder_cc_desc_t *p_desc)
This function queues the Closed Captions.
Definition: vlc_codec.h:442
vlc_frame_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:990
int decoder_UpdateVideoOutput(decoder_t *dec, vlc_video_context *vctx_out)
Creates/Updates the rest of the video output pipeline.
Definition: decoder_helpers.c:85
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:489
static float decoder_GetDisplayRate(decoder_t *dec)
This function returns the current input rate.
Definition: vlc_codec.h:563
void decoder_Init(decoder_t *dec, es_format_t *fmt_in, const es_format_t *fmt)
Initialize a decoder structure before creating the decoder.
void decoder_Clean(decoder_t *p_dec)
Unload a decoder module and reset the input/output formats.
Definition: decoder_helpers.c:54
picture_t * decoder_NewPicture(decoder_t *dec)
Allocates an output picture buffer.
Definition: decoder_helpers.c:155
static vlc_decoder_device * decoder_GetDecoderDevice(decoder_t *dec)
Creates/Updates the output decoder device.
Definition: vlc_codec.h:330
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:427
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:512
static block_t * vlc_encoder_EncodeAudio(encoder_t *encoder, block_t *audio)
Definition: vlc_codec.h:293
static block_t * vlc_encoder_EncodeSub(encoder_t *encoder, subpicture_t *sub)
Definition: vlc_codec.h:300
static block_t * vlc_encoder_EncodeVideo(encoder_t *encoder, picture_t *pic)
Definition: vlc_codec.h:286
void vlc_encoder_Destroy(encoder_t *encoder)
Definition: decoder_helpers.c:173
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:505
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
static bool picture_HasChainedPics(const picture_t *pic)
Check whether a picture has other pictures linked.
Definition: vlc_picture.h:177
Definition: vlc_configuration.h:319
Definition: vlc_codec.h:207
int i_reorder_depth
Definition: vlc_codec.h:210
uint8_t i_608_channels
Definition: vlc_codec.h:208
uint64_t i_708_channels
Definition: vlc_codec.h:209
Definition: vlc_codec.h:48
struct decoder_owner_callbacks::@189::@191 video
int(* get_attachments)(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: vlc_codec.h:91
struct decoder_owner_callbacks::@189::@193 spu
int(* format_update)(decoder_t *, vlc_video_context *)
Definition: vlc_codec.h:54
void(* queue)(decoder_t *, picture_t *)
Definition: vlc_codec.h:59
void(* queue_cc)(decoder_t *, vlc_frame_t *, const decoder_cc_desc_t *)
Definition: vlc_codec.h:61
picture_t *(* buffer_new)(decoder_t *)
Definition: vlc_codec.h:57
vlc_tick_t(* get_display_date)(decoder_t *, vlc_tick_t, vlc_tick_t)
Definition: vlc_codec.h:66
vlc_decoder_device *(* get_device)(decoder_t *)
Definition: vlc_codec.h:53
struct decoder_owner_callbacks::@189::@192 audio
float(* get_display_rate)(decoder_t *)
Definition: vlc_codec.h:69
Definition: vlc_codec.h:102
module_t * p_module
Definition: vlc_codec.h:106
struct vlc_object_t obj
Definition: vlc_codec.h:103
void(* pf_flush)(decoder_t *)
Definition: vlc_codec.h:184
void * p_sys
Definition: vlc_codec.h:107
es_format_t fmt_out
Definition: vlc_codec.h:114
bool b_frame_drop_allowed
Definition: vlc_codec.h:117
const es_format_t * fmt_in
Definition: vlc_codec.h:111
int i_extra_picture_buffers
Number of extra (ie in addition to the DPB) picture buffers needed for decoding.
Definition: vlc_codec.h:123
const struct decoder_owner_callbacks * cbs
Definition: vlc_codec.h:201
vlc_meta_t * p_description
Definition: vlc_codec.h:198
int(* pf_decode)(decoder_t *, vlc_frame_t *frame)
Definition: vlc_codec.h:151
Definition: vlc_codec.h:218
struct encoder_owner_callbacks::@196 video
Definition: vlc_codec.h:255
void * p_sys
Definition: vlc_codec.h:260
config_chain_t * p_cfg
Definition: vlc_codec.h:276
es_format_t fmt_in
Definition: vlc_codec.h:263
int i_threads
Definition: vlc_codec.h:270
module_t * p_module
Definition: vlc_codec.h:259
struct vlc_object_t obj
Definition: vlc_codec.h:256
es_format_t fmt_out
Definition: vlc_codec.h:267
int i_tolerance
Definition: vlc_codec.h:273
int i_iframes
Definition: vlc_codec.h:271
const struct encoder_owner_callbacks * cbs
Definition: vlc_codec.h:280
int i_bframes
Definition: vlc_codec.h:272
const struct vlc_encoder_operations * ops
Definition: vlc_codec.h:279
vlc_video_context * vctx_in
Definition: vlc_codec.h:264
Internal module descriptor.
Definition: modules.h:76
Video picture.
Definition: vlc_picture.h:130
Video subtitle.
Definition: vlc_subpicture.h:167
subpicture_t * p_next
an increasing unique number
Definition: vlc_subpicture.h:177
Definition: vlc_subpicture.h:136
Definition: vlc_codec.h:596
void(* close)(struct vlc_decoder_device *)
Definition: vlc_codec.h:597
Decoder context struct.
Definition: vlc_codec.h:604
enum vlc_decoder_device_type type
Must be set from the "decoder device" module open entry point.
Definition: vlc_codec.h:614
void * sys
Private context that could be used by the "decoder device" module implementation.
Definition: vlc_codec.h:611
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:630
const struct vlc_decoder_device_operations * ops
Definition: vlc_codec.h:607
struct vlc_object_t obj
Definition: vlc_codec.h:605
Definition: vlc_codec.h:244
void(* close)(encoder_t *)
Definition: vlc_codec.h:245
block_t *(* encode_audio)(encoder_t *, block_t *)
Definition: vlc_codec.h:249
block_t *(* encode_sub)(encoder_t *, subpicture_t *)
Definition: vlc_codec.h:250
block_t *(* encode_video)(encoder_t *, picture_t *)
Definition: vlc_codec.h:248
Definition: vlc_frame.h:123
vlc_frame_t * p_next
Definition: vlc_frame.h:124
VLC object common members.
Definition: vlc_objects.h:45
Definition: decoder_device.c:97
Window object.
Definition: vlc_window.h:372
#define block_Release
Definition: vlc_block.h:87
vlc_decoder_device * vlc_encoder_GetDecoderDevice(encoder_t *)
Creates/Updates the output decoder device.
Definition: decoder_helpers.c:164
This file is a collection of common definitions and types.
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
This file defines the elementary streams format types.
@ SPU_ES
Definition: vlc_es.h:617
@ AUDIO_ES
Definition: vlc_es.h:616
@ VIDEO_ES
Definition: vlc_es.h:615
This file defines picture structures and functions in vlc.
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
Window modules interface.