FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
vf_scale_cuda.c File Reference
#include <float.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/common.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_cuda_internal.h"
#include "libavutil/cuda_check.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/refstruct.h"
#include "libswscale/filters.h"
#include "avfilter.h"
#include "filters.h"
#include "scale_eval.h"
#include "video.h"
#include "cuda/load_helper.h"
#include "vf_scale_cuda.h"

Go to the source code of this file.

Data Structures

struct  format_entry
 
struct  CUDAScaleFilter
 
struct  CUDATex
 
struct  CUDAScaleContext
 

Macros

#define DIV_UP(a, b)   ( ((a) + (b) - 1) / (b) )
 
#define BLOCKX   32
 
#define BLOCKY   16
 
#define CHECK_CU(x)   FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x)
 
#define OFFSET(x)   offsetof(CUDAScaleContext, x)
 
#define FLAGS   (AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM)
 

Enumerations

enum  {
  INTERP_ALGO_DEFAULT, INTERP_ALGO_NEAREST, INTERP_ALGO_BILINEAR, INTERP_ALGO_BICUBIC,
  INTERP_ALGO_LANCZOS, INTERP_ALGO_COUNT
}
 
enum  { FILTER_OUT, FILTER_TMP, FILTER_NB }
 

Functions

static av_cold int cudascale_init (AVFilterContext *ctx)
 
static void filter_uninit (CudaFunctions *cu, CUDAScaleFilter *filter)
 
static void cuda_tex_uninit (CudaFunctions *cu, CUDATex *t)
 
static av_cold void cudascale_uninit (AVFilterContext *ctx)
 
static av_cold int init_hwframe_ctx (CUDAScaleContext *s, AVBufferRef *device_ctx, int width, int height)
 
static av_cold int inter_buf_init (AVFilterContext *ctx, int out_width, int in_height)
 
static int format_is_supported (enum AVPixelFormat fmt)
 
static const char * get_format_name (enum AVPixelFormat fmt)
 
static av_cold void set_format_info (AVFilterContext *ctx, enum AVPixelFormat in_format, enum AVPixelFormat out_format)
 
static av_cold int init_processing_chain (AVFilterContext *ctx, int in_width, int in_height, int out_width, int out_height)
 
static av_cold int cudascale_load_functions (AVFilterContext *ctx)
 
static av_cold int cudascale_filter_init (AVFilterContext *ctx, CUDAScaleFilter *f, int src_size, int dst_size, double virtual_size)
 
static av_cold int cudascale_setup_filters (AVFilterContext *ctx)
 
static av_cold int cudascale_config_props (AVFilterLink *outlink)
 
static int cuda_tex_map_frame (AVFilterContext *ctx, const AVFrame *frame, const int depths[4], const int channels[4], CUDATex *tex)
 
static int call_resize_kernel (AVFilterContext *ctx, CUfunction func, const CUtexObject src_tex[4], int src_left, int src_top, int src_width, int src_height, const CUdeviceptr out_data[4], int dst_width, int dst_height, int dst_pitch, int mpeg_range, const CUDAScaleFilter *filter)
 
static int scalecuda_resize (AVFilterContext *ctx, int pass, const CUDATex *out, const CUDATex *in)
 
static int cudascale_scale (AVFilterContext *ctx, AVFrame *out, AVFrame *in)
 
static int cudascale_filter_frame (AVFilterLink *link, AVFrame *in)
 
static AVFramecudascale_get_video_buffer (AVFilterLink *inlink, int w, int h)
 

Variables

static const struct format_entry supported_formats []
 
static const AVOption options []
 
static const AVClass cudascale_class
 
static const AVFilterPad cudascale_inputs []
 
static const AVFilterPad cudascale_outputs []
 
const FFFilter ff_vf_scale_cuda
 

Macro Definition Documentation

◆ DIV_UP

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

Definition at line 76 of file vf_scale_cuda.c.

◆ BLOCKX

#define BLOCKX   32

Definition at line 77 of file vf_scale_cuda.c.

◆ BLOCKY

#define BLOCKY   16

Definition at line 78 of file vf_scale_cuda.c.

◆ CHECK_CU

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

Definition at line 80 of file vf_scale_cuda.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(CUDAScaleContext, x)

Definition at line 1012 of file vf_scale_cuda.c.

◆ FLAGS

Definition at line 1013 of file vf_scale_cuda.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
INTERP_ALGO_DEFAULT 
INTERP_ALGO_NEAREST 
INTERP_ALGO_BILINEAR 
INTERP_ALGO_BICUBIC 
INTERP_ALGO_LANCZOS 
INTERP_ALGO_COUNT 

Definition at line 82 of file vf_scale_cuda.c.

◆ anonymous enum

anonymous enum
Enumerator
FILTER_OUT 
FILTER_TMP 
FILTER_NB 

Definition at line 93 of file vf_scale_cuda.c.

Function Documentation

◆ cudascale_init()

static av_cold int cudascale_init ( AVFilterContext ctx)
static

Definition at line 164 of file vf_scale_cuda.c.

◆ filter_uninit()

static void filter_uninit ( CudaFunctions *  cu,
CUDAScaleFilter filter 
)
static

Definition at line 179 of file vf_scale_cuda.c.

Referenced by cudascale_uninit().

◆ cuda_tex_uninit()

static void cuda_tex_uninit ( CudaFunctions *  cu,
CUDATex t 
)
static

◆ cudascale_uninit()

static av_cold void cudascale_uninit ( AVFilterContext ctx)
static

Definition at line 200 of file vf_scale_cuda.c.

◆ init_hwframe_ctx()

static av_cold int init_hwframe_ctx ( CUDAScaleContext s,
AVBufferRef device_ctx,
int  width,
int  height 
)
static

Definition at line 229 of file vf_scale_cuda.c.

Referenced by init_processing_chain().

◆ inter_buf_init()

static av_cold int inter_buf_init ( AVFilterContext ctx,
int  out_width,
int  in_height 
)
static

Definition at line 266 of file vf_scale_cuda.c.

Referenced by cudascale_setup_filters().

◆ format_is_supported()

static int format_is_supported ( enum AVPixelFormat  fmt)
static

Definition at line 329 of file vf_scale_cuda.c.

Referenced by init_processing_chain().

◆ get_format_name()

static const char* get_format_name ( enum AVPixelFormat  fmt)
static

Definition at line 337 of file vf_scale_cuda.c.

Referenced by cudascale_load_functions().

◆ set_format_info()

static av_cold void set_format_info ( AVFilterContext ctx,
enum AVPixelFormat  in_format,
enum AVPixelFormat  out_format 
)
static

Definition at line 345 of file vf_scale_cuda.c.

Referenced by init_processing_chain().

◆ init_processing_chain()

static av_cold int init_processing_chain ( AVFilterContext ctx,
int  in_width,
int  in_height,
int  out_width,
int  out_height 
)
static

Definition at line 371 of file vf_scale_cuda.c.

Referenced by cudascale_config_props().

◆ cudascale_load_functions()

static av_cold int cudascale_load_functions ( AVFilterContext ctx)
static

Definition at line 436 of file vf_scale_cuda.c.

Referenced by cudascale_config_props().

◆ cudascale_filter_init()

static av_cold int cudascale_filter_init ( AVFilterContext ctx,
CUDAScaleFilter f,
int  src_size,
int  dst_size,
double  virtual_size 
)
static

Definition at line 531 of file vf_scale_cuda.c.

Referenced by cudascale_setup_filters().

◆ cudascale_setup_filters()

static av_cold int cudascale_setup_filters ( AVFilterContext ctx)
static

Definition at line 608 of file vf_scale_cuda.c.

Referenced by cudascale_config_props().

◆ cudascale_config_props()

static av_cold int cudascale_config_props ( AVFilterLink outlink)
static

Definition at line 680 of file vf_scale_cuda.c.

◆ cuda_tex_map_frame()

static int cuda_tex_map_frame ( AVFilterContext ctx,
const AVFrame frame,
const int  depths[4],
const int  channels[4],
CUDATex tex 
)
static

Definition at line 757 of file vf_scale_cuda.c.

Referenced by cudascale_scale().

◆ call_resize_kernel()

static int call_resize_kernel ( AVFilterContext ctx,
CUfunction  func,
const CUtexObject  src_tex[4],
int  src_left,
int  src_top,
int  src_width,
int  src_height,
const CUdeviceptr  out_data[4],
int  dst_width,
int  dst_height,
int  dst_pitch,
int  mpeg_range,
const CUDAScaleFilter filter 
)
static

Definition at line 819 of file vf_scale_cuda.c.

Referenced by scalecuda_resize().

◆ scalecuda_resize()

static int scalecuda_resize ( AVFilterContext ctx,
int  pass,
const CUDATex out,
const CUDATex in 
)
static

Definition at line 861 of file vf_scale_cuda.c.

Referenced by cudascale_scale().

◆ cudascale_scale()

static int cudascale_scale ( AVFilterContext ctx,
AVFrame out,
AVFrame in 
)
static

Definition at line 901 of file vf_scale_cuda.c.

Referenced by cudascale_filter_frame().

◆ cudascale_filter_frame()

static int cudascale_filter_frame ( AVFilterLink link,
AVFrame in 
)
static

Definition at line 956 of file vf_scale_cuda.c.

◆ cudascale_get_video_buffer()

static AVFrame* cudascale_get_video_buffer ( AVFilterLink inlink,
int  w,
int  h 
)
static

Definition at line 1003 of file vf_scale_cuda.c.

Variable Documentation

◆ supported_formats

const struct format_entry supported_formats[]
static
Initial value:
= {
{AV_PIX_FMT_YUV420P, "planar8"},
{AV_PIX_FMT_YUV422P, "planar8"},
{AV_PIX_FMT_YUV444P, "planar8"},
{AV_PIX_FMT_YUV420P10,"planar10"},
{AV_PIX_FMT_YUV422P10,"planar10"},
{AV_PIX_FMT_YUV444P10,"planar10"},
{AV_PIX_FMT_YUV444P16,"planar16"},
{AV_PIX_FMT_NV12, "semiplanar8"},
{AV_PIX_FMT_NV16, "semiplanar8"},
{AV_PIX_FMT_P010, "semiplanar10"},
{AV_PIX_FMT_P210, "semiplanar10"},
{AV_PIX_FMT_P012, "semiplanar16"},
{AV_PIX_FMT_P212, "semiplanar16"},
{AV_PIX_FMT_P016, "semiplanar16"},
{AV_PIX_FMT_P216, "semiplanar16"},
{AV_PIX_FMT_0RGB32, "bgr0"},
{AV_PIX_FMT_0BGR32, "rgb0"},
{AV_PIX_FMT_RGB32, "bgra"},
{AV_PIX_FMT_BGR32, "rgba"},
}

Definition at line 52 of file vf_scale_cuda.c.

Referenced by format_is_supported(), and get_format_name().

◆ options

const AVOption options[]
static
Initial value:
= {
{ "w", "Output video width", OFFSET(w_expr), AV_OPT_TYPE_STRING, { .str = "iw" }, .flags = FLAGS },
{ "h", "Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, { .str = "ih" }, .flags = FLAGS },
{ "interp_algo", "Interpolation algorithm used for resizing", OFFSET(interp_algo), AV_OPT_TYPE_INT, { .i64 = INTERP_ALGO_DEFAULT }, 0, INTERP_ALGO_COUNT - 1, FLAGS, .unit = "interp_algo" },
{ "nearest", "nearest neighbour", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_NEAREST }, 0, 0, FLAGS, .unit = "interp_algo" },
{ "bilinear", "bilinear", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_BILINEAR }, 0, 0, FLAGS, .unit = "interp_algo" },
{ "bicubic", "bicubic", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_BICUBIC }, 0, 0, FLAGS, .unit = "interp_algo" },
{ "lanczos", "lanczos", 0, AV_OPT_TYPE_CONST, { .i64 = INTERP_ALGO_LANCZOS }, 0, 0, FLAGS, .unit = "interp_algo" },
{ "format", "Output video pixel format", OFFSET(format), AV_OPT_TYPE_PIXEL_FMT, { .i64 = AV_PIX_FMT_NONE }, INT_MIN, INT_MAX, .flags=FLAGS },
{ "passthrough", "Do not process frames at all if parameters match", OFFSET(passthrough), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS },
{ "use_filters", "Use generic filters instead of fixed function kernels", OFFSET(use_filters), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, FLAGS, .unit = "use_filters" },
{ "auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, FLAGS, .unit = "use_filters" },
{ "param", "Algorithm-Specific parameter", OFFSET(param), AV_OPT_TYPE_FLOAT, { .dbl = SCALE_CUDA_PARAM_DEFAULT }, -FLT_MAX, FLT_MAX, FLAGS },
{ "force_original_aspect_ratio", "decrease or increase w/h if necessary to keep the original AR", OFFSET(force_original_aspect_ratio), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, SCALE_FORCE_OAR_NB-1, FLAGS, .unit = "force_oar" },
{ "disable", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = SCALE_FORCE_OAR_DISABLE }, 0, 0, FLAGS, .unit = "force_oar" },
{ "decrease", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = SCALE_FORCE_OAR_DECREASE }, 0, 0, FLAGS, .unit = "force_oar" },
{ "increase", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = SCALE_FORCE_OAR_INCREASE }, 0, 0, FLAGS, .unit = "force_oar" },
{ "force_divisible_by", "enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used", OFFSET(force_divisible_by), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, 256, FLAGS },
{ "reset_sar", "reset SAR to 1 and scale to square pixels if scaling proportionally", OFFSET(reset_sar), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, FLAGS },
{ NULL },
}

Definition at line 1014 of file vf_scale_cuda.c.

◆ cudascale_class

const AVClass cudascale_class
static
Initial value:
= {
.class_name = "cudascale",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 1036 of file vf_scale_cuda.c.

◆ cudascale_inputs

const AVFilterPad cudascale_inputs[]
static
Initial value:
= {
{
.name = "default",
.filter_frame = cudascale_filter_frame,
.get_buffer.video = cudascale_get_video_buffer,
},
}

Definition at line 1043 of file vf_scale_cuda.c.

◆ cudascale_outputs

const AVFilterPad cudascale_outputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = cudascale_config_props,
},
}

Definition at line 1052 of file vf_scale_cuda.c.

◆ ff_vf_scale_cuda

const FFFilter ff_vf_scale_cuda
Initial value:
= {
.p.name = "scale_cuda",
.p.description = NULL_IF_CONFIG_SMALL("GPU accelerated video resizer"),
.p.priv_class = &cudascale_class,
.init = cudascale_init,
.uninit = cudascale_uninit,
.priv_size = sizeof(CUDAScaleContext),
.flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
}

Definition at line 1060 of file vf_scale_cuda.c.

options
static const AVOption options[]
Definition: vf_scale_cuda.c:1014
AV_PIX_FMT_CUDA
@ AV_PIX_FMT_CUDA
HW acceleration through CUDA.
Definition: pixfmt.h:260
SCALE_FORCE_OAR_DISABLE
@ SCALE_FORCE_OAR_DISABLE
Definition: scale_eval.h:25
cudascale_init
static av_cold int cudascale_init(AVFilterContext *ctx)
Definition: vf_scale_cuda.c:164
AV_PIX_FMT_BGR32
#define AV_PIX_FMT_BGR32
Definition: pixfmt.h:513
AV_PIX_FMT_YUV444P10MSB
#define AV_PIX_FMT_YUV444P10MSB
Definition: pixfmt.h:554
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: filters.h:208
cudascale_uninit
static av_cold void cudascale_uninit(AVFilterContext *ctx)
Definition: vf_scale_cuda.c:200
INTERP_ALGO_NEAREST
@ INTERP_ALGO_NEAREST
Definition: vf_scale_cuda.c:85
FILTER_SINGLE_PIXFMT
#define FILTER_SINGLE_PIXFMT(pix_fmt_)
Definition: filters.h:254
AV_PIX_FMT_YUV420P10
#define AV_PIX_FMT_YUV420P10
Definition: pixfmt.h:539
FLAGS
#define FLAGS
Definition: vf_scale_cuda.c:1013
AV_PIX_FMT_P212
#define AV_PIX_FMT_P212
Definition: pixfmt.h:618
AV_PIX_FMT_YUV444P12MSB
#define AV_PIX_FMT_YUV444P12MSB
Definition: pixfmt.h:555
SCALE_FORCE_OAR_INCREASE
@ SCALE_FORCE_OAR_INCREASE
Definition: scale_eval.h:27
SCALE_FORCE_OAR_NB
@ SCALE_FORCE_OAR_NB
Definition: scale_eval.h:28
INTERP_ALGO_BICUBIC
@ INTERP_ALGO_BICUBIC
Definition: vf_scale_cuda.c:87
AV_PIX_FMT_YUV444P10
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:542
cudascale_class
static const AVClass cudascale_class
Definition: vf_scale_cuda.c:1036
cudascale_config_props
static av_cold int cudascale_config_props(AVFilterLink *outlink)
Definition: vf_scale_cuda.c:680
FILTER_OUTPUTS
#define FILTER_OUTPUTS(array)
Definition: filters.h:265
AV_PIX_FMT_YUV444P16
#define AV_PIX_FMT_YUV444P16
Definition: pixfmt.h:552
AV_PIX_FMT_0BGR32
#define AV_PIX_FMT_0BGR32
Definition: pixfmt.h:516
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
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
OFFSET
#define OFFSET(x)
Definition: vf_scale_cuda.c:1012
NULL
#define NULL
Definition: coverity.c:32
SCALE_FORCE_OAR_DECREASE
@ SCALE_FORCE_OAR_DECREASE
Definition: scale_eval.h:26
format
New swscale design to change SwsGraph is what coordinates multiple passes These can include cascaded scaling error diffusion and so on Or we could have separate passes for the vertical and horizontal scaling In between each SwsPass lies a fully allocated image buffer Graph passes may have different levels of e g we can have a single threaded error diffusion pass following a multi threaded scaling pass SwsGraph is internally recreated whenever the image format
Definition: swscale-v2.txt:14
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:242
INTERP_ALGO_LANCZOS
@ INTERP_ALGO_LANCZOS
Definition: vf_scale_cuda.c:88
AV_PIX_FMT_YUV422P10
#define AV_PIX_FMT_YUV422P10
Definition: pixfmt.h:540
cudascale_inputs
static const AVFilterPad cudascale_inputs[]
Definition: vf_scale_cuda.c:1043
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:88
AV_PIX_FMT_P012
#define AV_PIX_FMT_P012
Definition: pixfmt.h:603
AV_PIX_FMT_NV16
@ AV_PIX_FMT_NV16
interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:198
AV_PIX_FMT_RGB32
#define AV_PIX_FMT_RGB32
Definition: pixfmt.h:511
AV_PIX_FMT_P216
#define AV_PIX_FMT_P216
Definition: pixfmt.h:620
AV_PIX_FMT_P210
#define AV_PIX_FMT_P210
Definition: pixfmt.h:616
CUDAScaleContext
Definition: vf_scale_cuda.c:117
AV_OPT_TYPE_FLOAT
@ AV_OPT_TYPE_FLOAT
Underlying C type is float.
Definition: opt.h:270
INTERP_ALGO_BILINEAR
@ INTERP_ALGO_BILINEAR
Definition: vf_scale_cuda.c:86
AV_PIX_FMT_P016
#define AV_PIX_FMT_P016
Definition: pixfmt.h:604
INTERP_ALGO_DEFAULT
@ INTERP_ALGO_DEFAULT
Definition: vf_scale_cuda.c:83
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_0RGB32
#define AV_PIX_FMT_0RGB32
Definition: pixfmt.h:515
FILTER_INPUTS
#define FILTER_INPUTS(array)
Definition: filters.h:264
cudascale_get_video_buffer
static AVFrame * cudascale_get_video_buffer(AVFilterLink *inlink, int w, int h)
Definition: vf_scale_cuda.c:1003
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:72
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition: opt.h:258
AV_OPT_TYPE_PIXEL_FMT
@ AV_OPT_TYPE_PIXEL_FMT
Underlying C type is enum AVPixelFormat.
Definition: opt.h:306
AV_PIX_FMT_YUV444P
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:78
AV_PIX_FMT_P010
#define AV_PIX_FMT_P010
Definition: pixfmt.h:602
cudascale_outputs
static const AVFilterPad cudascale_outputs[]
Definition: vf_scale_cuda.c:1052
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:200
AV_PIX_FMT_YUV422P
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:77
cudascale_filter_frame
static int cudascale_filter_frame(AVFilterLink *link, AVFrame *in)
Definition: vf_scale_cuda.c:956
AV_OPT_TYPE_BOOL
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition: opt.h:326
SCALE_CUDA_PARAM_DEFAULT
#define SCALE_CUDA_PARAM_DEFAULT
Definition: vf_scale_cuda.h:33
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...
Definition: opt.h:275
AV_OPT_TYPE_CONST
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
Definition: opt.h:298
INTERP_ALGO_COUNT
@ INTERP_ALGO_COUNT
Definition: vf_scale_cuda.c:90