FFmpeg
Data Structures | Macros | Functions | Variables
vf_yadif_cuda.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/hwcontext_cuda_internal.h"
#include "libavutil/cuda_check.h"
#include "internal.h"
#include "yadif.h"

Go to the source code of this file.

Data Structures

struct  DeintCUDAContext
 

Macros

#define DIV_UP(a, b)   ( ((a) + (b) - 1) / (b) )
 
#define ALIGN_UP(a, b)   (((a) + (b) - 1) & ~((b) - 1))
 
#define BLOCKX   32
 
#define BLOCKY   16
 
#define CHECK_CU(x)   FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x)
 

Functions

static CUresult call_kernel (AVFilterContext *ctx, CUfunction func, CUdeviceptr prev, CUdeviceptr cur, CUdeviceptr next, CUarray_format format, int channels, int src_width, int src_height, int src_pitch, CUdeviceptr dst, int dst_width, int dst_height, int dst_pitch, int parity, int tff)
 
static void filter (AVFilterContext *ctx, AVFrame *dst, int parity, int tff)
 
static av_cold void deint_cuda_uninit (AVFilterContext *ctx)
 
static int deint_cuda_query_formats (AVFilterContext *ctx)
 
static int config_input (AVFilterLink *inlink)
 
static int config_output (AVFilterLink *link)
 

Variables

char vf_yadif_cuda_ptx []
 
static const AVClass yadif_cuda_class
 
static const AVFilterPad deint_cuda_inputs []
 
static const AVFilterPad deint_cuda_outputs []
 
AVFilter ff_vf_yadif_cuda
 

Macro Definition Documentation

◆ DIV_UP

#define DIV_UP (   a,
  b 
)    ( ((a) + (b) - 1) / (b) )

Definition at line 46 of file vf_yadif_cuda.c.

◆ ALIGN_UP

#define ALIGN_UP (   a,
  b 
)    (((a) + (b) - 1) & ~((b) - 1))

Definition at line 47 of file vf_yadif_cuda.c.

◆ BLOCKX

#define BLOCKX   32

Definition at line 48 of file vf_yadif_cuda.c.

◆ BLOCKY

#define BLOCKY   16

Definition at line 49 of file vf_yadif_cuda.c.

◆ CHECK_CU

#define CHECK_CU (   x)    FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x)

Definition at line 51 of file vf_yadif_cuda.c.

Function Documentation

◆ call_kernel()

static CUresult call_kernel ( AVFilterContext ctx,
CUfunction  func,
CUdeviceptr  prev,
CUdeviceptr  cur,
CUdeviceptr  next,
CUarray_format  format,
int  channels,
int  src_width,
int  src_height,
int  src_pitch,
CUdeviceptr  dst,
int  dst_width,
int  dst_height,
int  dst_pitch,
int  parity,
int  tff 
)
static

Definition at line 53 of file vf_yadif_cuda.c.

Referenced by filter().

◆ filter()

static void filter ( AVFilterContext ctx,
AVFrame dst,
int  parity,
int  tff 
)
static

Definition at line 121 of file vf_yadif_cuda.c.

Referenced by config_output().

◆ deint_cuda_uninit()

static av_cold void deint_cuda_uninit ( AVFilterContext ctx)
static

Definition at line 188 of file vf_yadif_cuda.c.

◆ deint_cuda_query_formats()

static int deint_cuda_query_formats ( AVFilterContext ctx)
static

Definition at line 211 of file vf_yadif_cuda.c.

◆ config_input()

static int config_input ( AVFilterLink inlink)
static

Definition at line 228 of file vf_yadif_cuda.c.

◆ config_output()

static int config_output ( AVFilterLink link)
static

Definition at line 250 of file vf_yadif_cuda.c.

Variable Documentation

◆ vf_yadif_cuda_ptx

char vf_yadif_cuda_ptx[]

Referenced by config_output().

◆ yadif_cuda_class

const AVClass yadif_cuda_class
static
Initial value:
= {
.class_name = "yadif_cuda",
.item_name = av_default_item_name,
.option = ff_yadif_options,
}

Definition at line 348 of file vf_yadif_cuda.c.

◆ deint_cuda_inputs

const AVFilterPad deint_cuda_inputs[]
static
Initial value:
= {
{
.name = "default",
.filter_frame = ff_yadif_filter_frame,
.config_props = config_input,
},
{ NULL }
}

Definition at line 356 of file vf_yadif_cuda.c.

◆ deint_cuda_outputs

const AVFilterPad deint_cuda_outputs[]
static
Initial value:
= {
{
.name = "default",
.request_frame = ff_yadif_request_frame,
.config_props = config_output,
},
{ NULL }
}

Definition at line 366 of file vf_yadif_cuda.c.

◆ ff_vf_yadif_cuda

AVFilter ff_vf_yadif_cuda
Initial value:
= {
.name = "yadif_cuda",
.description = NULL_IF_CONFIG_SMALL("Deinterlace CUDA frames"),
.priv_size = sizeof(DeintCUDAContext),
.priv_class = &yadif_cuda_class,
.flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
}

Definition at line 376 of file vf_yadif_cuda.c.

FF_FILTER_FLAG_HWFRAME_AWARE
#define FF_FILTER_FLAG_HWFRAME_AWARE
The filter is aware of hardware frames, and any hardware frame context should not be automatically pr...
Definition: internal.h:339
config_input
static int config_input(AVFilterLink *inlink)
Definition: vf_yadif_cuda.c:228
deint_cuda_outputs
static const AVFilterPad deint_cuda_outputs[]
Definition: vf_yadif_cuda.c:366
deint_cuda_inputs
static const AVFilterPad deint_cuda_inputs[]
Definition: vf_yadif_cuda.c:356
outputs
static const AVFilterPad outputs[]
Definition: af_acontrast.c:203
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
yadif_cuda_class
static const AVClass yadif_cuda_class
Definition: vf_yadif_cuda.c:348
NULL
#define NULL
Definition: coverity.c:32
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:235
deint_cuda_uninit
static av_cold void deint_cuda_uninit(AVFilterContext *ctx)
Definition: vf_yadif_cuda.c:188
inputs
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several inputs
Definition: filter_design.txt:243
AV_CLASS_CATEGORY_FILTER
@ AV_CLASS_CATEGORY_FILTER
Definition: log.h:37
ff_yadif_options
const AVOption ff_yadif_options[]
Definition: yadif_common.c:198
config_output
static int config_output(AVFilterLink *link)
Definition: vf_yadif_cuda.c:250
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:117
deint_cuda_query_formats
static int deint_cuda_query_formats(AVFilterContext *ctx)
Definition: vf_yadif_cuda.c:211
DeintCUDAContext
Definition: vf_yadif_cuda.c:29
ff_yadif_request_frame
int ff_yadif_request_frame(AVFilterLink *link)
Definition: yadif_common.c:159
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
query_formats
static int query_formats(AVFilterContext *ctx)
Definition: aeval.c:243
AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() c...
Definition: avfilter.h:134
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:561
uninit
static av_cold int uninit(AVCodecContext *avctx)
Definition: crystalhd.c:279
ff_yadif_filter_frame
int ff_yadif_filter_frame(AVFilterLink *link, AVFrame *frame)
Definition: yadif_common.c:92