libavfilter/vf_delogo.c File Reference

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

#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"

Go to the source code of this file.

Data Structures

struct  DelogoContext

Defines

#define OFFSET(x)   offsetof(DelogoContext, x)
#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.
static const char * delogo_get_name (void *ctx)
static int query_formats (AVFilterContext *ctx)
static av_cold int init (AVFilterContext *ctx, const char *args, void *opaque)
static void start_frame (AVFilterLink *inlink, AVFilterBufferRef *inpicref)
static void null_draw_slice (AVFilterLink *link, int y, int h, int slice_dir)
static void end_frame (AVFilterLink *inlink)

Variables

static const AVOption delogo_options []
static const AVClass delogo_class
AVFilter avfilter_vf_delogo


Detailed Description

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

Definition in file vf_delogo.c.


Define Documentation

#define CHECK_UNSET_OPT ( opt   ) 

Value:

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

Referenced by init().

#define OFFSET (  )     offsetof(DelogoContext, x)

Definition at line 138 of file vf_delogo.c.


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:
w width of the input image
h height of the input image
logo_x x coordinate of the top left corner of the logo region
logo_y y coordinate of the top left corner of the logo region
logo_w width of the logo
logo_h height of the logo
band the size of the band around the processed area
show show a rectangle around the processed area, useful for parameters tweaking
direct if non-zero perform in-place processing

Definition at line 51 of file vf_delogo.c.

Referenced by end_frame().

static const char* delogo_get_name ( void *  ctx  )  [static]

Definition at line 151 of file vf_delogo.c.

static void end_frame ( AVFilterLink inlink  )  [static]

Definition at line 238 of file vf_delogo.c.

static av_cold int init ( AVFilterContext ctx,
const char *  args,
void *  opaque 
) [static]

Definition at line 175 of file vf_delogo.c.

static void null_draw_slice ( AVFilterLink link,
int  y,
int  h,
int  slice_dir 
) [static]

Definition at line 236 of file vf_delogo.c.

static int query_formats ( AVFilterContext ctx  )  [static]

Definition at line 162 of file vf_delogo.c.

static void start_frame ( AVFilterLink inlink,
AVFilterBufferRef inpicref 
) [static]

Definition at line 218 of file vf_delogo.c.


Variable Documentation

Initial value:

 {
    .name          = "delogo",
    .description   = NULL_IF_CONFIG_SMALL("Remove logo from input video."),
    .priv_size     = sizeof(DelogoContext),
    .init          = init,
    .query_formats = query_formats,

    .inputs    = (const AVFilterPad[]) {{ .name       = "default",
                                    .type             = AVMEDIA_TYPE_VIDEO,
                                    .get_video_buffer = avfilter_null_get_video_buffer,
                                    .start_frame      = start_frame,
                                    .draw_slice       = null_draw_slice,
                                    .end_frame        = end_frame,
                                    .min_perms        = AV_PERM_WRITE | AV_PERM_READ,
                                    .rej_perms        = AV_PERM_PRESERVE },
                                  { .name = NULL}},
    .outputs   = (const AVFilterPad[]) {{ .name       = "default",
                                    .type             = AVMEDIA_TYPE_VIDEO, },
                                  { .name = NULL}},
}

Definition at line 269 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 156 of file vf_delogo.c.

const AVOption delogo_options[] [static]

Initial value:

 {
    {"x",    "set logo x position",       OFFSET(x),    AV_OPT_TYPE_INT, {.dbl=-1}, -1, INT_MAX },
    {"y",    "set logo y position",       OFFSET(y),    AV_OPT_TYPE_INT, {.dbl=-1}, -1, INT_MAX },
    {"w",    "set logo width",            OFFSET(w),    AV_OPT_TYPE_INT, {.dbl=-1}, -1, INT_MAX },
    {"h",    "set logo height",           OFFSET(h),    AV_OPT_TYPE_INT, {.dbl=-1}, -1, INT_MAX },
    {"band", "set delogo area band size", OFFSET(band), AV_OPT_TYPE_INT, {.dbl= 4}, -1, INT_MAX },
    {"t",    "set delogo area band size", OFFSET(band), AV_OPT_TYPE_INT, {.dbl= 4}, -1, INT_MAX },
    {"show", "show delogo area",          OFFSET(show), AV_OPT_TYPE_INT, {.dbl= 0},  0, 1       },
    {NULL},
}

Definition at line 140 of file vf_delogo.c.


Generated on Fri Oct 26 02:43:51 2012 for FFmpeg by  doxygen 1.5.8