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