af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2008 Google (Lei Zhang)
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "oaidl.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "ocidl.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsync/* import "dxtrans.idl"; */
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "amstream.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "msxml.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface ISampleGrabberCB : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SampleCB(
af062818b47340eef15700d2f0211576ba3506eevboxsync double SampleTime,
af062818b47340eef15700d2f0211576ba3506eevboxsync IMediaSample * pSample
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT BufferCB(
af062818b47340eef15700d2f0211576ba3506eevboxsync double SampleTime,
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE * pBuffer,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG BufferLen
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F),
af062818b47340eef15700d2f0211576ba3506eevboxsync local,
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface ISampleGrabber: IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetOneShot(
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL OneShot
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetMediaType(
af062818b47340eef15700d2f0211576ba3506eevboxsync const AM_MEDIA_TYPE * pType
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetConnectedMediaType(
af062818b47340eef15700d2f0211576ba3506eevboxsync AM_MEDIA_TYPE * pType
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetBufferSamples(
af062818b47340eef15700d2f0211576ba3506eevboxsync BOOL BufferThem
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetCurrentBuffer(
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync [in,out] LONG * pBufferSize,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync [out] LONG * pBuffer
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetCurrentSample(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IMediaSample ** ppSample
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetCallback(
af062818b47340eef15700d2f0211576ba3506eevboxsync ISampleGrabberCB * pCallback,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG WhichMethodToCallback
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync object,
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa),
af062818b47340eef15700d2f0211576ba3506eevboxsync pointer_default(unique)
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IMediaDet : IUnknown
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_Filter(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] IUnknown* *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT put_Filter(
af062818b47340eef15700d2f0211576ba3506eevboxsync IUnknown* newVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_OutputStreams(
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync [out] LONG *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_CurrentStream(
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync [out] LONG *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT put_CurrentStream(
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG newVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_StreamType(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] GUID *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_StreamTypeB(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] BSTR *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_StreamLength(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] double *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_Filename(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] BSTR *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT put_Filename(
af062818b47340eef15700d2f0211576ba3506eevboxsync BSTR newVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetBitmapBits(
af062818b47340eef15700d2f0211576ba3506eevboxsync double StreamTime,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG * pBufferSize,
af062818b47340eef15700d2f0211576ba3506eevboxsync char * pBuffer,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG Width,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG Height
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT WriteBitmapBits(
af062818b47340eef15700d2f0211576ba3506eevboxsync double StreamTime,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG Width,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG Height,
af062818b47340eef15700d2f0211576ba3506eevboxsync BSTR Filename
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_StreamMediaType(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] AM_MEDIA_TYPE * pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetSampleGrabber(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] ISampleGrabber ** ppVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT get_FrameRate(
af062818b47340eef15700d2f0211576ba3506eevboxsync [out] double *pVal
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT EnterBitmapGrabMode(
af062818b47340eef15700d2f0211576ba3506eevboxsync double SeekTime
af062818b47340eef15700d2f0211576ba3506eevboxsync );
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync[
af062818b47340eef15700d2f0211576ba3506eevboxsync uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA),
af062818b47340eef15700d2f0211576ba3506eevboxsync]
af062818b47340eef15700d2f0211576ba3506eevboxsynccoclass MediaDet
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync [default] interface IMediaDet;
af062818b47340eef15700d2f0211576ba3506eevboxsync};