/*
* Copyright (C) 2002 Robert Shearman
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
cpp_quote("#define CHARS_IN_GUID 39")
/* GetTimeFormat is defined in winnls.h as
* either the W or A suffixed version */
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
cpp_quote("#undef GetTimeFormat")
cpp_quote("#endif")
{
typedef enum _PinDirection
{
cpp_quote("#define MAX_PIN_NAME 128")
cpp_quote("#define MAX_FILTER_NAME 128")
cpp_quote("#ifndef REFERENCE_TIME_DEFINED")
cpp_quote("#define REFERENCE_TIME_DEFINED")
cpp_quote("#endif")
cpp_quote("#ifndef REFTIME_DEFINED")
cpp_quote("#define REFTIME_DEFINED")
cpp_quote("#endif")
{
long cBuffers;
long cbBuffer;
long cbAlign;
long cbPrefix;
interface IAMovieSetup;
interface IEnumFilters;
interface IEnumMediaTypes;
interface IEnumPins;
interface IBaseFilter;
interface IFilterGraph;
interface IMediaFilter;
interface IMediaSample;
interface IMemAllocator;
interface IMemAllocatorCallbackTemp;
interface IMemAllocatorNotifyCallbackTemp;
interface IMemInputPin;
interface IPin;
interface IReferenceClock;
[
]
{
{
} PIN_INFO;
HRESULT Disconnect(void);
HRESULT EndOfStream(void);
HRESULT BeginFlush(void);
}
[
]
{
}
[
]
interface IEnumMediaTypes : IUnknown
{
);
);
}
[
]
interface IFilterGraph : IUnknown
{
HRESULT SetDefaultSyncSource(void);
}
[
]
interface IEnumFilters : IUnknown
{
}
[
]
interface IMediaFilter : IPersist
{
typedef enum _FilterState
{
} FILTER_STATE;
}
[
]
interface IBaseFilter : IMediaFilter
{
{
} FILTER_INFO;
}
[
]
interface IReferenceClock : IUnknown
{
}
/*
[
object,
uuid(36b73885-c2c8-11cf-8b46-00805f6cef60),
pointer_default(unique)
]
interface IReferenceClock2 : IReferenceClock
{
}
typedef IReferenceClock2 *PREFERENCECLOCK2;
*/
[
]
interface IMediaSample : IUnknown
{
long GetSize(void);
HRESULT IsSyncPoint(void);
LONG GetActualDataLength(void);
HRESULT IsDiscontinuity(void);
}
{
AM_SAMPLE_SPLICEPOINT = 0x01,
AM_SAMPLE_PREROLL = 0x02,
AM_SAMPLE_DATADISCONTINUITY = 0x04,
AM_SAMPLE_TYPECHANGED = 0x08,
AM_SAMPLE_TIMEVALID = 0x10,
AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
AM_SAMPLE_STOPVALID = 0x100,
AM_SAMPLE_ENDOFSTREAM = 0x200,
AM_STREAM_MEDIA = 0,
};
{
[
]
interface IMediaSample2 : IMediaSample
{
);
);
}
cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
cpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
cpp_quote("#define AM_GBF_NOWAIT 4")
cpp_quote("#define AM_GBF_NODDSURFACELOCK 8")
[
]
interface IMemAllocator : IUnknown
{
}
[
]
interface IMemAllocatorCallbackTemp : IMemAllocator
{
}
[
]
interface IMemAllocatorNotifyCallbackTemp : IUnknown
{
}
[
]
interface IMemInputPin : IUnknown
{
[out] long *nSamplesProcessed);
}
[
]
interface IAMovieSetup : IUnknown
{
HRESULT Unregister( );
}
{
AM_SEEKING_NoPositioning = 0x00,
AM_SEEKING_AbsolutePositioning = 0x01,
AM_SEEKING_RelativePositioning = 0x02,
AM_SEEKING_PositioningBitsMask = 0x03,
AM_SEEKING_SeekToKeyFrame = 0x04,
AM_SEEKING_ReturnTime = 0x08,
AM_SEEKING_Segment = 0x10,
AM_SEEKING_NoFlush = 0x20
{
AM_SEEKING_CanSeekAbsolute = 0x001,
AM_SEEKING_CanSeekForwards = 0x002,
AM_SEEKING_CanSeekBackwards = 0x004,
AM_SEEKING_CanGetCurrentPos = 0x008,
AM_SEEKING_CanGetStopPos = 0x010,
AM_SEEKING_CanGetDuration = 0x020,
AM_SEEKING_CanPlayBackwards = 0x040,
AM_SEEKING_CanDoSegments = 0x080,
AM_SEEKING_Source = 0x100
[
]
interface IMediaSeeking : IUnknown
{
}
{
AM_MEDIAEVENT_NONOTIFY = 0x01
};