#include <string.h>
#include <va/va.h>
#include <va/va_enc_hevc.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavutil/mastering_display_metadata.h"
#include "atsc_a53.h"
#include "avcodec.h"
#include "cbs.h"
#include "cbs_h265.h"
#include "hw_base_encode_h265.h"
#include "codec_internal.h"
#include "h2645data.h"
#include "h265_profile_level.h"
#include "vaapi_encode.h"
#include "hevc/hevc.h"
Go to the source code of this file.
|
static int | vaapi_encode_h265_write_access_unit (AVCodecContext *avctx, char *data, size_t *data_len, CodedBitstreamFragment *au) |
|
static int | vaapi_encode_h265_add_nal (AVCodecContext *avctx, CodedBitstreamFragment *au, void *nal_unit) |
|
static int | vaapi_encode_h265_write_sequence_header (AVCodecContext *avctx, char *data, size_t *data_len) |
|
static int | vaapi_encode_h265_write_slice_header (AVCodecContext *avctx, VAAPIEncodePicture *pic, VAAPIEncodeSlice *slice, char *data, size_t *data_len) |
|
static int | vaapi_encode_h265_write_extra_header (AVCodecContext *avctx, FFHWBaseEncodePicture *base, int index, int *type, char *data, size_t *data_len) |
|
static int | vaapi_encode_h265_init_sequence_params (AVCodecContext *avctx) |
|
static int | vaapi_encode_h265_init_picture_params (AVCodecContext *avctx, FFHWBaseEncodePicture *pic) |
|
static int | vaapi_encode_h265_init_slice_params (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VAAPIEncodeSlice *slice) |
|
static av_cold int | vaapi_encode_h265_get_encoder_caps (AVCodecContext *avctx) |
|
static av_cold int | vaapi_encode_h265_configure (AVCodecContext *avctx) |
|
static av_cold int | vaapi_encode_h265_init (AVCodecContext *avctx) |
|
static av_cold int | vaapi_encode_h265_close (AVCodecContext *avctx) |
|
◆ OFFSET
◆ FLAGS
◆ PROFILE
◆ LEVEL
◆ anonymous enum
Enumerator |
---|
SEI_MASTERING_DISPLAY | |
SEI_CONTENT_LIGHT_LEVEL | |
SEI_A53_CC | |
Definition at line 43 of file vaapi_encode_h265.c.
◆ vaapi_encode_h265_write_access_unit()
◆ vaapi_encode_h265_add_nal()
◆ vaapi_encode_h265_write_sequence_header()
static int vaapi_encode_h265_write_sequence_header |
( |
AVCodecContext * |
avctx, |
|
|
char * |
data, |
|
|
size_t * |
data_len |
|
) |
| |
|
static |
◆ vaapi_encode_h265_write_slice_header()
◆ vaapi_encode_h265_write_extra_header()
◆ vaapi_encode_h265_init_sequence_params()
static int vaapi_encode_h265_init_sequence_params |
( |
AVCodecContext * |
avctx | ) |
|
|
static |
◆ vaapi_encode_h265_init_picture_params()
◆ vaapi_encode_h265_init_slice_params()
◆ vaapi_encode_h265_get_encoder_caps()
◆ vaapi_encode_h265_configure()
◆ vaapi_encode_h265_init()
◆ vaapi_encode_h265_close()
◆ vaapi_encode_h265_profiles
◆ vaapi_encode_type_h265
◆ vaapi_encode_h265_options
const AVOption vaapi_encode_h265_options[] |
|
static |
◆ vaapi_encode_h265_defaults
Initial value:= {
{ "b", "0" },
{ "bf", "2" },
{ "g", "120" },
{ "i_qfactor", "1" },
{ "i_qoffset", "0" },
{ "b_qfactor", "6/5" },
{ "b_qoffset", "0" },
{ "qmin", "-1" },
{ "qmax", "-1" },
}
Definition at line 1177 of file vaapi_encode_h265.c.
◆ vaapi_encode_h265_class
const AVClass vaapi_encode_h265_class |
|
static |
◆ ff_hevc_vaapi_encoder
const FFCodec ff_hevc_vaapi_encoder |
Initial value:= {
.p.name = "hevc_vaapi",
},
.p.wrapper_name = "vaapi",
}
Definition at line 1197 of file vaapi_encode_h265.c.
AVPixelFormat
Pixel format.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
#define AV_PROFILE_HEVC_MAIN
@ AVCOL_RANGE_JPEG
Full range content.
#define FF_CODEC_CAP_NOT_INIT_THREADSAFE
The codec is not known to be init-threadsafe (i.e.
static av_cold int vaapi_encode_h265_close(AVCodecContext *avctx)
static const AVClass vaapi_encode_h265_class
#define AV_PROFILE_UNKNOWN
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
int ff_vaapi_encode_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
#define CODEC_LONG_NAME(str)
#define LIBAVUTIL_VERSION_INT
#define FF_CODEC_RECEIVE_PACKET_CB(func)
const char * av_default_item_name(void *ptr)
Return the context name.
static const AVOption vaapi_encode_h265_options[]
#define AV_PROFILE_HEVC_REXT
static av_cold int vaapi_encode_h265_init(AVCodecContext *avctx)
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
@ AV_PIX_FMT_VAAPI
Hardware acceleration through VA-API, data[3] contains a VASurfaceID.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
const AVCodecHWConfigInternal *const ff_vaapi_encode_hw_configs[]
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
static const FFCodecDefault vaapi_encode_h265_defaults[]