FFmpeg
|
#include <inttypes.h>
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "avfilter.h"
#include "filters.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | FieldMatchContext |
Macros | |
#define | INPUT_MAIN 0 |
#define | INPUT_CLEANSRC 1 |
#define | OFFSET(x) offsetof(FieldMatchContext, x) |
#define | FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
#define | FILTER(xm2, xm1, xp1, xp2) |
#define | HAS_FF_AROUND(p, lz) |
#define | C_ARRAY_ADD(v) |
#define | VERTICAL_HALF(y_start, y_end) |
#define | LOAD_COMB(mid) |
#define | SLIDING_FRAME_WINDOW(prv, src, nxt) |
Enumerations | |
enum | fieldmatch_parity { FM_PARITY_AUTO = -1, FM_PARITY_BOTTOM = 0, FM_PARITY_TOP = 1 } |
enum | matching_mode { MODE_PC, MODE_PC_N, MODE_PC_U, MODE_PC_N_UB, MODE_PCN, MODE_PCN_UB, NB_MODE } |
enum | comb_matching_mode { COMBMATCH_NONE, COMBMATCH_SC, COMBMATCH_FULL, NB_COMBMATCH } |
enum | comb_dbg { COMBDBG_NONE, COMBDBG_PCN, COMBDBG_PCNUB, NB_COMBDBG } |
enum | { mP, mC, mN, mB, mU } |
Functions | |
AVFILTER_DEFINE_CLASS (fieldmatch) | |
static int | get_width (const FieldMatchContext *fm, const AVFrame *f, int plane, int input) |
static int | get_height (const FieldMatchContext *fm, const AVFrame *f, int plane, int input) |
static int64_t | luma_abs_diff (const AVFrame *f1, const AVFrame *f2) |
static void | fill_buf (uint8_t *data, int w, int h, int linesize, uint8_t v) |
static int | calc_combed_score (const FieldMatchContext *fm, const AVFrame *src) |
static void | build_abs_diff_mask (const uint8_t *prvp, int prv_linesize, const uint8_t *nxtp, int nxt_linesize, uint8_t *tbuffer, int tbuf_linesize, int width, int height) |
static void | build_diff_map (FieldMatchContext *fm, const uint8_t *prvp, int prv_linesize, const uint8_t *nxtp, int nxt_linesize, uint8_t *dstp, int dst_linesize, int height, int width, int plane) |
Build a map over which pixels differ a lot/a little. More... | |
static int | get_field_base (int match, int field) |
static AVFrame * | select_frame (FieldMatchContext *fm, int match) |
static int | compare_fields (FieldMatchContext *fm, int match1, int match2, int field) |
static void | copy_fields (const FieldMatchContext *fm, AVFrame *dst, const AVFrame *src, int field, int input) |
static AVFrame * | create_weave_frame (AVFilterContext *ctx, int match, int field, const AVFrame *prv, AVFrame *src, const AVFrame *nxt, int input) |
static int | checkmm (AVFilterContext *ctx, int *combs, int m1, int m2, AVFrame **gen_frames, int field) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
static int | activate (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static av_cold int | fieldmatch_init (AVFilterContext *ctx) |
static av_cold void | fieldmatch_uninit (AVFilterContext *ctx) |
static int | config_output (AVFilterLink *outlink) |
Variables | |
static const AVOption | fieldmatch_options [] |
static const int | fxo0m [] = { mP, mC, mN, mB, mU } |
static const int | fxo1m [] = { mN, mC, mP, mU, mB } |
static const AVFilterPad | fieldmatch_outputs [] |
const AVFilter | ff_vf_fieldmatch |
Fieldmatching filter, ported from VFM filter (VapourSynth) by Clément. Fredrik Mellbin is the author of the VIVTC/VFM filter, which is itself a light clone of the TIVTC/TFM (AviSynth) filter written by Kevin Stone (tritical), the original author.
Definition in file vf_fieldmatch.c.
#define INPUT_MAIN 0 |
Definition at line 43 of file vf_fieldmatch.c.
#define INPUT_CLEANSRC 1 |
Definition at line 44 of file vf_fieldmatch.c.
#define OFFSET | ( | x | ) | offsetof(FieldMatchContext, x) |
Definition at line 114 of file vf_fieldmatch.c.
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
Definition at line 115 of file vf_fieldmatch.c.
#define FILTER | ( | xm2, | |
xm1, | |||
xp1, | |||
xp2 | |||
) |
#define HAS_FF_AROUND | ( | p, | |
lz | |||
) |
#define C_ARRAY_ADD | ( | v | ) |
#define VERTICAL_HALF | ( | y_start, | |
y_end | |||
) |
#define LOAD_COMB | ( | mid | ) |
#define SLIDING_FRAME_WINDOW | ( | prv, | |
src, | |||
nxt | |||
) |
enum fieldmatch_parity |
Enumerator | |
---|---|
FM_PARITY_AUTO | |
FM_PARITY_BOTTOM | |
FM_PARITY_TOP |
Definition at line 46 of file vf_fieldmatch.c.
enum matching_mode |
Enumerator | |
---|---|
MODE_PC | |
MODE_PC_N | |
MODE_PC_U | |
MODE_PC_N_UB | |
MODE_PCN | |
MODE_PCN_UB | |
NB_MODE |
Definition at line 52 of file vf_fieldmatch.c.
enum comb_matching_mode |
Enumerator | |
---|---|
COMBMATCH_NONE | |
COMBMATCH_SC | |
COMBMATCH_FULL | |
NB_COMBMATCH |
Definition at line 62 of file vf_fieldmatch.c.
enum comb_dbg |
Enumerator | |
---|---|
COMBDBG_NONE | |
COMBDBG_PCN | |
COMBDBG_PCNUB | |
NB_COMBDBG |
Definition at line 69 of file vf_fieldmatch.c.
anonymous enum |
Enumerator | |
---|---|
mP | |
mC | |
mN | |
mB | |
mU |
Definition at line 473 of file vf_fieldmatch.c.
AVFILTER_DEFINE_CLASS | ( | fieldmatch | ) |
|
static |
Definition at line 156 of file vf_fieldmatch.c.
Referenced by calc_combed_score(), compare_fields(), and copy_fields().
|
static |
Definition at line 161 of file vf_fieldmatch.c.
Referenced by calc_combed_score(), compare_fields(), copy_fields(), and ff_sauce_read().
Definition at line 166 of file vf_fieldmatch.c.
Referenced by filter_frame().
Definition at line 186 of file vf_fieldmatch.c.
Referenced by calc_combed_score(), compare_fields(), and intercept_id3().
|
static |
Definition at line 196 of file vf_fieldmatch.c.
Referenced by filter_frame().
|
static |
Definition at line 394 of file vf_fieldmatch.c.
Referenced by build_diff_map().
|
static |
Build a map over which pixels differ a lot/a little.
Definition at line 415 of file vf_fieldmatch.c.
Referenced by compare_fields().
Definition at line 475 of file vf_fieldmatch.c.
Referenced by compare_fields().
|
static |
Definition at line 480 of file vf_fieldmatch.c.
Referenced by compare_fields().
|
static |
Definition at line 487 of file vf_fieldmatch.c.
Referenced by filter_frame().
|
static |
Definition at line 609 of file vf_fieldmatch.c.
Referenced by create_weave_frame().
|
static |
Definition at line 622 of file vf_fieldmatch.c.
Referenced by filter_frame().
|
static |
Definition at line 649 of file vf_fieldmatch.c.
Referenced by filter_frame().
|
static |
Definition at line 677 of file vf_fieldmatch.c.
Referenced by activate().
|
static |
Definition at line 836 of file vf_fieldmatch.c.
|
static |
Definition at line 887 of file vf_fieldmatch.c.
|
static |
Definition at line 933 of file vf_fieldmatch.c.
Referenced by fieldmatch_init().
|
static |
Definition at line 969 of file vf_fieldmatch.c.
|
static |
Definition at line 1003 of file vf_fieldmatch.c.
|
static |
Definition at line 1023 of file vf_fieldmatch.c.
|
static |
Definition at line 117 of file vf_fieldmatch.c.
Definition at line 674 of file vf_fieldmatch.c.
Referenced by filter_frame().
Definition at line 675 of file vf_fieldmatch.c.
Referenced by filter_frame().
|
static |
Definition at line 1040 of file vf_fieldmatch.c.
const AVFilter ff_vf_fieldmatch |
Definition at line 1048 of file vf_fieldmatch.c.