FFmpeg  4.0
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_EXACT_TB 2
38 #define TINTERLACE_FLAG_CVLPF 4
39 
50 };
51 
52 typedef struct TInterlaceContext {
53  const AVClass *class;
54  int mode; ///< TInterlaceMode, interlace mode selected
56  int flags; ///< flags affecting interlacing algorithm
57  int frame; ///< number of the output frame
58  int vsub; ///< chroma vertical subsampling
61  uint8_t *black_data[4]; ///< buffer used to fill padded lines
66  void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp,
67  ptrdiff_t mref, ptrdiff_t pref, int clip_max);
69 
71 
72 #endif /* AVFILTER_TINTERLACE_H */
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:66
This structure describes decoded (raw) audio or video data.
Definition: frame.h:218
Main libavfilter public API header.
AVFrame * next
Definition: tinterlace.h:60
int mode
TInterlaceMode, interlace mode selected.
Definition: tinterlace.h:54
FFDrawContext draw
Definition: tinterlace.h:63
int flags
flags affecting interlacing algorithm
Definition: tinterlace.h:56
BYTE int const BYTE * srcp
Definition: avisynth_c.h:813
uint8_t
AVOptions.
int frame
number of the output frame
Definition: tinterlace.h:57
int black_linesize[4]
Definition: tinterlace.h:62
void ff_tinterlace_init_x86(TInterlaceContext *interlace)
int vsub
chroma vertical subsampling
Definition: tinterlace.h:58
BYTE * dstp
Definition: avisynth_c.h:813
uint16_t width
Definition: gdv.c:47
TInterlaceMode
Definition: tinterlace.h:40
misc drawing utilities
typedef void(RENAME(mix_any_func_type))
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:64
uint8_t * black_data[4]
buffer used to fill padded lines
Definition: tinterlace.h:61
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
AVFrame * cur
Definition: tinterlace.h:59
const AVPixFmtDescriptor * csp
Definition: tinterlace.h:65
AVRational preout_time_base
Definition: tinterlace.h:55