Libav
Data Structures | Macros | Functions | Variables
vf_delogo.c File Reference

A very simple tv station logo remover Ported from MPlayer libmpcodecs/vf_delogo.c. More...

#include "libavutil/common.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  DelogoContext
 

Macros

#define OFFSET(x)   offsetof(DelogoContext, x)
 
#define FLAGS   AV_OPT_FLAG_VIDEO_PARAM
 
#define CHECK_UNSET_OPT(opt)
 

Functions

static void apply_delogo (uint8_t *dst, int dst_linesize, uint8_t *src, int src_linesize, int w, int h, int logo_x, int logo_y, int logo_w, int logo_h, int band, int show, int direct)
 Apply a simple delogo algorithm to the image in dst and put the result in src. More...
 
static const char * delogo_get_name (void *ctx)
 
static int query_formats (AVFilterContext *ctx)
 
static av_cold int init (AVFilterContext *ctx)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *in)
 

Variables

static const AVOption delogo_options []
 
static const AVClass delogo_class
 
static const AVFilterPad avfilter_vf_delogo_inputs []
 
static const AVFilterPad avfilter_vf_delogo_outputs []
 
AVFilter ff_vf_delogo
 

Detailed Description

A very simple tv station logo remover Ported from MPlayer libmpcodecs/vf_delogo.c.

Definition in file vf_delogo.c.

Macro Definition Documentation

#define OFFSET (   x)    offsetof(DelogoContext, x)

Definition at line 138 of file vf_delogo.c.

#define FLAGS   AV_OPT_FLAG_VIDEO_PARAM

Definition at line 139 of file vf_delogo.c.

#define CHECK_UNSET_OPT (   opt)
Value:
if (s->opt == -1) { \
av_log(s, AV_LOG_ERROR, "Option %s was not set.\n", #opt); \
return AVERROR(EINVAL); \
}

Referenced by init().

Function Documentation

static void apply_delogo ( uint8_t dst,
int  dst_linesize,
uint8_t src,
int  src_linesize,
int  w,
int  h,
int  logo_x,
int  logo_y,
int  logo_w,
int  logo_h,
int  band,
int  show,
int  direct 
)
static

Apply a simple delogo algorithm to the image in dst and put the result in src.

The algorithm is only applied to the region specified by the logo parameters.

Parameters
wwidth of the input image
hheight of the input image
logo_xx coordinate of the top left corner of the logo region
logo_yy coordinate of the top left corner of the logo region
logo_wwidth of the logo
logo_hheight of the logo
bandthe size of the band around the processed area
showshow a rectangle around the processed area, useful for parameters tweaking
directif non-zero perform in-place processing

Definition at line 55 of file vf_delogo.c.

Referenced by filter_frame().

static const char* delogo_get_name ( void ctx)
static

Definition at line 152 of file vf_delogo.c.

static int query_formats ( AVFilterContext ctx)
static

Definition at line 163 of file vf_delogo.c.

static av_cold int init ( AVFilterContext ctx)
static

Definition at line 176 of file vf_delogo.c.

static int filter_frame ( AVFilterLink inlink,
AVFrame in 
)
static

Definition at line 204 of file vf_delogo.c.

Variable Documentation

const AVOption delogo_options[]
static
Initial value:
= {
{ "x", "set logo x position", OFFSET(x), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, FLAGS },
{ "y", "set logo y position", OFFSET(y), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, FLAGS },
{ "w", "set logo width", OFFSET(w), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, FLAGS },
{ "h", "set logo height", OFFSET(h), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, FLAGS },
{ "band", "set delogo area band size", OFFSET(band), AV_OPT_TYPE_INT, { .i64 = 4 }, -1, INT_MAX, FLAGS },
{ "t", "set delogo area band size", OFFSET(band), AV_OPT_TYPE_INT, { .i64 = 4 }, -1, INT_MAX, FLAGS },
{ "show", "show delogo area", OFFSET(show), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, FLAGS },
{ NULL },
}

Definition at line 141 of file vf_delogo.c.

const AVClass delogo_class
static
Initial value:
= {
.class_name = "DelogoContext",
.item_name = delogo_get_name,
.option = delogo_options,
}

Definition at line 157 of file vf_delogo.c.

const AVFilterPad avfilter_vf_delogo_inputs[]
static
Initial value:
= {
{
.name = "default",
.get_video_buffer = ff_null_get_video_buffer,
.filter_frame = filter_frame,
},
{ NULL }
}

Definition at line 249 of file vf_delogo.c.

const AVFilterPad avfilter_vf_delogo_outputs[]
static
Initial value:
= {
{
.name = "default",
},
{ NULL }
}

Definition at line 259 of file vf_delogo.c.

AVFilter ff_vf_delogo
Initial value:
= {
.name = "delogo",
.description = NULL_IF_CONFIG_SMALL("Remove logo from input video."),
.priv_size = sizeof(DelogoContext),
.priv_class = &delogo_class,
.init = init,
}

Definition at line 267 of file vf_delogo.c.