#include "buffer.h"
#include "common.h"
#include "hwcontext.h"
#include "hwcontext_amf.h"
#include "hwcontext_internal.h"
#include "hwcontext_amf_internal.h"
#include "mem.h"
#include "pixdesc.h"
#include "pixfmt.h"
#include "imgutils.h"
#include "libavutil/avassert.h"
#include <AMF/core/Surface.h>
#include <AMF/core/Trace.h>
#include <dlfcn.h>
Go to the source code of this file.
|
static void AMF_CDECL_CALL | AMFTraceWriter_Write (AMFTraceWriter *pThis, const wchar_t *scope, const wchar_t *message) |
|
static void AMF_CDECL_CALL | AMFTraceWriter_Flush (AMFTraceWriter *pThis) |
|
static AmfTraceWriter * | amf_writer_alloc (void *avctx) |
|
static void | amf_writer_free (void *opaque) |
|
enum AMF_SURFACE_FORMAT | av_av_to_amf_format (enum AVPixelFormat fmt) |
|
enum AVPixelFormat | av_amf_to_av_format (enum AMF_SURFACE_FORMAT fmt) |
|
static int | amf_frames_get_constraints (AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints) |
|
static void | amf_dummy_free (void *opaque, uint8_t *data) |
|
static AVBufferRef * | amf_pool_alloc (void *opaque, size_t size) |
|
static int | amf_frames_init (AVHWFramesContext *ctx) |
|
static int | amf_get_buffer (AVHWFramesContext *ctx, AVFrame *frame) |
|
static int | amf_transfer_get_formats (AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats) |
|
static void | amf_free_amfsurface (void *opaque, uint8_t *data) |
|
static int | amf_transfer_data_to (AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src) |
|
static int | amf_transfer_data_from (AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src) |
|
static void | amf_device_uninit (AVHWDeviceContext *device_ctx) |
|
static int | amf_device_init (AVHWDeviceContext *ctx) |
|
static int | amf_load_library (AVAMFDeviceContext *amf_ctx, void *avcl) |
|
static int | amf_device_create (AVHWDeviceContext *device_ctx, const char *device, AVDictionary *opts, int flags) |
|
static int | amf_device_derive (AVHWDeviceContext *device_ctx, AVHWDeviceContext *child_device_ctx, AVDictionary *opts, int flags) |
|
◆ FFMPEG_AMF_WRITER_ID
#define FFMPEG_AMF_WRITER_ID L"ffmpeg_amf" |
◆ AMFTraceWriter_Write()
static void AMF_CDECL_CALL AMFTraceWriter_Write |
( |
AMFTraceWriter * |
pThis, |
|
|
const wchar_t * |
scope, |
|
|
const wchar_t * |
message |
|
) |
| |
|
static |
◆ AMFTraceWriter_Flush()
static void AMF_CDECL_CALL AMFTraceWriter_Flush |
( |
AMFTraceWriter * |
pThis | ) |
|
|
static |
◆ amf_writer_alloc()
◆ amf_writer_free()
static void amf_writer_free |
( |
void * |
opaque | ) |
|
|
static |
◆ av_av_to_amf_format()
enum AMF_SURFACE_FORMAT av_av_to_amf_format |
( |
enum AVPixelFormat |
fmt | ) |
|
◆ av_amf_to_av_format()
enum AVPixelFormat av_amf_to_av_format |
( |
enum AMF_SURFACE_FORMAT |
fmt | ) |
|
◆ amf_frames_get_constraints()
◆ amf_dummy_free()
static void amf_dummy_free |
( |
void * |
opaque, |
|
|
uint8_t * |
data |
|
) |
| |
|
static |
◆ amf_pool_alloc()
static AVBufferRef* amf_pool_alloc |
( |
void * |
opaque, |
|
|
size_t |
size |
|
) |
| |
|
static |
◆ amf_frames_init()
◆ amf_get_buffer()
◆ amf_transfer_get_formats()
◆ amf_free_amfsurface()
static void amf_free_amfsurface |
( |
void * |
opaque, |
|
|
uint8_t * |
data |
|
) |
| |
|
static |
◆ amf_transfer_data_to()
◆ amf_transfer_data_from()
◆ amf_device_uninit()
◆ amf_device_init()
◆ amf_load_library()
◆ amf_device_create()
◆ amf_device_derive()
◆ format_map
const FormatMap format_map[] |
◆ supported_formats
◆ supported_transfer_formats
◆ ff_hwcontext_type_amf
AVPixelFormat
Pixel format.
static int amf_device_create(AVHWDeviceContext *device_ctx, const char *device, AVDictionary *opts, int flags)
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
@ AV_PIX_FMT_AMF_SURFACE
HW acceleration through AMF.
static int amf_transfer_get_formats(AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats)
static int amf_frames_get_constraints(AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints)
static int amf_device_init(AVHWDeviceContext *ctx)
static int amf_transfer_data_to(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
@ AV_PIX_FMT_YUYV422
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
@ AV_PIX_FMT_BGR0
packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
static int amf_get_buffer(AVHWFramesContext *ctx, AVFrame *frame)
This struct is allocated as AVHWDeviceContext.hwctx.
static void amf_device_uninit(AVHWDeviceContext *device_ctx)
We still need AVHWFramesContext to utilize our hardware memory otherwise, we will receive the error "...
@ AV_PIX_FMT_RGB0
packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
static int amf_frames_init(AVHWFramesContext *ctx)
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
static int amf_transfer_data_from(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
static int amf_device_derive(AVHWDeviceContext *device_ctx, AVHWDeviceContext *child_device_ctx, AVDictionary *opts, int flags)
@ 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...