ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

parser.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.