Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenparser.h
Go to the documentation of this file.
00001 /* 00002 * Parser declarations 00003 * 00004 * Copyright 2005 Christian Costa 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 */ 00020 00021 typedef struct ParserImpl ParserImpl; 00022 00023 typedef HRESULT (*PFN_PROCESS_SAMPLE) (LPVOID iface, IMediaSample * pSample, DWORD_PTR cookie); 00024 typedef HRESULT (*PFN_QUERY_ACCEPT) (LPVOID iface, const AM_MEDIA_TYPE * pmt); 00025 typedef HRESULT (*PFN_PRE_CONNECT) (IPin * iface, IPin * pConnectPin, ALLOCATOR_PROPERTIES *prop); 00026 typedef HRESULT (*PFN_CLEANUP) (LPVOID iface); 00027 typedef HRESULT (*PFN_DISCONNECT) (LPVOID iface); 00028 00029 struct ParserImpl 00030 { 00031 const IBaseFilterVtbl *lpVtbl; 00032 00033 LONG refCount; 00034 CRITICAL_SECTION csFilter; 00035 FILTER_STATE state; 00036 REFERENCE_TIME rtStreamStart; 00037 IReferenceClock * pClock; 00038 PFN_CLEANUP fnCleanup; 00039 PFN_DISCONNECT fnDisconnect; 00040 FILTER_INFO filterInfo; 00041 CLSID clsid; 00042 00043 PullPin * pInputPin; 00044 IPin ** ppPins; 00045 ULONG cStreams; 00046 DWORD lastpinchange; 00047 MediaSeekingImpl mediaSeeking; 00048 }; 00049 00050 typedef struct Parser_OutputPin 00051 { 00052 OutputPin pin; 00053 00054 AM_MEDIA_TYPE * pmt; 00055 LONGLONG dwSamplesProcessed; 00056 } Parser_OutputPin; 00057 00058 extern HRESULT Parser_AddPin(ParserImpl * This, const PIN_INFO * piOutput, ALLOCATOR_PROPERTIES * props, const AM_MEDIA_TYPE * amt); 00059 00060 extern HRESULT Parser_Create(ParserImpl*, const IBaseFilterVtbl *, const CLSID*, PFN_PROCESS_SAMPLE, PFN_QUERY_ACCEPT, PFN_PRE_CONNECT, 00061 PFN_CLEANUP, PFN_DISCONNECT, REQUESTPROC, STOPPROCESSPROC, CHANGEPROC stop, CHANGEPROC current, CHANGEPROC rate); 00062 00063 /* Override the _Release function and call this when releasing */ 00064 extern void Parser_Destroy(ParserImpl *This); 00065 00066 extern HRESULT WINAPI Parser_QueryInterface(IBaseFilter * iface, REFIID riid, LPVOID * ppv); 00067 extern ULONG WINAPI Parser_AddRef(IBaseFilter * iface); 00068 extern ULONG WINAPI Parser_Release(IBaseFilter * iface); 00069 extern HRESULT WINAPI Parser_GetClassID(IBaseFilter * iface, CLSID * pClsid); 00070 extern HRESULT WINAPI Parser_Stop(IBaseFilter * iface); 00071 extern HRESULT WINAPI Parser_Pause(IBaseFilter * iface); 00072 extern HRESULT WINAPI Parser_Run(IBaseFilter * iface, REFERENCE_TIME tStart); 00073 extern HRESULT WINAPI Parser_GetState(IBaseFilter * iface, DWORD dwMilliSecsTimeout, FILTER_STATE *pState); 00074 extern HRESULT WINAPI Parser_SetSyncSource(IBaseFilter * iface, IReferenceClock *pClock); 00075 extern HRESULT WINAPI Parser_GetSyncSource(IBaseFilter * iface, IReferenceClock **ppClock); 00076 extern HRESULT WINAPI Parser_EnumPins(IBaseFilter * iface, IEnumPins **ppEnum); 00077 extern HRESULT WINAPI Parser_FindPin(IBaseFilter * iface, LPCWSTR Id, IPin **ppPin); 00078 extern HRESULT WINAPI Parser_QueryFilterInfo(IBaseFilter * iface, FILTER_INFO *pInfo); 00079 extern HRESULT WINAPI Parser_JoinFilterGraph(IBaseFilter * iface, IFilterGraph *pGraph, LPCWSTR pName); 00080 extern HRESULT WINAPI Parser_QueryVendorInfo(IBaseFilter * iface, LPWSTR *pVendorInfo); Generated on Thu May 24 2012 04:22:12 for ReactOS by
1.7.6.1
|