#include "libavutil/cpu.h"
#include "libavutil/common.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "yadif.h"
#include <assert.h>
Go to the source code of this file.
Data Structures | |
struct | YADIFContext |
Defines | |
#define | CHECK(j) |
#define | FILTER |
Functions | |
static void | filter_line_c (uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, int w, int prefs, int mrefs, int parity, int mode) |
static void | filter_line_c_16bit (uint16_t *dst, uint16_t *prev, uint16_t *cur, uint16_t *next, int w, int prefs, int mrefs, int parity, int mode) |
static void | filter (AVFilterContext *ctx, AVFilterBufferRef *dstpic, int parity, int tff) |
static AVFilterBufferRef * | get_video_buffer (AVFilterLink *link, int perms, int w, int h) |
static void | return_frame (AVFilterContext *ctx, int is_second) |
static void | start_frame (AVFilterLink *link, AVFilterBufferRef *picref) |
static void | end_frame (AVFilterLink *link) |
static int | request_frame (AVFilterLink *link) |
static int | poll_frame (AVFilterLink *link) |
static av_cold void | uninit (AVFilterContext *ctx) |
static int | query_formats (AVFilterContext *ctx) |
static av_cold int | init (AVFilterContext *ctx, const char *args, void *opaque) |
static void | null_draw_slice (AVFilterLink *link, int y, int h, int slice_dir) |
Variables | |
AVFilter | avfilter_vf_yadif |
#define CHECK | ( | j | ) |
Value:
{ int score = FFABS(cur[mrefs-1+(j)] - cur[prefs-1-(j)])\ + FFABS(cur[mrefs +(j)] - cur[prefs -(j)])\ + FFABS(cur[mrefs+1+(j)] - cur[prefs+1-(j)]);\ if (score < spatial_score) {\ spatial_score= score;\ spatial_pred= (cur[mrefs +(j)] + cur[prefs -(j)])>>1;\
Definition at line 64 of file vf_yadif.c.
#define FILTER |
Definition at line 72 of file vf_yadif.c.
static void end_frame | ( | AVFilterLink * | link | ) | [static] |
Definition at line 271 of file vf_yadif.c.
static void filter | ( | AVFilterContext * | ctx, | |
AVFilterBufferRef * | dstpic, | |||
int | parity, | |||
int | tff | |||
) | [static] |
Definition at line 136 of file vf_yadif.c.
static void filter_line_c | ( | uint8_t * | dst, | |
uint8_t * | prev, | |||
uint8_t * | cur, | |||
uint8_t * | next, | |||
int | w, | |||
int | prefs, | |||
int | mrefs, | |||
int | parity, | |||
int | mode | |||
) | [static] |
static void filter_line_c_16bit | ( | uint16_t * | dst, | |
uint16_t * | prev, | |||
uint16_t * | cur, | |||
uint16_t * | next, | |||
int | w, | |||
int | prefs, | |||
int | mrefs, | |||
int | parity, | |||
int | mode | |||
) | [static] |
static AVFilterBufferRef* get_video_buffer | ( | AVFilterLink * | link, | |
int | perms, | |||
int | w, | |||
int | h | |||
) | [static] |
Definition at line 173 of file vf_yadif.c.
static av_cold int init | ( | AVFilterContext * | ctx, | |
const char * | args, | |||
void * | opaque | |||
) | [static] |
Definition at line 367 of file vf_yadif.c.
static void null_draw_slice | ( | AVFilterLink * | link, | |
int | y, | |||
int | h, | |||
int | slice_dir | |||
) | [static] |
Definition at line 392 of file vf_yadif.c.
static int poll_frame | ( | AVFilterLink * | link | ) | [static] |
Definition at line 308 of file vf_yadif.c.
static int query_formats | ( | AVFilterContext * | ctx | ) | [static] |
Definition at line 340 of file vf_yadif.c.
static int request_frame | ( | AVFilterLink * | link | ) | [static] |
Definition at line 288 of file vf_yadif.c.
static void return_frame | ( | AVFilterContext * | ctx, | |
int | is_second | |||
) | [static] |
Definition at line 191 of file vf_yadif.c.
Referenced by end_frame(), request_frame(), and start_frame().
static void start_frame | ( | AVFilterLink * | link, | |
AVFilterBufferRef * | picref | |||
) | [static] |
Definition at line 235 of file vf_yadif.c.
static av_cold void uninit | ( | AVFilterContext * | ctx | ) | [static] |
Definition at line 331 of file vf_yadif.c.
Initial value:
{ .name = "yadif", .description = NULL_IF_CONFIG_SMALL("Deinterlace the input image"), .priv_size = sizeof(YADIFContext), .init = init, .uninit = uninit, .query_formats = query_formats, .inputs = (const AVFilterPad[]) {{ .name = "default", .type = AVMEDIA_TYPE_VIDEO, .start_frame = start_frame, .get_video_buffer = get_video_buffer, .draw_slice = null_draw_slice, .end_frame = end_frame, .rej_perms = AV_PERM_REUSE2, }, { .name = NULL}}, .outputs = (const AVFilterPad[]) {{ .name = "default", .type = AVMEDIA_TYPE_VIDEO, .poll_frame = poll_frame, .request_frame = request_frame, }, { .name = NULL}}, }
Definition at line 394 of file vf_yadif.c.