|
FFmpeg
|
#include <float.h>#include <stdbool.h>#include <stdio.h>#include <string.h>#include "libavutil/avassert.h"#include "libavutil/common.h"#include "libavutil/csp.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 "colorspace.h"#include "filters.h"#include "formats.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 | CUDAScalePass |
| struct | CUDAScaleFilterSet |
| struct | CUDAScaleContext |
Macros | |
| #define | DIV_UP(a, b) |
| #define | BLOCKX 32 |
| #define | BLOCKY 16 |
| #define | CHECK_CU(x) |
| #define | CUDA_SCALE_MAX_PASSES 3 |
| #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 } |
| enum | { CUDA_SCALE_BUF_IN , CUDA_SCALE_BUF_TMP , CUDA_SCALE_BUF_TMP2 , CUDA_SCALE_BUF_OUT , CUDA_SCALE_BUF_NB } |
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 width, int height, int log2_chroma_w, int log2_chroma_h, int nb_planes, const int depths[4], const int channels[4], int use_float, unsigned int planes) |
| static int | format_is_supported (enum AVPixelFormat fmt) |
| static const char * | get_format_name (enum AVPixelFormat fmt) |
| static int | chroma_uses_luma_span (enum AVColorSpace colorspace) |
| static int | compute_yuv2rgb_matrix (void *log_ctx, CUDAScaleColorMatrix *mat, enum AVColorSpace colorspace, bool limited_range) |
| static int | compute_rgb2yuv_matrix (void *log_ctx, CUDAScaleColorMatrix *mat, enum AVColorSpace colorspace, bool limited_range) |
| static int | cudascale_conflicts (int in, int out, int unspecified) |
| 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_conv_set_init (AVFilterContext *ctx, CUDAScaleFilterSet *set, int in_width, int in_height) |
| 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 AVFilterFormats * | cudascale_yuv_color_spaces (void) |
| static int | cudascale_query_formats (const AVFilterContext *ctx, AVFilterFormatsConfig **cfg_in, AVFilterFormatsConfig **cfg_out) |
| 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, const CUDAScalePass *pass, CUfunction func, const CUDAScaleFilter *filter, 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) |
| static int | cudascale_run_pass (AVFilterContext *ctx, const CUDAScalePass *pass, const CUDATex *out, const CUDATex *in) |
| static void | cudascale_describe_frame (AVFilterContext *ctx, AVFrame *frame) |
| 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 81 of file vf_scale_cuda.c.
Referenced by call_resize_kernel().
| #define BLOCKX 32 |
Definition at line 82 of file vf_scale_cuda.c.
| #define BLOCKY 16 |
Definition at line 83 of file vf_scale_cuda.c.
| #define CHECK_CU | ( | x | ) |
Definition at line 85 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 CUDA_SCALE_MAX_PASSES 3 |
Definition at line 149 of file vf_scale_cuda.c.
| #define OFFSET | ( | x | ) |
Definition at line 1939 of file vf_scale_cuda.c.
| #define FLAGS (AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM) |
Definition at line 1940 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 87 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| FILTER_OUT | |
| FILTER_TMP | |
| FILTER_NB | |
Definition at line 98 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| CUDA_SCALE_DIR_NONE | |
| CUDA_SCALE_DIR_X | |
| CUDA_SCALE_DIR_Y | |
Definition at line 104 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| CUDA_SCALE_PLANE_PRIMARY | |
| CUDA_SCALE_PLANE_CHROMA | |
Definition at line 110 of file vf_scale_cuda.c.
| anonymous enum |
| Enumerator | |
|---|---|
| CUDA_SCALE_BUF_IN | |
| CUDA_SCALE_BUF_TMP | |
| CUDA_SCALE_BUF_TMP2 | |
| CUDA_SCALE_BUF_OUT | |
| CUDA_SCALE_BUF_NB | |
Definition at line 141 of file vf_scale_cuda.c.
|
static |
Definition at line 243 of file vf_scale_cuda.c.
Referenced by cudascale_plan_passes().
|
static |
Definition at line 250 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 257 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 265 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 306 of file vf_scale_cuda.c.
|
static |
Definition at line 321 of file vf_scale_cuda.c.
Referenced by filter_set_uninit().
|
static |
Definition at line 330 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 342 of file vf_scale_cuda.c.
Referenced by cudascale_prepare_filter_set(), and cudascale_uninit().
|
static |
Definition at line 353 of file vf_scale_cuda.c.
|
static |
Definition at line 378 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 415 of file vf_scale_cuda.c.
Referenced by cudascale_conv_set_init(), and cudascale_filter_set_init().
|
static |
Definition at line 488 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 496 of file vf_scale_cuda.c.
Referenced by cudascale_load_functions().
|
static |
Definition at line 505 of file vf_scale_cuda.c.
Referenced by compute_rgb2yuv_matrix(), and compute_yuv2rgb_matrix().
|
static |
Definition at line 512 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 546 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 580 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 585 of file vf_scale_cuda.c.
Referenced by init_processing_chain().
|
static |
Definition at line 611 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 818 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 986 of file vf_scale_cuda.c.
Referenced by cudascale_conv_set_init(), and cudascale_filter_set_init().
|
static |
Definition at line 1079 of file vf_scale_cuda.c.
Referenced by cudascale_filter_set_init().
|
static |
Definition at line 1169 of file vf_scale_cuda.c.
Referenced by cudascale_prepare_filter_set().
|
static |
Definition at line 1318 of file vf_scale_cuda.c.
Referenced by cudascale_scale(), and cudascale_setup_filters().
|
static |
Definition at line 1365 of file vf_scale_cuda.c.
Referenced by cudascale_config_props().
|
static |
Definition at line 1385 of file vf_scale_cuda.c.
Referenced by cudascale_query_formats().
|
static |
Definition at line 1404 of file vf_scale_cuda.c.
|
static |
Definition at line 1481 of file vf_scale_cuda.c.
|
static |
Definition at line 1557 of file vf_scale_cuda.c.
Referenced by cudascale_filter_frame().
|
static |
Definition at line 1588 of file vf_scale_cuda.c.
Referenced by cudascale_scale().
|
static |
Definition at line 1650 of file vf_scale_cuda.c.
Referenced by cudascale_run_pass().
|
static |
Definition at line 1710 of file vf_scale_cuda.c.
Referenced by cudascale_scale().
|
static |
Definition at line 1757 of file vf_scale_cuda.c.
Referenced by cudascale_filter_frame(), and cudascale_scale().
|
static |
Definition at line 1787 of file vf_scale_cuda.c.
Referenced by cudascale_filter_frame().
|
static |
Definition at line 1874 of file vf_scale_cuda.c.
|
static |
Definition at line 1930 of file vf_scale_cuda.c.
|
static |
Definition at line 57 of file vf_scale_cuda.c.
|
static |
Definition at line 1941 of file vf_scale_cuda.c.
|
static |
Definition at line 1983 of file vf_scale_cuda.c.
|
static |
Definition at line 1990 of file vf_scale_cuda.c.
|
static |
Definition at line 1999 of file vf_scale_cuda.c.
| const FFFilter ff_vf_scale_cuda |
Definition at line 2007 of file vf_scale_cuda.c.