2 * This file is part of FFmpeg.
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 #ifndef AVFILTER_YADIF_H
20 #define AVFILTER_YADIF_H
22 #include "libavutil/pixdesc.h"
26 YADIF_MODE_SEND_FRAME
= 0, ///< send 1 frame for each frame
27 YADIF_MODE_SEND_FIELD
= 1, ///< send 1 frame for each field
28 YADIF_MODE_SEND_FRAME_NOSPATIAL
= 2, ///< send 1 frame for each frame but skips spatial interlacing check
29 YADIF_MODE_SEND_FIELD_NOSPATIAL
= 3, ///< send 1 frame for each field but skips spatial interlacing check
33 YADIF_PARITY_TFF
= 0, ///< top field first
34 YADIF_PARITY_BFF
= 1, ///< bottom field first
35 YADIF_PARITY_AUTO
= -1, ///< auto detection
39 YADIF_DEINT_ALL
= 0, ///< deinterlace all frames
40 YADIF_DEINT_INTERLACED
= 1, ///< only deinterlace frames marked as interlaced
43 typedef struct YADIFContext
{
47 enum YADIFParity parity
;
48 enum YADIFDeint deint
;
58 * Required alignment for filter_line
60 void (*filter_line
)(void *dst
,
61 void *prev
, void *cur
, void *next
,
62 int w
, int prefs
, int mrefs
, int parity
, int mode
);
63 void (*filter_edges
)(void *dst
, void *prev
, void *cur
, void *next
,
64 int w
, int prefs
, int mrefs
, int parity
, int mode
);
66 const AVPixFmtDescriptor
*csp
;
72 void ff_yadif_init_x86(YADIFContext
*yadif
);
74 #endif /* AVFILTER_YADIF_H */