3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2002 Robert Shearman
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CHARS_IN_GUID 39
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define CHARS_IN_GUID 39")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* GetTimeFormat is defined in winnls.h as
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * either the W or A suffixed version */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#undef GetTimeFormat")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _AMMediaType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync GUID majortype;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync GUID subtype;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BOOL bFixedSizeSamples;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BOOL bTemporalCompression;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG lSampleSize;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync GUID formattype;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IUnknown * pUnk;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG cbFormat;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [size_is(cbFormat)] BYTE * pbFormat;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} AM_MEDIA_TYPE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum _PinDirection
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PINDIR_INPUT,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PINDIR_OUTPUT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} PIN_DIRECTION;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAX_PIN_NAME 128
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAX_FILTER_NAME 128
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define MAX_PIN_NAME 128")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define MAX_FILTER_NAME 128")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifndef REFERENCE_TIME_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define REFERENCE_TIME_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef LONGLONG REFERENCE_TIME;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#ifndef REFTIME_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define REFTIME_DEFINED")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef DOUBLE REFTIME;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#endif")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef DWORD_PTR HSEMAPHORE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef DWORD_PTR HEVENT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _AllocatorProperties
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync long cBuffers;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync long cbBuffer;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync long cbAlign;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync long cbPrefix;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ALLOCATOR_PROPERTIES;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IAMovieSetup;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumFilters;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumMediaTypes;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumPins;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IBaseFilter;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IFilterGraph;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaFilter;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaSample;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocator;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocatorCallbackTemp;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocatorNotifyCallbackTemp;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemInputPin;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IPin;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IReferenceClock;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86891-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IPin : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct _PinInfo
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IBaseFilter *pFilter;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PIN_DIRECTION dir;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WCHAR achName[MAX_PIN_NAME];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } PIN_INFO;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Connect(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * pReceivePin,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const AM_MEDIA_TYPE * pmt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReceiveConnection(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * pConnector,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const AM_MEDIA_TYPE *pmt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Disconnect(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ConnectedTo(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IPin **pPin);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ConnectionMediaType(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] AM_MEDIA_TYPE *pmt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryPinInfo(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] PIN_INFO * pInfo);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryDirection(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] PIN_DIRECTION *pPinDir);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryId(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LPWSTR * Id);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryAccept(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const AM_MEDIA_TYPE *pmt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EnumMediaTypes(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumMediaTypes **ppEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryInternalConnections(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IPin* *apPin,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, out] ULONG *nPin);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EndOfStream(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT BeginFlush(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EndFlush(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT NewSegment(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME tStart,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME tStop,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] double dRate);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IPin *PPIN;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86892-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumPins : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Next(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cPins,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(cPins)] IPin ** ppPins,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG * pcFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Skip(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cPins);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reset(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Clone(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumPins **ppEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IEnumPins *PENUMPINS;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(89c31040-846b-11ce-97d3-00aa0055595a),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumMediaTypes : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Next(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cMediaTypes,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(cMediaTypes)]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_MEDIA_TYPE ** ppMediaTypes,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG * pcFetched
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Skip(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cMediaTypes);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reset(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Clone(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumMediaTypes **ppEnum
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IEnumMediaTypes *PENUMMEDIATYPES;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a8689f-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IFilterGraph : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AddFilter(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IBaseFilter * pFilter,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, string] LPCWSTR pName);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RemoveFilter(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IBaseFilter * pFilter);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EnumFilters(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumFilters **ppEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT FindFilterByName(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, string] LPCWSTR pName,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IBaseFilter ** ppFilter);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ConnectDirect(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * ppinOut,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * ppinIn,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, unique] const AM_MEDIA_TYPE* pmt);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reconnect(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * ppin);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Disconnect(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IPin * ppin);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetDefaultSyncSource(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IFilterGraph *PFILTERGRAPH;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86893-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumFilters : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Next(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cFilters,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IBaseFilter ** ppFilter,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ULONG * pcFetched);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Skip(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG cFilters);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Reset(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Clone(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumFilters **ppEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IEnumFilters *PENUMFILTERS;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86899-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaFilter : IPersist
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef enum _FilterState
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync State_Stopped,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync State_Paused,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync State_Running
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } FILTER_STATE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Stop(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Pause(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Run(REFERENCE_TIME tStart);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetState(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD dwMilliSecsTimeout,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] FILTER_STATE *State);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetSyncSource(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IReferenceClock * pClock);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetSyncSource(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IReferenceClock ** pClock);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMediaFilter *PMEDIAFILTER;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86895-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IBaseFilter : IMediaFilter
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync typedef struct _FilterInfo
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WCHAR achName[MAX_FILTER_NAME];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IFilterGraph * pGraph;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } FILTER_INFO;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EnumPins(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IEnumPins ** ppEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT FindPin(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, string] LPCWSTR Id,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IPin ** ppPin);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryFilterInfo(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] FILTER_INFO * pInfo);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT JoinFilterGraph(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IFilterGraph * pGraph,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, string] LPCWSTR pName);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryVendorInfo(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, string] LPWSTR* pVendorInfo);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IBaseFilter *PFILTER;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a86897-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IReferenceClock : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] REFERENCE_TIME *pTime);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AdviseTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME baseTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME streamTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HEVENT hEvent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] DWORD_PTR * pdwAdviseCookie);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AdvisePeriodic(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME startTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME periodTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HSEMAPHORE hSemaphore,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] DWORD_PTR * pdwAdviseCookie);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Unadvise(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD_PTR dwAdviseCookie);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IReferenceClock *PREFERENCECLOCK;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(36b73885-c2c8-11cf-8b46-00805f6cef60),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IReferenceClock2 : IReferenceClock
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IReferenceClock2 *PREFERENCECLOCK2;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync*/
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynclocal,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a8689a-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaSample : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetPointer([out] BYTE ** ppBuffer);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync long GetSize(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] REFERENCE_TIME * pTimeStart,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] REFERENCE_TIME * pTimeEnd);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME * pTimeStart,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME * pTimeEnd);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT IsSyncPoint(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetSyncPoint(BOOL bIsSyncPoint);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT IsPreroll(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetPreroll(BOOL bIsPreroll);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG GetActualDataLength(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetActualDataLength(LONG length);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT IsDiscontinuity(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetDiscontinuity(BOOL bDiscontinuity);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetMediaTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pTimeStart,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pTimeEnd);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetMediaTime(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONGLONG * pTimeStart,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONGLONG * pTimeEnd);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMediaSample *PMEDIASAMPLE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncenum tagAM_SAMPLE_PROPERTY_FLAGS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_SPLICEPOINT = 0x01,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_PREROLL = 0x02,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_DATADISCONTINUITY = 0x04,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_TYPECHANGED = 0x08,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_TIMEVALID = 0x10,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_STOPVALID = 0x100,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SAMPLE_ENDOFSTREAM = 0x200,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_STREAM_MEDIA = 0,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_STREAM_CONTROL = 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagAM_SAMPLE2_PROPERTIES
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD cbData;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwTypeSpecificFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwSampleFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG lActual;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync REFERENCE_TIME tStart;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync REFERENCE_TIME tStop;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwStreamId;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_MEDIA_TYPE *pMediaType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE *pbBuffer;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG cbBuffer;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} AM_SAMPLE2_PROPERTIES;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync local,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(36b73884-c2c8-11cf-8b46-00805f6cef60),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaSample2 : IMediaSample
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetProperties(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD cbProperties,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out, size_is(cbProperties)] BYTE * pbProperties
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetProperties(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD cbProperties,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(cbProperties)] const BYTE * pbProperties
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMediaSample2 *PMEDIASAMPLE2;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define AM_GBF_PREVFRAMESKIPPED 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define AM_GBF_NOTASYNCPOINT 2
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define AM_GBF_NOWAIT 4")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("#define AM_GBF_NODDSURFACELOCK 8")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a8689c-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocator : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetProperties(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ALLOCATOR_PROPERTIES* pRequest,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ALLOCATOR_PROPERTIES* pActual);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetProperties(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ALLOCATOR_PROPERTIES* pProps);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Commit(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Decommit(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetBuffer(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IMediaSample **ppBuffer,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME * pStartTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] REFERENCE_TIME * pEndTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD dwFlags);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReleaseBuffer(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IMediaSample *pBuffer);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMemAllocator *PMEMALLOCATOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(379a0cf0-c1de-11d2-abf5-00a0c905f375),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocatorCallbackTemp : IMemAllocator
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetNotify(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IMemAllocatorNotifyCallbackTemp *pNotify);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetFreeCount(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONG *plBuffersFree);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(92980b30-c1de-11d2-abf5-00a0c905f375),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemAllocatorNotifyCallbackTemp : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT NotifyRelease();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(56a8689d-0ad4-11ce-b03a-0020af0ba770),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMemInputPin : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAllocator(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IMemAllocator ** ppAllocator);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT NotifyAllocator(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IMemAllocator * pAllocator,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BOOL bReadOnly);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAllocatorRequirements( [out] ALLOCATOR_PROPERTIES*pProps );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Receive(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IMediaSample * pSample);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReceiveMultiple(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, size_is(nSamples)] IMediaSample **pSamples,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] long nSamples,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] long *nSamplesProcessed);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ReceiveCanBlock();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMemInputPin *PMEMINPUTPIN;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(a3d8cec0-7e5a-11cf-bbc5-00805f6cef20),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IAMovieSetup : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Register( );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT Unregister( );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IAMovieSetup *PAMOVIESETUP;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum AM_SEEKING_SeekingFlags
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_NoPositioning = 0x00,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_AbsolutePositioning = 0x01,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_RelativePositioning = 0x02,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_IncrementalPositioning = 0x03,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_PositioningBitsMask = 0x03,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_SeekToKeyFrame = 0x04,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_ReturnTime = 0x08,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_Segment = 0x10,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_NoFlush = 0x20
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} AM_SEEKING_SEEKING_FLAGS;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum AM_SEEKING_SeekingCapabilities
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanSeekAbsolute = 0x001,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanSeekForwards = 0x002,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanSeekBackwards = 0x004,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanGetCurrentPos = 0x008,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanGetStopPos = 0x010,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanGetDuration = 0x020,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanPlayBackwards = 0x040,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_CanDoSegments = 0x080,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_SEEKING_Source = 0x100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} AM_SEEKING_SEEKING_CAPABILITIES;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncobject,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncuuid(36b73880-c2c8-11cf-8b46-00805f6cef60),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncpointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaSeeking : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetCapabilities( [out] DWORD * pCapabilities );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CheckCapabilities( [in,out] DWORD * pCapabilities );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT IsFormatSupported([in] const GUID * pFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT QueryPreferredFormat([out] GUID * pFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetTimeFormat([out] GUID *pFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT IsUsingTimeFormat([in] const GUID * pFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetTimeFormat([in] const GUID * pFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetDuration([out] LONGLONG *pDuration);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetStopPosition([out] LONGLONG *pStop);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetCurrentPosition([out] LONGLONG *pCurrent);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ConvertTimeFormat([out] LONGLONG * pTarget, [in] const GUID * pTargetFormat,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONGLONG Source, [in] const GUID * pSourceFormat );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetPositions(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in,out] LONGLONG * pCurrent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD dwCurrentFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in,out] LONGLONG * pStop,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD dwStopFlags);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetPositions(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pCurrent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pStop);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetAvailable(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pEarliest,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONGLONG * pLatest);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetRate([in] double dRate);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetRate([out] double * pdRate);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetPreroll([out] LONGLONG * pllPreroll);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef IMediaSeeking *PMEDIASEEKING;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncenum tagAM_MEDIAEVENT_FLAGS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_MEDIAEVENT_NONOTIFY = 0x01
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};