FFmpeg
|
#include "libavutil/opt.h"
#include "libavutil/avassert.h"
#include "libavutil/pixdesc.h"
#include "filters.h"
#include "video.h"
Go to the source code of this file.
Data Structures | |
struct | HQXContext |
struct | ThreadData |
Used for passing data between threads. More... | |
Macros | |
#define | OFFSET(x) offsetof(HQXContext, x) |
#define | FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define | YMASK 0xff0000 |
#define | UMASK 0x00ff00 |
#define | VMASK 0x0000ff |
#define | ABSDIFF(a, b) (abs((int)(a)-(int)(b))) |
#define | P(m, r) ((k_shuffled & (m)) == (r)) |
#define | DROP4(z) ((z) > 4 ? (z)-1 : (z)) |
#define | SHF(x, rot, n) (((x) >> ((rot) ? 7-DROP4(n) : DROP4(n)) & 1) << DROP4(p##n)) |
#define | WDIFF(c1, c2) yuv_diff(rgb2yuv(r2y, c1), rgb2yuv(r2y, c2)) |
#define | INTERP_BOOTSTRAP(rot) |
#define | HQX_FUNC(size) |
Typedefs | |
typedef int(* | hqxfunc_t) (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
Functions | |
AVFILTER_DEFINE_CLASS (hqx) | |
static av_always_inline uint32_t | rgb2yuv (const uint32_t *r2y, uint32_t c) |
static av_always_inline int | yuv_diff (uint32_t yuv1, uint32_t yuv2) |
static av_always_inline uint32_t | interp_2px (uint32_t c1, int w1, uint32_t c2, int w2, int s) |
static av_always_inline uint32_t | interp_3px (uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s) |
static av_always_inline uint32_t | hq2x_interp_1x1 (const uint32_t *r2y, int k, const uint32_t *w, int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8) |
static av_always_inline void | hq3x_interp_2x1 (uint32_t *dst, int dst_linesize, const uint32_t *r2y, int k, const uint32_t *w, int pos00, int pos01, int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int rotate) |
static av_always_inline void | hq4x_interp_2x2 (uint32_t *dst, int dst_linesize, const uint32_t *r2y, int k, const uint32_t *w, int pos00, int pos01, int pos10, int pos11, int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8) |
static av_always_inline void | hqx_filter (const ThreadData *td, int jobnr, int nb_jobs, int n) |
static int | config_output (AVFilterLink *outlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
static av_cold int | init (AVFilterContext *ctx) |
Variables | |
static const AVOption | hqx_options [] |
static const AVFilterPad | hqx_inputs [] |
static const AVFilterPad | hqx_outputs [] |
const AVFilter | ff_vf_hqx |
hqx magnification filters (hq2x, hq3x, hq4x)
Originally designed by Maxim Stephin.
Definition in file vf_hqx.c.
#define OFFSET | ( | x | ) | offsetof(HQXContext, x) |
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define YMASK 0xff0000 |
#define UMASK 0x00ff00 |
#define VMASK 0x0000ff |
#define INTERP_BOOTSTRAP | ( | rot | ) |
#define HQX_FUNC | ( | size | ) |
typedef int(* hqxfunc_t) (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
AVFILTER_DEFINE_CLASS | ( | hqx | ) |
|
static |
Definition at line 59 of file vf_hqx.c.
Referenced by hqx_filter().
|
static |
Definition at line 64 of file vf_hqx.c.
Referenced by hqx_filter().
|
static |
Definition at line 77 of file vf_hqx.c.
Referenced by hq2x_interp_1x1(), hq3x_interp_2x1(), and hq4x_interp_2x2().
|
static |
Definition at line 84 of file vf_hqx.c.
Referenced by hq2x_interp_1x1(), hq3x_interp_2x1(), and hq4x_interp_2x2().
|
static |
Definition at line 120 of file vf_hqx.c.
Referenced by hqx_filter().
|
static |
Definition at line 170 of file vf_hqx.c.
Referenced by hqx_filter().
|
static |
Definition at line 236 of file vf_hqx.c.
Referenced by hqx_filter().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
const AVFilter ff_vf_hqx |