|
FFmpeg
|
#include <float.h>#include <stdio.h>#include <string.h>#include "libavutil/avassert.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 | CUDAScalePassPlan |
| struct | CUDAScaleFilter |
| struct | CUDATex |
| struct | CUDAScaleFilterSet |
| struct | CUDAScaleContext |
Macros | |
| #define | DIV_UP(a, b) |
| #define | BLOCKX 32 |
| #define | BLOCKY 16 |
| #define | CHECK_CU(x) |
| #define | OFFSET(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 } |
| enum | { CUDA_SCALE_DIR_NONE = -1 , CUDA_SCALE_DIR_X , CUDA_SCALE_DIR_Y } |
| enum | { CUDA_SCALE_PLANE_PRIMARY = 1 << 0 , CUDA_SCALE_PLANE_CHROMA = 1 << 1 } |
Functions | |
| static int | cudascale_plane_needs_scale (int in_size, int out_size, int in_sub, int out_sub) |
| static int | cudascale_plane_is_downscaled (int in_size, int out_size, int in_sub, int out_sub) |
| static double | cudascale_plane_virtual_size (int src_size, int in_size, int out_size, int in_sub, int out_sub) |
| static void | cudascale_plan_passes (CUDAScalePassPlan *plan, int in_width, int in_height, int out_width, int out_height, int in_sub_x, int in_sub_y, int out_sub_x, int out_sub_y, int has_chroma) |
| 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 void | filter_set_uninit (CudaFunctions *cu, CUDAScaleFilterSet *set) |
| 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 int | inter_buf_init (AVFilterContext *ctx, CUDATex *tex, int out_width, int in_height, int use_float, unsigned int planes) |
| 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 int | cudascale_filter_init (AVFilterContext *ctx, CUDAScaleFilter *f, int src_size, int dst_size, double virtual_size, int needs_scale) |
| static int | cudascale_filter_set_init (AVFilterContext *ctx, CUDAScaleFilterSet *set, int in_width, int in_height, int normalize_crop) |
| static int | cudascale_prepare_filter_set (AVFilterContext *ctx, int in_width, int in_height, int normalize_crop) |
| static av_cold int | cudascale_setup_filters (AVFilterContext *ctx, int in_width, int in_height) |
| static av_cold int | cudascale_config_props (AVFilterLink *outlink) |
| static int | cudascale_frame_geometry (AVFilterContext *ctx, const AVFrame *frame, int *width, int *height, int *normalize_crop) |
| static int | cuda_tex_map_frame (AVFilterContext *ctx, const AVFrame *frame, const int depths[4], const int channels[4], CUDATex *tex, int use_linear, int as_integer) |
| 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, const CUDAScaleFilterSet *set, int pass, const CUDATex *out, const CUDATex *in) |
| static int | cudascale_scale (AVFilterContext *ctx, AVFrame *out, AVFrame *in, int in_width, int in_height, int normalize_crop) |
| static int | cudascale_filter_frame (AVFilterLink *link, AVFrame *in) |
| static AVFrame * | cudascale_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 |
Definition at line 77 of file vf_scale_cuda.c.
Referenced by call_resize_kernel().
| #define BLOCKX 32 |
Definition at line 78 of file vf_scale_cuda.c.
| #define BLOCKY 16 |
Definition at line 79 of file vf_scale_cuda.c.
| #define CHECK_CU | ( | x | ) |
Definition at line 81 of file vf_scale_cuda.c.
Referenced by call_resize_kernel(), cuda_tex_map_frame(), cudascale_filter_frame(), cudascale_filter_init(), cudascale_load_functions(), cudascale_prepare_filter_set(), cudascale_setup_filters(), cudascale_uninit(), and inter_buf_init().
| #define OFFSET | ( | x | ) |
Definition at line 1374 of file vf_scale_cuda.c.
| #define FLAGS (AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM) |
Definition at line 1375 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| INTERP_ALGO_DEFAULT | |
| INTERP_ALGO_NEAREST | |
| INTERP_ALGO_BILINEAR | |
| INTERP_ALGO_BICUBIC | |
| INTERP_ALGO_LANCZOS | |
| INTERP_ALGO_COUNT | |
Definition at line 83 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| FILTER_OUT | |
| FILTER_TMP | |
| FILTER_NB | |
Definition at line 94 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| CUDA_SCALE_DIR_NONE | |
| CUDA_SCALE_DIR_X | |
| CUDA_SCALE_DIR_Y | |
Definition at line 100 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| CUDA_SCALE_PLANE_PRIMARY | |
| CUDA_SCALE_PLANE_CHROMA | |
Definition at line 106 of file vf_scale_cuda.c.
|
static |
Definition at line 202 of file vf_scale_cuda.c.
Referenced by cudascale_plan_passes().
|
static |
Definition at line 209 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 216 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 224 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 265 of file vf_scale_cuda.c.
|
static |
Definition at line 280 of file vf_scale_cuda.c.
Referenced by filter_set_uninit().
|
static |
Definition at line 289 of file vf_scale_cuda.c.
Referenced by cuda_tex_map_frame(), cudascale_scale(), filter_set_uninit(), and inter_buf_init().
|
static |
Definition at line 301 of file vf_scale_cuda.c.
Referenced by cudascale_prepare_filter_set(), and cudascale_uninit().
|
static |
Definition at line 311 of file vf_scale_cuda.c.
|
static |
Definition at line 336 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 373 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 444 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 452 of file vf_scale_cuda.c.
Referenced by cudascale_load_functions().
|
static |
Definition at line 460 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 486 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 570 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 695 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 781 of file vf_scale_cuda.c.
Referenced by cudascale_prepare_filter_set().
|
static |
Definition at line 888 of file vf_scale_cuda.c.
Referenced by cudascale_scale(), and cudascale_setup_filters().
|
static |
Definition at line 930 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 948 of file vf_scale_cuda.c.
|
static |
Definition at line 1024 of file vf_scale_cuda.c.
Referenced by cudascale_filter_frame().
|
static |
Definition at line 1055 of file vf_scale_cuda.c.
Referenced by cudascale_scale().
|
static |
Definition at line 1117 of file vf_scale_cuda.c.
Referenced by scalecuda_resize().
|
static |
Definition at line 1164 of file vf_scale_cuda.c.
Referenced by cudascale_scale().
|
static |
Definition at line 1230 of file vf_scale_cuda.c.
Referenced by cudascale_filter_frame().
|
static |
Definition at line 1311 of file vf_scale_cuda.c.
|
static |
Definition at line 1365 of file vf_scale_cuda.c.
|
static |
Definition at line 53 of file vf_scale_cuda.c.
|
static |
Definition at line 1376 of file vf_scale_cuda.c.
|
static |
Definition at line 1398 of file vf_scale_cuda.c.
|
static |
Definition at line 1405 of file vf_scale_cuda.c.
|
static |
Definition at line 1414 of file vf_scale_cuda.c.
| const FFFilter ff_vf_scale_cuda |
Definition at line 1422 of file vf_scale_cuda.c.