diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-11-15 03:09:28 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-11-15 03:22:35 +0100 |
commit | 9d548fce24057649f0463e1243417d8f80f1d1db (patch) | |
tree | 7ec72cb2ff9f3b7702c0b95aa3f97c23fc0dfe36 /libavfilter/tinterlace.h | |
parent | f043965cd5145d8540d55c013b0d809b6a874c53 (diff) | |
download | ffmpeg-9d548fce24057649f0463e1243417d8f80f1d1db.tar.gz |
avfilter/tinterlace: split context definition into seperate header so it can be used by future optimizations
Idea from 2e1704059ae8625beda2ffde847ad22c5ba416dc from Kieran Kunhya
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/tinterlace.h')
-rw-r--r-- | libavfilter/tinterlace.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libavfilter/tinterlace.h b/libavfilter/tinterlace.h new file mode 100644 index 0000000000..8fc95cbc92 --- /dev/null +++ b/libavfilter/tinterlace.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2011 Stefano Sabatini + * Copyright (c) 2010 Baptiste Coudurier + * Copyright (c) 2003 Michael Zucchi <notzed@ximian.com> + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +/** + * @file + * temporal field interlace filter, ported from MPlayer/libmpcodecs + */ +#ifndef AVFILTER_TINTERLACE_H +#define AVFILTER_TINTERLACE_H + +#include "libavutil/opt.h" +#include "avfilter.h" + +enum TInterlaceMode { + MODE_MERGE = 0, + MODE_DROP_EVEN, + MODE_DROP_ODD, + MODE_PAD, + MODE_INTERLEAVE_TOP, + MODE_INTERLEAVE_BOTTOM, + MODE_INTERLACEX2, + MODE_NB, +}; + +typedef struct { + const AVClass *class; + enum TInterlaceMode mode; ///< interlace mode selected + int flags; ///< flags affecting interlacing algorithm + int frame; ///< number of the output frame + int vsub; ///< chroma vertical subsampling + AVFrame *cur; + AVFrame *next; + uint8_t *black_data[4]; ///< buffer used to fill padded lines + int black_linesize[4]; +} TInterlaceContext; + +#endif /* AVFILTER_TINTERLACE_H */ |