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 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 #ifndef _QCAP_MAIN_H_DEFINED 21 #define _QCAP_MAIN_H_DEFINED 22 23 #include "wine/strmbase.h" 24 25 extern DWORD ObjectRefCount(BOOL increment) DECLSPEC_HIDDEN; 26 27 extern IUnknown * WINAPI QCAP_createAudioCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 28 extern IUnknown * WINAPI QCAP_createAVICompressor(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 29 extern IUnknown * WINAPI QCAP_createVFWCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 30 extern IUnknown * WINAPI QCAP_createVFWCaptureFilterPropertyPage(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 31 extern IUnknown * WINAPI QCAP_createAVICompressor(IUnknown*,HRESULT*) DECLSPEC_HIDDEN; 32 extern IUnknown * WINAPI QCAP_createAVIMux(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 33 extern IUnknown * WINAPI QCAP_createAVIMuxPropertyPage(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 34 extern IUnknown * WINAPI QCAP_createAVIMuxPropertyPage1(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 35 extern IUnknown * WINAPI QCAP_createFileWriter(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 36 extern IUnknown * WINAPI QCAP_createCaptureGraphBuilder2(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 37 extern IUnknown * WINAPI QCAP_createInfinitePinTeeFilter(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 38 extern IUnknown * WINAPI QCAP_createSmartTeeFilter(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 39 extern IUnknown * WINAPI QCAP_createAudioInputMixerPropertyPage(IUnknown *pUnkOuter, HRESULT *phr) DECLSPEC_HIDDEN; 40 41 void dump_AM_MEDIA_TYPE(const AM_MEDIA_TYPE * pmt) DECLSPEC_HIDDEN; 42 43 enum YUV_Format { 44 /* Last 2 numbers give the skip info, the smaller they are the better 45 * Planar: 46 * HSKIP : VSKIP */ 47 YUVP_421, /* 2 : 1 */ 48 YUVP_422, /* 2 : 2 */ 49 YUVP_441, /* 4 : 1 */ 50 YUVP_444, /* 4 : 4 */ 51 ENDPLANAR, /* No format, just last planar item so we can check on it */ 52 53 /* Non-planar */ 54 YUYV, /* Order: YUYV (Guess why it's named like that) */ 55 UYVY, /* Order: UYVY (Looks like someone got bored and swapped the Y's) */ 56 UYYVYY, /* YUV411 linux style, perhaps YUV420 is YYUYYV? */ 57 }; 58 59 void YUV_Init(void) DECLSPEC_HIDDEN; 60 void YUV_To_RGB24(enum YUV_Format format, unsigned char *target, const unsigned char *source, int width, int height) DECLSPEC_HIDDEN; 61 62 #endif /* _QCAP_MAIN_H_DEFINED */ 63