Commit | Line | Data |
---|---|---|
836b7df6 RK |
1 | /* |
2 | * Qcap main header file | |
3 | * | |
4 | * Copyright (C) 2005 Rolf Kalbermatter | |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2.1 of the License, or (at your option) any later version. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with this library; if not, write to the Free Software | |
360a3f91 | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
836b7df6 RK |
19 | */ |
20 | #ifndef _QCAP_MAIN_H_DEFINED | |
21 | #define _QCAP_MAIN_H_DEFINED | |
22 | ||
96192106 AS |
23 | #include "wine/strmbase.h" |
24 | ||
836b7df6 RK |
25 | extern DWORD ObjectRefCount(BOOL increment); |
26 | ||
27 | extern IUnknown * WINAPI QCAP_createAudioCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr); | |
28 | extern IUnknown * WINAPI QCAP_createAVICompressor(IUnknown *pUnkOuter, HRESULT *phr); | |
29 | extern IUnknown * WINAPI QCAP_createVFWCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr); | |
30 | extern IUnknown * WINAPI QCAP_createVFWCaptureFilterPropertyPage(IUnknown *pUnkOuter, HRESULT *phr); | |
31 | extern IUnknown * WINAPI QCAP_createAVImux(IUnknown *pUnkOuter, HRESULT *phr); | |
32 | extern IUnknown * WINAPI QCAP_createAVImuxPropertyPage(IUnknown *pUnkOuter, HRESULT *phr); | |
33 | extern IUnknown * WINAPI QCAP_createAVImuxPropertyPage1(IUnknown *pUnkOuter, HRESULT *phr); | |
34 | extern IUnknown * WINAPI QCAP_createFileWriter(IUnknown *pUnkOuter, HRESULT *phr); | |
35 | extern IUnknown * WINAPI QCAP_createCaptureGraphBuilder2(IUnknown *pUnkOuter, HRESULT *phr); | |
36 | extern IUnknown * WINAPI QCAP_createInfinitePinTeeFilter(IUnknown *pUnkOuter, HRESULT *phr); | |
37 | extern IUnknown * WINAPI QCAP_createSmartTeeFilter(IUnknown *pUnkOuter, HRESULT *phr); | |
38 | extern IUnknown * WINAPI QCAP_createAudioInputMixerPropertyPage(IUnknown *pUnkOuter, HRESULT *phr); | |
39 | ||
19312f30 RK |
40 | void dump_AM_MEDIA_TYPE(const AM_MEDIA_TYPE * pmt); |
41 | ||
a64c10fd ML |
42 | enum YUV_Format { |
43 | /* Last 2 numbers give the skip info, the smaller they are the better | |
44 | * Planar: | |
45 | * HSKIP : VSKIP */ | |
46 | YUVP_421, /* 2 : 1 */ | |
47 | YUVP_422, /* 2 : 2 */ | |
48 | YUVP_441, /* 4 : 1 */ | |
49 | YUVP_444, /* 4 : 4 */ | |
50 | ENDPLANAR, /* No format, just last planar item so we can check on it */ | |
51 | ||
52 | /* Non-planar */ | |
53 | YUYV, /* Order: YUYV (Guess why it's named like that) */ | |
54 | UYVY, /* Order: UYVY (Looks like someone got bored and swapped the Y's) */ | |
55 | UYYVYY, /* YUV411 linux style, perhaps YUV420 is YYUYYV? */ | |
56 | }; | |
57 | ||
58 | void YUV_Init(void); | |
59 | void YUV_To_RGB24(enum YUV_Format format, unsigned char *target, const unsigned char *source, int width, int height); | |
60 | ||
836b7df6 | 61 | #endif /* _QCAP_MAIN_H_DEFINED */ |