FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 */
This structure describes decoded (raw) audio or video data.
Definition: frame.h:226
Main libavfilter public API header.
AVFrame * next
Definition: tinterlace.h:65
int mode
TInterlaceMode, interlace mode selected.
Definition: tinterlace.h:59
FFDrawContext draw
Definition: tinterlace.h:68
int flags
flags affecting interlacing algorithm
Definition: tinterlace.h:61
BYTE int const BYTE * srcp
Definition: avisynth_c.h:813
uint8_t
AVOptions.
int frame
number of the output frame
Definition: tinterlace.h:62
int black_linesize[4]
Definition: tinterlace.h:67
void ff_tinterlace_init_x86(TInterlaceContext *interlace)
int vsub
chroma vertical subsampling
Definition: tinterlace.h:63
BYTE * dstp
Definition: avisynth_c.h:813
InterlaceScanMode
Definition: tinterlace.h:52
TInterlaceMode
Definition: tinterlace.h:40
#define width
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
misc drawing utilities
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition: pixdesc.h:81
FFDrawColor color
Definition: tinterlace.h:69
uint8_t * black_data[4]
buffer used to fill padded lines
Definition: tinterlace.h:66
Describe the class of an AVClass context structure.
Definition: log.h:67
Rational number (pair of numerator and denominator).
Definition: rational.h:58
byte swapping routines
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 * cur
Definition: tinterlace.h:64
const AVPixFmtDescriptor * csp
Definition: tinterlace.h:70
AVRational preout_time_base
Definition: tinterlace.h:60