2
/***************************************************************************
6
copyright : (C) 2004 by Dirk Ziegelmeier
8
***************************************************************************/
11
* This library is free software; you can redistribute it and/or
12
* modify it under the terms of the GNU Library General Public
13
* License as published by the Free Software Foundation; either
14
* version 2 of the License, or (at your option) any later version.
16
* This library is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
* Library General Public License for more details.
21
* You should have received a copy of the GNU Library General Public License
22
* along with this library; see the file COPYING.LIB. If not, write to
23
* the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
24
* Boston, MA 02110-1301, USA.
27
#ifndef KDETVDSCALERFILTER_H
28
#define KDETVDSCALERFILTER_H
30
#include "kdetvimagefilter.h"
33
* kdetv to DScaler deinterlacer/filter API wrapper.
34
* Look at DScaler to understand this: www.dscaler.org
35
* Only relevant parts of DScaler API for plugins ported
36
* to kdetv are implemented.
37
* Source level compatibility. I don't want WINE in here.
40
class KdetvDScalerFilter : public KdetvImageFilter
43
KdetvDScalerFilter(const QString& name);
44
virtual ~KdetvDScalerFilter();
46
KdetvImage::ImageFormat inputFormats();
48
virtual KdetvImageFilterContext* operator<< (KdetvImageFilterContext* ctx);
52
// How much frames for dscaler at max
53
static const unsigned int dscalerHistory = 10;
55
// PictureFlags is a bitmask!
57
PICTURE_PROGRESSIVE = 0,
58
PICTURE_INTERLACED_ODD = 1,
59
PICTURE_INTERLACED_EVEN = 2
67
typedef void* (MEMCPY_FUNC)(void* pOutput, const void* pInput, size_t nSize);
70
TPicture** PictureHistory;
71
unsigned char *Overlay;
72
unsigned int OverlayPitch;
73
unsigned int LineLength;
81
virtual void filterDScaler_MMX(TDeinterlaceInfo* pInfo) = 0;
83
// A filter can reimplement these if it has optimized versions
84
virtual void filterDScaler_3DNOW(TDeinterlaceInfo* pInfo);
85
virtual void filterDScaler_SSE(TDeinterlaceInfo* pInfo);
86
virtual void filterDScaler_SSE2(TDeinterlaceInfo* pInfo);
89
#endif // KDETVDSCALERFILTER_H