libavfilter/vf_fieldorder.c File Reference

video field order filter, heavily influenced by vf_pad.c More...

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

Go to the source code of this file.

Data Structures

struct  FieldOrderContext

Functions

static av_cold int init (AVFilterContext *ctx, const char *args, void *opaque)
static int query_formats (AVFilterContext *ctx)
static int config_input (AVFilterLink *inlink)
static AVFilterBufferRefget_video_buffer (AVFilterLink *inlink, int perms, int w, int h)
static void start_frame (AVFilterLink *inlink, AVFilterBufferRef *inpicref)
static void draw_slice (AVFilterLink *inlink, int y, int h, int slice_dir)
static void end_frame (AVFilterLink *inlink)

Variables

AVFilter avfilter_vf_fieldorder


Detailed Description

video field order filter, heavily influenced by vf_pad.c

Definition in file vf_fieldorder.c.


Function Documentation

static int config_input ( AVFilterLink inlink  )  [static]

full an array with the number of bytes that the video data occupies per line for each plane of the input video

Definition at line 90 of file vf_fieldorder.c.

static void draw_slice ( AVFilterLink inlink,
int  y,
int  h,
int  slice_dir 
) [static]

can only currently do slices if this filter is doing nothing because this filter is moving picture content, the output slice will contain different video lines than the input slice and that complexity will be added later

Definition at line 129 of file vf_fieldorder.c.

static void end_frame ( AVFilterLink inlink  )  [static]

Move every line up one line, working from the top to the bottom of the frame. The original top line is lost. The new last line is created as a copy of the penultimate line from that field.

Move every line down one line, working from the bottom to the top of the frame. The original bottom line is lost. The new first line is created as a copy of the second line from that field.

Definition at line 147 of file vf_fieldorder.c.

static AVFilterBufferRef* get_video_buffer ( AVFilterLink inlink,
int  perms,
int  w,
int  h 
) [static]

Definition at line 108 of file vf_fieldorder.c.

Referenced by avfilter_get_video_buffer().

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

Definition at line 38 of file vf_fieldorder.c.

static int query_formats ( AVFilterContext ctx  )  [static]

accept any input pixel format that is not hardware accelerated, not a bitstream format, and does not have vertically sub-sampled chroma

Definition at line 64 of file vf_fieldorder.c.

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

Definition at line 116 of file vf_fieldorder.c.


Variable Documentation

Initial value:

 {
    .name          = "fieldorder",
    .description   = NULL_IF_CONFIG_SMALL("Set the field order."),
    .init          = init,
    .priv_size     = sizeof(FieldOrderContext),
    .query_formats = query_formats,
    .inputs        = (const AVFilterPad[]) {{ .name       = "default",
                                        .type             = AVMEDIA_TYPE_VIDEO,
                                        .config_props     = config_input,
                                        .start_frame      = start_frame,
                                        .get_video_buffer = get_video_buffer,
                                        .draw_slice       = draw_slice,
                                        .end_frame        = end_frame,
                                        .min_perms        = AV_PERM_READ,
                                        .rej_perms        = AV_PERM_REUSE2|AV_PERM_PRESERVE,},
                                      { .name = NULL}},
    .outputs       = (const AVFilterPad[]) {{ .name       = "default",
                                        .type             = AVMEDIA_TYPE_VIDEO, },
                                      { .name = NULL}},
}

Definition at line 215 of file vf_fieldorder.c.


Generated on Fri Oct 26 02:46:12 2012 for FFmpeg by  doxygen 1.5.8