FFmpeg
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 
36 #define TINTERLACE_FLAG_VLPF 01
37 #define TINTERLACE_FLAG_CVLPF 2
38 #define TINTERLACE_FLAG_EXACT_TB 4
39 
50 };
51 
53  MODE_TFF = 0,
55 };
56 
57 typedef struct TInterlaceContext {
58  const AVClass *class;
59  int mode; ///< TInterlaceMode, interlace mode selected
61  int flags; ///< flags affecting interlacing algorithm
62  int frame; ///< number of the output frame
63  int vsub; ///< chroma vertical subsampling
66  uint8_t *black_data[4]; ///< buffer used to fill padded lines
71  void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp,
72  ptrdiff_t mref, ptrdiff_t pref, int clip_max);
74 
76 
77 #endif /* AVFILTER_TINTERLACE_H */
MODE_MERGE
@ MODE_MERGE
Definition: tinterlace.h:41
FFDrawColor
Definition: drawutils.h:62
opt.h
TInterlaceContext::lowpass_line
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:71
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:295
pixdesc.h
TInterlaceContext
Definition: tinterlace.h:57
TInterlaceContext::color
FFDrawColor color
Definition: tinterlace.h:69
TInterlaceContext::black_linesize
int black_linesize[4]
Definition: tinterlace.h:67
TInterlaceContext::black_data
uint8_t * black_data[4]
buffer used to fill padded lines
Definition: tinterlace.h:66
srcp
BYTE int const BYTE * srcp
Definition: avisynth_c.h:908
MODE_INTERLEAVE_TOP
@ MODE_INTERLEAVE_TOP
Definition: tinterlace.h:45
TInterlaceContext::vsub
int vsub
chroma vertical subsampling
Definition: tinterlace.h:63
TInterlaceContext::frame
int frame
number of the output frame
Definition: tinterlace.h:62
dstp
BYTE * dstp
Definition: avisynth_c.h:908
TInterlaceContext::preout_time_base
AVRational preout_time_base
Definition: tinterlace.h:60
InterlaceScanMode
InterlaceScanMode
Definition: tinterlace.h:52
MODE_MERGEX2
@ MODE_MERGEX2
Definition: tinterlace.h:48
MODE_NB
@ MODE_NB
Definition: tinterlace.h:49
TInterlaceContext::flags
int flags
flags affecting interlacing algorithm
Definition: tinterlace.h:61
TInterlaceContext::csp
const AVPixFmtDescriptor * csp
Definition: tinterlace.h:70
width
#define width
TInterlaceContext::cur
AVFrame * cur
Definition: tinterlace.h:64
TInterlaceContext::next
AVFrame * next
Definition: tinterlace.h:65
ff_tinterlace_init_x86
void ff_tinterlace_init_x86(TInterlaceContext *interlace)
Definition: vf_tinterlace_init.c:58
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:67
AVRational
Rational number (pair of numerator and denominator).
Definition: rational.h:58
TInterlaceContext::mode
int mode
TInterlaceMode, interlace mode selected.
Definition: tinterlace.h:59
MODE_DROP_EVEN
@ MODE_DROP_EVEN
Definition: tinterlace.h:42
TInterlaceMode
TInterlaceMode
Definition: tinterlace.h:40
MODE_INTERLEAVE_BOTTOM
@ MODE_INTERLEAVE_BOTTOM
Definition: tinterlace.h:46
MODE_BFF
@ MODE_BFF
Definition: tinterlace.h:54
uint8_t
uint8_t
Definition: audio_convert.c:194
FFDrawContext
Definition: drawutils.h:48
bswap.h
MODE_PAD
@ MODE_PAD
Definition: tinterlace.h:44
avfilter.h
TInterlaceContext::draw
FFDrawContext draw
Definition: tinterlace.h:68
MODE_INTERLACEX2
@ MODE_INTERLACEX2
Definition: tinterlace.h:47
AVPixFmtDescriptor
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition: pixdesc.h:81
MODE_TFF
@ MODE_TFF
Definition: tinterlace.h:53
drawutils.h
MODE_DROP_ODD
@ MODE_DROP_ODD
Definition: tinterlace.h:43