#include "libavutil/imgutils.h"
#include "libavutil/avassert.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) |
| 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], const 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 int | start_frame (AVFilterLink *inlink, AVFilterBufferRef *picref) |
| static int | end_frame (AVFilterLink *inlink) |
| static int | poll_frame (AVFilterLink *outlink) |
| static int | request_frame (AVFilterLink *outlink) |
| static int | 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 |
Definition in file vf_tinterlace.c.
| #define FIELD_LOWER 1 |
Definition at line 165 of file vf_tinterlace.c.
Referenced by copy_picture_field(), and end_frame().
| #define FIELD_UPPER 0 |
| #define FIELD_UPPER_AND_LOWER 2 |
Definition at line 166 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 |
| enum TInterlaceMode |
| MODE_MERGE | |
| MODE_DROP_EVEN | |
| MODE_DROP_ODD | |
| MODE_PAD | |
| MODE_INTERLEAVE_TOP | |
| MODE_INTERLEAVE_BOTTOM | |
| MODE_INTERLACEX2 |
Definition at line 33 of file vf_tinterlace.c.
| static int config_out_props | ( | AVFilterLink * | outlink | ) | [static] |
Definition at line 129 of file vf_tinterlace.c.
| static void copy_picture_field | ( | uint8_t * | dst[4], | |
| int | dst_linesize[4], | |||
| const 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.
| 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 177 of file vf_tinterlace.c.
Referenced by end_frame().
| static int end_frame | ( | AVFilterLink * | inlink | ) | [static] |
Definition at line 213 of file vf_tinterlace.c.
| static av_cold int init | ( | AVFilterContext * | ctx, | |
| const char * | args | |||
| ) | [static] |
Definition at line 84 of file vf_tinterlace.c.
| static int null_draw_slice | ( | AVFilterLink * | link, | |
| int | y, | |||
| int | h, | |||
| int | slice_dir | |||
| ) | [static] |
Definition at line 366 of file vf_tinterlace.c.
| static int poll_frame | ( | AVFilterLink * | outlink | ) | [static] |
Definition at line 333 of file vf_tinterlace.c.
| static int query_formats | ( | AVFilterContext * | ctx | ) | [static] |
Definition at line 71 of file vf_tinterlace.c.
| static int request_frame | ( | AVFilterLink * | outlink | ) | [static] |
Definition at line 351 of file vf_tinterlace.c.
| static int start_frame | ( | AVFilterLink * | inlink, | |
| AVFilterBufferRef * | picref | |||
| ) | [static] |
Definition at line 201 of file vf_tinterlace.c.
| static av_cold void uninit | ( | AVFilterContext * | ctx | ) | [static] |
Definition at line 119 of file vf_tinterlace.c.
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 368 of file vf_tinterlace.c.
enum PixelFormat full_scale_yuvj_pix_fmts[] [static] |
const char* tinterlace_mode_str[] [static] |
Initial value:
{
"merge",
"drop_even",
"drop_odd",
"pad",
"interleave_top",
"interleave_bottom",
"interlacex2",
NULL
}
Definition at line 43 of file vf_tinterlace.c.
Referenced by config_out_props(), and init().
1.5.8