FFmpeg  4.0
Data Structures | Macros | Functions | Variables
hwcontext_cuda.c File Reference
#include "buffer.h"
#include "common.h"
#include "hwcontext.h"
#include "hwcontext_internal.h"
#include "hwcontext_cuda_internal.h"
#include "mem.h"
#include "pixdesc.h"
#include "pixfmt.h"

Go to the source code of this file.

Data Structures

struct  CUDAFramesContext
 

Macros

#define CUDA_FRAME_ALIGNMENT   256
 

Functions

static int cuda_frames_get_constraints (AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints)
 
static void cuda_buffer_free (void *opaque, uint8_t *data)
 
static AVBufferRefcuda_pool_alloc (void *opaque, int size)
 
static int cuda_frames_init (AVHWFramesContext *ctx)
 
static int cuda_get_buffer (AVHWFramesContext *ctx, AVFrame *frame)
 
static int cuda_transfer_get_formats (AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats)
 
static int cuda_transfer_data_from (AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
 
static int cuda_transfer_data_to (AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
 
static void cuda_device_uninit (AVHWDeviceContext *ctx)
 
static int cuda_device_init (AVHWDeviceContext *ctx)
 
static int cuda_device_create (AVHWDeviceContext *ctx, const char *device, AVDictionary *opts, int flags)
 

Variables

static enum AVPixelFormat supported_formats []
 
const HWContextType ff_hwcontext_type_cuda
 

Macro Definition Documentation

◆ CUDA_FRAME_ALIGNMENT

#define CUDA_FRAME_ALIGNMENT   256

Definition at line 28 of file hwcontext_cuda.c.

Referenced by cuda_frames_init(), and cuda_get_buffer().

Function Documentation

◆ cuda_frames_get_constraints()

static int cuda_frames_get_constraints ( AVHWDeviceContext ctx,
const void hwconfig,
AVHWFramesConstraints constraints 
)
static

Definition at line 43 of file hwcontext_cuda.c.

◆ cuda_buffer_free()

static void cuda_buffer_free ( void opaque,
uint8_t data 
)
static

Definition at line 68 of file hwcontext_cuda.c.

Referenced by cuda_pool_alloc().

◆ cuda_pool_alloc()

static AVBufferRef* cuda_pool_alloc ( void opaque,
int  size 
)
static

Definition at line 83 of file hwcontext_cuda.c.

Referenced by cuda_frames_init().

◆ cuda_frames_init()

static int cuda_frames_init ( AVHWFramesContext ctx)
static

Definition at line 115 of file hwcontext_cuda.c.

◆ cuda_get_buffer()

static int cuda_get_buffer ( AVHWFramesContext ctx,
AVFrame frame 
)
static

Definition at line 162 of file hwcontext_cuda.c.

◆ cuda_transfer_get_formats()

static int cuda_transfer_get_formats ( AVHWFramesContext ctx,
enum AVHWFrameTransferDirection  dir,
enum AVPixelFormat **  formats 
)
static

Definition at line 216 of file hwcontext_cuda.c.

◆ cuda_transfer_data_from()

static int cuda_transfer_data_from ( AVHWFramesContext ctx,
AVFrame dst,
const AVFrame src 
)
static

Definition at line 234 of file hwcontext_cuda.c.

◆ cuda_transfer_data_to()

static int cuda_transfer_data_to ( AVHWFramesContext ctx,
AVFrame dst,
const AVFrame src 
)
static

Definition at line 273 of file hwcontext_cuda.c.

◆ cuda_device_uninit()

static void cuda_device_uninit ( AVHWDeviceContext ctx)
static

Definition at line 312 of file hwcontext_cuda.c.

Referenced by cuda_device_create(), and cuda_device_init().

◆ cuda_device_init()

static int cuda_device_init ( AVHWDeviceContext ctx)
static

Definition at line 327 of file hwcontext_cuda.c.

Referenced by cuda_device_create().

◆ cuda_device_create()

static int cuda_device_create ( AVHWDeviceContext ctx,
const char *  device,
AVDictionary opts,
int  flags 
)
static

Definition at line 353 of file hwcontext_cuda.c.

Variable Documentation

◆ supported_formats

enum AVPixelFormat supported_formats[]
static
Initial value:
= {
}
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:67
#define AV_PIX_FMT_P016
Definition: pixfmt.h:414
#define AV_PIX_FMT_P010
Definition: pixfmt.h:413
#define AV_PIX_FMT_YUV444P16
Definition: pixfmt.h:381
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: pixfmt.h:85
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:62

Definition at line 34 of file hwcontext_cuda.c.

Referenced by cuda_frames_get_constraints(), and cuda_frames_init().

◆ ff_hwcontext_type_cuda

const HWContextType ff_hwcontext_type_cuda
Initial value:
= {
.name = "CUDA",
.device_hwctx_size = sizeof(AVCUDADeviceContext),
.frames_priv_size = sizeof(CUDAFramesContext),
.device_create = cuda_device_create,
.device_init = cuda_device_init,
.device_uninit = cuda_device_uninit,
.frames_get_constraints = cuda_frames_get_constraints,
.frames_init = cuda_frames_init,
.frames_get_buffer = cuda_get_buffer,
.transfer_get_formats = cuda_transfer_get_formats,
.transfer_data_to = cuda_transfer_data_to,
.transfer_data_from = cuda_transfer_data_from,
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_CUDA, AV_PIX_FMT_NONE },
}
static int cuda_frames_get_constraints(AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints)
static int cuda_frames_init(AVHWFramesContext *ctx)
static int cuda_transfer_data_from(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
static int cuda_device_init(AVHWDeviceContext *ctx)
static int cuda_get_buffer(AVHWFramesContext *ctx, AVFrame *frame)
static int cuda_transfer_get_formats(AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats)
HW acceleration through CUDA.
Definition: pixfmt.h:231
static int cuda_transfer_data_to(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
This struct is allocated as AVHWDeviceContext.hwctx.
static int cuda_device_create(AVHWDeviceContext *ctx, const char *device, AVDictionary *opts, int flags)
static void cuda_device_uninit(AVHWDeviceContext *ctx)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:60

Definition at line 400 of file hwcontext_cuda.c.