libavfilter/vf_tinterlace.c File Reference

temporal field interlace filter, ported from MPlayer/libmpcodecs More...

#include "libavutil/imgutils.h"
#include "avfilter.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  TInterlaceContext

Defines

#define FULL_SCALE_YUVJ_FORMATS   PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ444P, PIX_FMT_YUVJ440P
#define FIELD_UPPER   0
#define FIELD_LOWER   1
#define FIELD_UPPER_AND_LOWER   2

Enumerations

enum  TInterlaceMode {
  MODE_MERGE = 0, MODE_DROP_EVEN, MODE_DROP_ODD, MODE_PAD,
  MODE_INTERLEAVE_TOP, MODE_INTERLEAVE_BOTTOM, MODE_INTERLACEX2
}

Functions

static int query_formats (AVFilterContext *ctx)
static av_cold int init (AVFilterContext *ctx, const char *args, void *opaque)
static av_cold void uninit (AVFilterContext *ctx)
static int config_out_props (AVFilterLink *outlink)
static void copy_picture_field (uint8_t *dst[4], int dst_linesize[4], uint8_t *src[4], int src_linesize[4], enum PixelFormat format, int w, int src_h, int src_field, int interleave, int dst_field)
 Copy picture field from src to dst.
static void start_frame (AVFilterLink *inlink, AVFilterBufferRef *picref)
static void end_frame (AVFilterLink *inlink)
static int poll_frame (AVFilterLink *outlink)
static int request_frame (AVFilterLink *outlink)
static void null_draw_slice (AVFilterLink *link, int y, int h, int slice_dir)

Variables

static const char * tinterlace_mode_str []
static enum PixelFormat full_scale_yuvj_pix_fmts []
AVFilter avfilter_vf_tinterlace


Detailed Description

temporal field interlace filter, ported from MPlayer/libmpcodecs

Definition in file vf_tinterlace.c.


Define Documentation

#define FIELD_LOWER   1

Definition at line 164 of file vf_tinterlace.c.

Referenced by copy_picture_field(), and end_frame().

#define FIELD_UPPER   0

Definition at line 163 of file vf_tinterlace.c.

Referenced by end_frame().

#define FIELD_UPPER_AND_LOWER   2

Definition at line 165 of file vf_tinterlace.c.

Referenced by copy_picture_field(), and end_frame().

#define FULL_SCALE_YUVJ_FORMATS   PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ444P, PIX_FMT_YUVJ440P

Definition at line 63 of file vf_tinterlace.c.

Referenced by query_formats().


Enumeration Type Documentation

Enumerator:
MODE_MERGE 
MODE_DROP_EVEN 
MODE_DROP_ODD 
MODE_PAD 
MODE_INTERLEAVE_TOP 
MODE_INTERLEAVE_BOTTOM 
MODE_INTERLACEX2 

Definition at line 32 of file vf_tinterlace.c.


Function Documentation

static int config_out_props ( AVFilterLink outlink  )  [static]

Definition at line 128 of file vf_tinterlace.c.

static void copy_picture_field ( uint8_t dst[4],
int  dst_linesize[4],
uint8_t src[4],
int  src_linesize[4],
enum PixelFormat  format,
int  w,
int  src_h,
int  src_field,
int  interleave,
int  dst_field 
) [inline, static]

Copy picture field from src to dst.

Parameters:
src_field copy from upper, lower field or both
interleave leave a padding line between each copied line
dst_field copy to upper or lower field, only meaningful when interleave is selected

Definition at line 176 of file vf_tinterlace.c.

Referenced by end_frame().

static void end_frame ( AVFilterLink inlink  )  [static]

Definition at line 210 of file vf_tinterlace.c.

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

Definition at line 83 of file vf_tinterlace.c.

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

Definition at line 361 of file vf_tinterlace.c.

static int poll_frame ( AVFilterLink outlink  )  [static]

Definition at line 328 of file vf_tinterlace.c.

static int query_formats ( AVFilterContext ctx  )  [static]

Definition at line 70 of file vf_tinterlace.c.

static int request_frame ( AVFilterLink outlink  )  [static]

Definition at line 346 of file vf_tinterlace.c.

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

Definition at line 200 of file vf_tinterlace.c.

static av_cold void uninit ( AVFilterContext ctx  )  [static]

Definition at line 118 of file vf_tinterlace.c.


Variable Documentation

Initial value:

 {
    .name          = "tinterlace",
    .description   = NULL_IF_CONFIG_SMALL("Perform temporal field interlacing."),
    .priv_size     = sizeof(TInterlaceContext),
    .init          = init,
    .uninit        = uninit,
    .query_formats = query_formats,

    .inputs = (const AVFilterPad[]) {
        { .name          = "default",
          .type          = AVMEDIA_TYPE_VIDEO,
          .start_frame   = start_frame,
          .draw_slice    = null_draw_slice,
          .end_frame     = end_frame, },
        { .name = NULL}
    },
    .outputs = (const AVFilterPad[]) {
        { .name          = "default",
          .type          = AVMEDIA_TYPE_VIDEO,
          .config_props  = config_out_props,
          .poll_frame    = poll_frame,
          .request_frame = request_frame },
        { .name = NULL}
    },
}

Definition at line 363 of file vf_tinterlace.c.

Initial value:

Definition at line 66 of file vf_tinterlace.c.

Referenced by config_out_props().

const char* tinterlace_mode_str[] [static]

Initial value:

 {
    "merge",
    "drop_even",
    "drop_odd",
    "pad",
    "interleave_top",
    "interleave_bottom",
    "interlacex2",
    NULL
}

Definition at line 42 of file vf_tinterlace.c.

Referenced by config_out_props(), and init().


Generated on Fri Oct 26 02:48:01 2012 for FFmpeg by  doxygen 1.5.8