FFmpeg
Macros | Functions | Variables
amfenc.c File Reference
#include "config.h"
#include "config_components.h"
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_amf.h"
#include "libavutil/hwcontext_amf_internal.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/time.h"
#include "amfenc.h"
#include "encode.h"
#include "internal.h"
#include "libavutil/mastering_display_metadata.h"
#include <dlfcn.h>

Go to the source code of this file.

Macros

#define AMF_AV_FRAME_REF   L"av_frame_ref"
 
#define FFMPEG_AMF_WRITER_ID   L"ffmpeg_amf"
 
#define PTS_PROP   L"PtsProp"
 

Functions

static int amf_save_hdr_metadata (AVCodecContext *avctx, const AVFrame *frame, AMFHDRMetadata *hdrmeta)
 
static int amf_init_encoder (AVCodecContext *avctx)
 
int av_cold ff_amf_encode_close (AVCodecContext *avctx)
 Common encoder termination function. More...
 
static int amf_copy_surface (AVCodecContext *avctx, const AVFrame *frame, AMFSurface *surface)
 
static int amf_copy_buffer (AVCodecContext *avctx, AVPacket *pkt, AMFBuffer *buffer)
 
int ff_amf_encode_init (AVCodecContext *avctx)
 Common encoder initization function. More...
 
static AMF_RESULT amf_set_property_buffer (AMFSurface *object, const wchar_t *name, AMFBuffer *val)
 
static AMF_RESULT amf_store_attached_frame_ref (const AVFrame *frame, AMFSurface *surface)
 
static AMF_RESULT amf_release_attached_frame_ref (AMFBuffer *buffer)
 
int ff_amf_receive_packet (AVCodecContext *avctx, AVPacket *avpkt)
 Ecoding one frame - common function for all AMF encoders. More...
 
int ff_amf_get_color_profile (AVCodecContext *avctx)
 

Variables

enum AVPixelFormat ff_amf_pix_fmts []
 Supported formats. More...
 
const AVCodecHWConfigInternal *const ff_amfenc_hw_configs []
 

Macro Definition Documentation

◆ AMF_AV_FRAME_REF

#define AMF_AV_FRAME_REF   L"av_frame_ref"

Definition at line 43 of file amfenc.c.

◆ FFMPEG_AMF_WRITER_ID

#define FFMPEG_AMF_WRITER_ID   L"ffmpeg_amf"

Definition at line 105 of file amfenc.c.

◆ PTS_PROP

#define PTS_PROP   L"PtsProp"

Definition at line 107 of file amfenc.c.

Function Documentation

◆ amf_save_hdr_metadata()

static int amf_save_hdr_metadata ( AVCodecContext avctx,
const AVFrame frame,
AMFHDRMetadata *  hdrmeta 
)
static

Definition at line 45 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ amf_init_encoder()

static int amf_init_encoder ( AVCodecContext avctx)
static

Definition at line 123 of file amfenc.c.

Referenced by ff_amf_encode_init().

◆ ff_amf_encode_close()

int av_cold ff_amf_encode_close ( AVCodecContext avctx)

Common encoder termination function.

Definition at line 170 of file amfenc.c.

Referenced by ff_amf_encode_init().

◆ amf_copy_surface()

static int amf_copy_surface ( AVCodecContext avctx,
const AVFrame frame,
AMFSurface *  surface 
)
static

Definition at line 186 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ amf_copy_buffer()

static int amf_copy_buffer ( AVCodecContext avctx,
AVPacket pkt,
AMFBuffer *  buffer 
)
static

Definition at line 210 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ ff_amf_encode_init()

int ff_amf_encode_init ( AVCodecContext avctx)

Common encoder initization function.

Definition at line 270 of file amfenc.c.

Referenced by amf_encode_init_av1(), amf_encode_init_h264(), and amf_encode_init_hevc().

◆ amf_set_property_buffer()

static AMF_RESULT amf_set_property_buffer ( AMFSurface *  object,
const wchar_t *  name,
AMFBuffer *  val 
)
static

Definition at line 321 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ amf_store_attached_frame_ref()

static AMF_RESULT amf_store_attached_frame_ref ( const AVFrame frame,
AMFSurface *  surface 
)
static

Definition at line 343 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ amf_release_attached_frame_ref()

static AMF_RESULT amf_release_attached_frame_ref ( AMFBuffer *  buffer)
static

Definition at line 355 of file amfenc.c.

Referenced by ff_amf_receive_packet().

◆ ff_amf_receive_packet()

int ff_amf_receive_packet ( AVCodecContext avctx,
AVPacket avpkt 
)

Ecoding one frame - common function for all AMF encoders.

Definition at line 367 of file amfenc.c.

◆ ff_amf_get_color_profile()

int ff_amf_get_color_profile ( AVCodecContext avctx)

Color Space for Full (JPEG) Range

Color Space for Limited (MPEG) range

Definition at line 637 of file amfenc.c.

Referenced by amf_encode_init_av1(), amf_encode_init_h264(), and amf_encode_init_hevc().

Variable Documentation

◆ ff_amf_pix_fmts

enum AVPixelFormat ff_amf_pix_fmts[]
Initial value:

Supported formats.

Definition at line 109 of file amfenc.c.

◆ ff_amfenc_hw_configs

const AVCodecHWConfigInternal* const ff_amfenc_hw_configs[]
Initial value:

Definition at line 672 of file amfenc.c.

NONE
@ NONE
Definition: af_afade.c:60
AV_PIX_FMT_AMF_SURFACE
@ AV_PIX_FMT_AMF_SURFACE
HW acceleration through AMF.
Definition: pixfmt.h:477
AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:73
NULL
#define NULL
Definition: coverity.c:32
HW_CONFIG_ENCODER_DEVICE
#define HW_CONFIG_ENCODER_DEVICE(format, device_type_)
Definition: hwconfig.h:95
HW_CONFIG_ENCODER_FRAMES
#define HW_CONFIG_ENCODER_FRAMES(format, device_type_)
Definition: hwconfig.h:98
AV_PIX_FMT_NV12
@ AV_PIX_FMT_NV12
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: pixfmt.h:96
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:72
AV_PIX_FMT_P010
#define AV_PIX_FMT_P010
Definition: pixfmt.h:568