19 #ifndef AVCODEC_VAAPI_ENCODE_H
20 #define AVCODEC_VAAPI_ENCODE_H
26 #if VA_CHECK_VERSION(1, 0, 0)
27 #include <va/va_str.h>
184 VAEncMiscParameterRateControl
rc;
187 VAEncMiscParameterBuffer
misc;
188 VAEncMiscParameterHRD
hrd;
191 VAEncMiscParameterBuffer
misc;
192 VAEncMiscParameterFrameRate
fr;
194 #if VA_CHECK_VERSION(0, 36, 0)
196 VAEncMiscParameterBuffer
misc;
197 VAEncMiscParameterBufferQualityLevel quality;
295 char *
data,
size_t *data_len);
298 char *
data,
size_t *data_len);
302 char *
data,
size_t *data_len);
311 char *
data,
size_t *data_len);
319 char *
data,
size_t *data_len);
324 const AVFrame *input_image,
int *got_packet);
330 #define VAAPI_ENCODE_COMMON_OPTIONS \
332 "Use low-power encoding mode (only available on some platforms; " \
333 "may not support all encoding features)", \
334 OFFSET(common.low_power), AV_OPT_TYPE_BOOL, \
335 { .i64 = 0 }, 0, 1, FLAGS }
This struct aggregates all the (hardware/vendor-specific) "high-level" state, i.e.
VASurfaceID input_surface
VAEncMiscParameterBuffer misc
This structure describes decoded (raw) audio or video data.
VAEntrypoint va_entrypoint
ptrdiff_t const GLvoid * data
int(* write_slice_header)(AVCodecContext *avctx, VAAPIEncodePicture *pic, VAAPIEncodeSlice *slice, char *data, size_t *data_len)
void * codec_sequence_params
AVBufferRef * input_frames_ref
VAEncMiscParameterHRD hrd
size_t picture_params_size
AVHWDeviceContext * device
API-specific header for AV_HWDEVICE_TYPE_VAAPI.
unsigned int va_packed_headers
VAEncMiscParameterFrameRate fr
int(* write_picture_header)(AVCodecContext *avctx, VAAPIEncodePicture *pic, char *data, size_t *data_len)
AVBufferRef * output_buffer_ref
VABufferID * param_buffers
struct VAAPIEncodeContext::@161 rc_params
VASurfaceID recon_surface
int ff_vaapi_encode_init(AVCodecContext *avctx)
VAConfigAttrib config_attributes[MAX_CONFIG_ATTRIBUTES]
AVHWFramesContext * input_frames
VAEncMiscParameterBuffer * global_params[MAX_GLOBAL_PARAMS]
int(* configure)(AVCodecContext *avctx)
struct VAAPIEncodeContext::@163 fr_params
int ff_vaapi_encode_close(AVCodecContext *avctx)
int(* init_picture_params)(AVCodecContext *avctx, VAAPIEncodePicture *pic)
void * codec_picture_params
int(* write_extra_header)(AVCodecContext *avctx, VAAPIEncodePicture *pic, int index, int *type, char *data, size_t *data_len)
AVHWFramesContext * recon_frames
VAAPIEncodeSlice * slices
const VAAPIEncodeProfile * profile
const VAAPIEncodeProfile * profiles
struct VAAPIEncodePicture * next
void * codec_picture_params
int64_t ts_ring[MAX_REORDER_DELAY *3]
AVBufferPool * output_buffer_pool
int(* write_sequence_header)(AVCodecContext *avctx, char *data, size_t *data_len)
struct VAAPIEncodePicture * refs[MAX_PICTURE_REFERENCES]
int ff_vaapi_encode2(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *input_image, int *got_packet)
const struct VAAPIEncodeType * codec
Libavcodec external API header.
VAAPIEncodePicture * pic_start
main external API structure.
int(* write_extra_buffer)(AVCodecContext *avctx, VAAPIEncodePicture *pic, int index, int *type, char *data, size_t *data_len)
Describe the class of an AVClass context structure.
This struct describes a set or pool of "hardware" frames (i.e.
AVBufferRef * recon_frames_ref
VAAPIEncodePicture * pic_end
size_t global_params_size[MAX_GLOBAL_PARAMS]
VAEncMiscParameterRateControl rc
A reference to a data buffer.
size_t sequence_params_size
struct VAAPIEncodeContext::@162 hrd_params
void * codec_slice_params
int(* init_slice_params)(AVCodecContext *avctx, VAAPIEncodePicture *pic, VAAPIEncodeSlice *slice)
VAAPI connection details.
int(* init_sequence_params)(AVCodecContext *avctx)
unsigned int desired_packed_headers
enum VAAPIEncodeContext::@164 issue_mode
This structure stores compressed data.
AVVAAPIDeviceContext * hwctx