FFmpeg
Loading...
Searching...
No Matches
tinterlace.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Stefano Sabatini
3 * Copyright (c) 2010 Baptiste Coudurier
4 * Copyright (c) 2003 Michael Zucchi <notzed@ximian.com>
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23/**
24 * @file
25 * temporal field interlace filter, ported from MPlayer/libmpcodecs
26 */
27#ifndef AVFILTER_TINTERLACE_H
28#define AVFILTER_TINTERLACE_H
29
30#include "libavutil/bswap.h"
31#include "libavutil/opt.h"
32#include "libavutil/pixdesc.h"
33#include "drawutils.h"
34#include "avfilter.h"
35#include "ccfifo.h"
36
37#define TINTERLACE_FLAG_VLPF 01
38#define TINTERLACE_FLAG_CVLPF 2
39#define TINTERLACE_FLAG_EXACT_TB 4
40#define TINTERLACE_FLAG_BYPASS_IL 8
41
46};
47
59
64
65typedef struct TInterlaceContext {
66 const AVClass *class;
67 int mode; ///< TInterlaceMode, interlace mode selected
69 int flags; ///< flags affecting interlacing algorithm
70 int lowpass; ///< legacy interlace filter lowpass mode
71 int vsub; ///< chroma vertical subsampling
74 uint8_t *black_data[2][4]; ///< buffer used to fill padded lines (limited/full)
79 void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp,
80 ptrdiff_t mref, ptrdiff_t pref, int clip_max);
83
85
86#endif /* AVFILTER_TINTERLACE_H */
@ MODE_NB
Main libavfilter public API header.
byte swapping routines
CC FIFO Buffer.
misc drawing utilities
AVOptions.
Describe the class of an AVClass context structure.
Definition log.h:76
This structure describes decoded (raw) audio or video data.
Definition frame.h:472
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition pixdesc.h:69
Rational number (pair of numerator and denominator).
Definition rational.h:58
AVRational preout_time_base
Definition tinterlace.h:68
int black_linesize[4]
Definition tinterlace.h:75
const AVPixFmtDescriptor * csp
Definition tinterlace.h:78
FFDrawColor color
Definition tinterlace.h:77
uint8_t * black_data[2][4]
buffer used to fill padded lines (limited/full)
Definition tinterlace.h:74
void(* lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp, ptrdiff_t mref, ptrdiff_t pref, int clip_max)
Definition tinterlace.h:79
int flags
flags affecting interlacing algorithm
Definition tinterlace.h:69
int lowpass
legacy interlace filter lowpass mode
Definition tinterlace.h:70
int vsub
chroma vertical subsampling
Definition tinterlace.h:71
int mode
TInterlaceMode, interlace mode selected.
Definition tinterlace.h:67
FFDrawContext draw
Definition tinterlace.h:76
#define width
Definition dsp.h:89
void ff_tinterlace_init_x86(TInterlaceContext *interlace)
TInterlaceMode
Definition tinterlace.h:48
@ MODE_MERGEX2
Definition tinterlace.h:56
@ MODE_DROP_EVEN
Definition tinterlace.h:50
@ MODE_INTERLEAVE_BOTTOM
Definition tinterlace.h:54
@ MODE_INTERLACEX2
Definition tinterlace.h:55
@ MODE_MERGE
Definition tinterlace.h:49
@ MODE_DROP_ODD
Definition tinterlace.h:51
@ MODE_PAD
Definition tinterlace.h:52
@ MODE_INTERLEAVE_TOP
Definition tinterlace.h:53
VLPFilter
Definition tinterlace.h:42
@ VLPF_OFF
Definition tinterlace.h:43
@ VLPF_LIN
Definition tinterlace.h:44
@ VLPF_CMP
Definition tinterlace.h:45
InterlaceScanMode
Definition tinterlace.h:60
@ MODE_BFF
Definition tinterlace.h:62
@ MODE_TFF
Definition tinterlace.h:61