vf_il.c File Reference

(de)interleave fields filter More...

#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
Include dependency graph for vf_il.c:

Go to the source code of this file.

Data Structures

struct  IlContext
 

Macros

#define OFFSET(x)   offsetof(IlContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 

Enumerations

enum  FilterMode { MODE_NONE, MODE_INTERLEAVE, MODE_DEINTERLEAVE }
 

Functions

static int query_formats (AVFilterContext *ctx)
 
static int config_input (AVFilterLink *inlink)
 
static void interleave (uint8_t *dst, uint8_t *src, int w, int h, int dst_linesize, int src_linesize, enum FilterMode mode, int swap)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *inpicref)
 

Variables

static const AVOption il_options []
 
static const AVClass il_class = { .class_name = "il", .item_name = av_default_item_name, .option = il_options, .version = LIBAVUTIL_VERSION_INT, .category = AV_CLASS_CATEGORY_FILTER, }
 
static const AVFilterPad inputs []
 
static const AVFilterPad outputs []
 
AVFilter avfilter_vf_il
 

Detailed Description

(de)interleave fields filter

Definition in file vf_il.c.

Macro Definition Documentation

Definition at line 49 of file vf_il.c.

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

Definition at line 48 of file vf_il.c.

Enumeration Type Documentation

enum FilterMode
Enumerator
MODE_NONE 
MODE_INTERLEAVE 
MODE_DEINTERLEAVE 

Definition at line 33 of file vf_il.c.

Function Documentation

static int config_input ( AVFilterLink inlink)
static

Definition at line 99 of file vf_il.c.

static int filter_frame ( AVFilterLink inlink,
AVFrame inpicref 
)
static

Definition at line 149 of file vf_il.c.

static void interleave ( uint8_t *  dst,
uint8_t *  src,
int  w,
int  h,
int  dst_linesize,
int  src_linesize,
enum FilterMode  mode,
int  swap 
)
static

Definition at line 118 of file vf_il.c.

Referenced by filter_frame().

static int query_formats ( AVFilterContext ctx)
static

Definition at line 84 of file vf_il.c.

Variable Documentation

AVFilter avfilter_vf_il
Initial value:
= {
.name = "il",
.description = NULL_IF_CONFIG_SMALL("Deinterleave or interleave fields."),
.priv_size = sizeof(IlContext),
.priv_class = &il_class,
}
static int query_formats(AVFilterContext *ctx)
Definition: vf_il.c:84
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static const AVClass il_class
Definition: vf_il.c:82
static const AVFilterPad outputs[]
Definition: vf_il.c:198
static const AVFilterPad inputs[]
Definition: vf_il.c:187

Definition at line 206 of file vf_il.c.

const AVClass il_class = { .class_name = "il", .item_name = av_default_item_name, .option = il_options, .version = LIBAVUTIL_VERSION_INT, .category = AV_CLASS_CATEGORY_FILTER, }
static

Definition at line 82 of file vf_il.c.

const AVOption il_options[]
static
Initial value:
= {
{"luma_mode", "select luma mode", offsetof(IlContext, luma_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "luma_mode"},
{"l", "select luma mode", offsetof(IlContext, luma_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "luma_mode"},
{"chroma_mode", "select chroma mode", offsetof(IlContext, chroma_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "chroma_mode"},
{"c", "select chroma mode", offsetof(IlContext, chroma_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "chroma_mode"},
{"deinterleave", NULL, 0, AV_OPT_TYPE_CONST, {.i64=MODE_DEINTERLEAVE}, 0, 0, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "chroma_mode"},
{"alpha_mode", "select alpha mode", offsetof(IlContext, alpha_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "alpha_mode"},
{"a", "select alpha mode", offsetof(IlContext, alpha_mode ), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM , "alpha_mode"},
{"luma_swap", "swap luma fields", offsetof(IlContext, luma_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{"ls", "swap luma fields", offsetof(IlContext, luma_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{"chroma_swap", "swap chroma fields", offsetof(IlContext, chroma_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{"cs", "swap chroma fields", offsetof(IlContext, chroma_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{"alpha_swap", "swap alpha fields", offsetof(IlContext, alpha_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{"as", "swap alpha fields", offsetof(IlContext, alpha_swap ), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM },
{NULL}
}
#define AV_OPT_FLAG_FILTERING_PARAM
a generic parameter which can be set by the user for filtering
Definition: opt.h:287
NULL
Definition: eval.c:55
#define AV_OPT_FLAG_VIDEO_PARAM
Definition: opt.h:285

Definition at line 51 of file vf_il.c.

const AVFilterPad inputs[]
static
Initial value:
= {
{
.name = "default",
.get_video_buffer = ff_null_get_video_buffer,
.filter_frame = filter_frame,
.config_props = config_input,
},
{ NULL }
}
AVFrame * ff_null_get_video_buffer(AVFilterLink *link, int w, int h)
Definition: video.c:35
static int config_input(AVFilterLink *inlink)
Definition: vf_il.c:99
NULL
Definition: eval.c:55
static int filter_frame(AVFilterLink *inlink, AVFrame *inpicref)
Definition: vf_il.c:149

Definition at line 187 of file vf_il.c.

const AVFilterPad outputs[]
static
Initial value:
= {
{
.name = "default",
},
{ NULL }
}
NULL
Definition: eval.c:55

Definition at line 198 of file vf_il.c.