3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2008 Google (Lei Zhang)
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "oaidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "ocidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* import "dxtrans.idl"; */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "amstream.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "msxml.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync local,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ISampleGrabberCB : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SampleCB(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync double SampleTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IMediaSample * pSample
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT BufferCB(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync double SampleTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE * pBuffer,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG BufferLen
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync local,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface ISampleGrabber: IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetOneShot(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BOOL OneShot
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetMediaType(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const AM_MEDIA_TYPE * pType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetConnectedMediaType(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync AM_MEDIA_TYPE * pType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetBufferSamples(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BOOL BufferThem
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetCurrentBuffer(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in,out] LONG * pBufferSize,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONG * pBuffer
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetCurrentSample(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IMediaSample ** ppSample
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SetCallback(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ISampleGrabberCB * pCallback,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG WhichMethodToCallback
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync pointer_default(unique)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IMediaDet : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_Filter(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IUnknown* *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT put_Filter(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IUnknown* newVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_OutputStreams(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONG *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_CurrentStream(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] LONG *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT put_CurrentStream(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG newVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_StreamType(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] GUID *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_StreamTypeB(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] BSTR *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_StreamLength(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] double *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_Filename(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] BSTR *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT put_Filename(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BSTR newVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetBitmapBits(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync double StreamTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG * pBufferSize,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync char * pBuffer,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG Width,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG Height
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT WriteBitmapBits(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync double StreamTime,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG Width,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG Height,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BSTR Filename
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_StreamMediaType(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] AM_MEDIA_TYPE * pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetSampleGrabber(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] ISampleGrabber ** ppVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT get_FrameRate(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] double *pVal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EnterBitmapGrabMode(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync double SeekTime
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA),
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccoclass MediaDet
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [default] interface IMediaDet;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncenum
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync E_NOTINTREE = 0x80040400,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync E_RENDER_ENGINE_IS_BROKEN = 0x80040401,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync E_MUST_INIT_RENDERER = 0x80040402,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync E_NOTDETERMINED = 0x80040403,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync E_NO_TIMELINE = 0x80040404,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync S_WARN_OUTPUTRESET = 40404
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};