Go to the source code of this file.
|
#define | GET_RESULT(A, B, C, D) ((A != C || A != D) - (B != C || B != D)) |
|
#define | INTERPOLATE(A, B) (((A & hi_pixel_mask) >> 1) + ((B & hi_pixel_mask) >> 1) + (A & B & lo_pixel_mask)) |
|
#define | Q_INTERPOLATE(A, B, C, D) |
|
#define | READ_COLOR4(dst, src_line, off) dst = *((const uint32_t *)src_line + off) |
|
#define | READ_COLOR3(dst, src_line, off) dst = AV_RL24 (src_line + 3*off) |
|
#define | READ_COLOR2(dst, src_line, off) dst = s->is_be ? AV_RB16(src_line + 2 * off) : AV_RL16(src_line + 2 * off) |
|
Super 2xSaI video filter Ported from MPlayer libmpcodecs/vf_2xsai.c.
Definition in file vf_super2xsai.c.
◆ GET_RESULT
#define GET_RESULT |
( |
|
A, |
|
|
|
B, |
|
|
|
C, |
|
|
|
D |
|
) |
| ((A != C || A != D) - (B != C || B != D)) |
◆ INTERPOLATE
#define INTERPOLATE |
( |
|
A, |
|
|
|
B |
|
) |
| (((A & hi_pixel_mask) >> 1) + ((B & hi_pixel_mask) >> 1) + (A & B & lo_pixel_mask)) |
◆ Q_INTERPOLATE
#define Q_INTERPOLATE |
( |
|
A, |
|
|
|
B, |
|
|
|
C, |
|
|
|
D |
|
) |
| |
Value: ((
A & q_hi_pixel_mask) >> 2) + ((
B & q_hi_pixel_mask) >> 2) + ((
C & q_hi_pixel_mask) >> 2) + ((
D & q_hi_pixel_mask) >> 2) \
+ ((((
A & q_lo_pixel_mask) + (
B & q_lo_pixel_mask) + (
C & q_lo_pixel_mask) + (
D & q_lo_pixel_mask)) >> 2) & q_lo_pixel_mask)
Definition at line 56 of file vf_super2xsai.c.
◆ READ_COLOR4
#define READ_COLOR4 |
( |
|
dst, |
|
|
|
src_line, |
|
|
|
off |
|
) |
| dst = *((const uint32_t *)src_line + off) |
◆ READ_COLOR3
#define READ_COLOR3 |
( |
|
dst, |
|
|
|
src_line, |
|
|
|
off |
|
) |
| dst = AV_RL24 (src_line + 3*off) |
◆ READ_COLOR2
#define READ_COLOR2 |
( |
|
dst, |
|
|
|
src_line, |
|
|
|
off |
|
) |
| dst = s->is_be ? AV_RB16(src_line + 2 * off) : AV_RL16(src_line + 2 * off) |
◆ super2xsai()
static int super2xsai |
( |
AVFilterContext * |
ctx, |
|
|
void * |
arg, |
|
|
int |
jobnr, |
|
|
int |
nb_jobs |
|
) |
| |
|
static |
◆ config_input()
◆ config_output()
◆ filter_frame()
◆ pix_fmts
◆ super2xsai_inputs
Initial value:= {
{
.name = "default",
},
}
Definition at line 335 of file vf_super2xsai.c.
◆ super2xsai_outputs
Initial value:= {
{
.name = "default",
},
}
Definition at line 344 of file vf_super2xsai.c.
◆ ff_vf_super2xsai
Initial value:= {
.name = "super2xsai",
.description =
NULL_IF_CONFIG_SMALL(
"Scale the input by 2x using the Super2xSaI pixel art algorithm."),
}
Definition at line 352 of file vf_super2xsai.c.
static const AVFilterPad super2xsai_outputs[]
#define FILTER_PIXFMTS_ARRAY(array)
#define FILTER_INPUTS(array)
static int config_input(AVFilterLink *inlink)
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
static const AVFilterPad super2xsai_inputs[]
@ AV_PIX_FMT_RGB555BE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined
s EdgeDetect Foobar g libavfilter vf_edgedetect c libavfilter vf_foobar c edit libavfilter and add an entry for foobar following the pattern of the other filters edit libavfilter allfilters and add an entry for foobar following the pattern of the other filters configure make j< whatever > ffmpeg ffmpeg i you should get a foobar png with Lena edge detected That s your new playground is ready Some little details about what s going which in turn will define variables for the build system and the C
#define FILTER_OUTPUTS(array)
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
@ AV_PIX_FMT_RGB565LE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
@ AV_PIX_FMT_BGR565LE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian
@ AV_PIX_FMT_BGR555BE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
static int config_output(AVFilterLink *outlink)
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
@ AV_PIX_FMT_BGR565BE
packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
@ AV_PIX_FMT_RGB555LE
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined
static enum AVPixelFormat pix_fmts[]
@ AV_PIX_FMT_RGB565BE
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
@ AV_PIX_FMT_BGR555LE
packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined