/*
* 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.
*/
interface IAMAnalogVideoDecoder;
interface IAMAnalogVideoEncoder;
interface IAMAudioInputMixer;
interface IAMAudioRendererStats;
interface IAMBufferNegotiation;
interface IAMCameraControl;
interface IAMCopyCaptureFileProgress;
interface IAMCrossbar;
interface IAMDevMemoryAllocator;
interface IAMDevMemoryControl;
interface IAMDroppedFrames;
interface IAMExtDevice;
interface IAMExtTransport;
interface IAMGraphStreams;
interface IAMLatency;
interface IAMOpenProgress;
interface IAMOverlayFX;
interface IAMPhysicalPinInfo;
interface IAMPushSource;
interface IAMStreamConfig;
interface IAMTimecodeDisplay;
interface IAMTimecodeGenerator;
interface IAMTimecodeReader;
interface IAMTVTuner;
interface IAMVfwCaptureDialogs;
interface IAMVfwCompressDialogs;
interface IAMVideoCompression;
interface IAMVideoDecimationProperties;
interface IAMVideoProcAmp;
interface ICaptureGraphBuilder;
interface ICaptureGraphBuilder2;
interface IConfigAviMux;
interface IConfigInterleaving;
interface IDecimateVideoImage;
interface IDrawVideoImage;
interface IEnumRegFilters;
interface IEnumStreamIdMap;
interface IFileSourceFilter;
interface IFileSinkFilter;
interface IFileSinkFilter2;
interface IFilterMapper;
interface IFilterMapper2;
interface IGraphBuilder;
interface IKsPropertySet;
interface IMediaEventSink;
interface IMpeg2Demultiplexer;
interface IMPEG2StreamIdMap;
interface IOverlay;
interface IOverlayNotify;
interface IOverlayNotify2;
interface IQualityControl;
interface ISeekingPassThru;
{
} REGFILTER;
[
]
interface IEnumRegFilters : IUnknown
{
);
);
);
}
[
]
interface IFilterMapper : IUnknown
{
enum { MERIT_PREFERRED = 0x800000,
MERIT_NORMAL = 0x600000,
MERIT_UNLIKELY = 0x400000,
MERIT_DO_NOT_USE = 0x200000,
MERIT_SW_COMPRESSOR = 0x100000,
MERIT_HW_COMPRESSOR = 0x100050
};
);
);
);
);
);
);
);
);
}
{
const CLSID * clsMajorType;
const CLSID * clsMinorType;
} REGPINTYPES;
{
const CLSID * clsConnectsToFilter;
const WCHAR * strConnectsToPin;
const REGPINTYPES * lpMediaType;
{
} REGPINMEDIUM;
enum
{
REG_PINFLAG_B_ZERO = 0x1,
REG_PINFLAG_B_RENDERER = 0x2,
REG_PINFLAG_B_MANY = 0x4,
REG_PINFLAG_B_OUTPUT = 0x8
};
{
const CLSID *clsPinCategory;
{
{
[case(1)]
{
[case(2)]
{
[default]
;
} REGFILTER2;
[
]
interface IFilterMapper2 : IUnknown
{
);
);
);
);
}
[
]
interface IFilterMapper3 : IFilterMapper2
{
}
{
{
} Quality;
[
]
interface IQualityControl : IUnknown
{
);
);
}
enum
{
CK_NOCOLORKEY = 0x0,
CK_INDEX = 0x1,
CK_RGB = 0x2
};
{
} COLORKEY;
enum
{
ADVISE_NONE = 0x0,
ADVISE_CLIPPING = 0x1,
ADVISE_PALETTE = 0x2,
ADVISE_COLORKEY = 0x4,
ADVISE_POSITION = 0x8,
ADVISE_DISPLAY_CHANGE = 0x10
};
cpp_quote("#ifndef _WINGDI_")
/* already defined in wingdi.h, but needed for WIDL */
{
{
char Buffer[1];
} RGNDATA;
cpp_quote("#endif /* _WINGDI_ */")
[
]
interface IOverlayNotify : IUnknown
{
}
cpp_quote("#if 0")
cpp_quote("#endif /* 0 */")
[
]
interface IOverlayNotify2 : IOverlayNotify
{
}
[
]
{
}
[
]
interface IMediaEventSink : IUnknown
{
);
}
[
]
interface IFileSourceFilter : IUnknown
{
);
);
}
[
]
interface IFileSinkFilter : IUnknown
{
);
);
}
[
]
interface IFileSinkFilter2 : IFileSinkFilter
{
);
);
}
typedef enum
{
AM_FILE_OVERWRITE = 0x00000001,
[
]
interface IGraphBuilder : IFilterGraph
{
);
);
);
);
);
}
[
]
interface ICaptureGraphBuilder : IUnknown {
[in] int fAllowEscAbort,
}
[
]
interface IAMCopyCaptureFileProgress : IUnknown
{
}
[
]
interface ICaptureGraphBuilder2 : IUnknown
{
[in] int fAllowEscAbort,
}
enum _AM_RENSDEREXFLAGS
{
};
[
]
interface IFilterGraph2: IGraphBuilder
{
);
);
);
}
[
]
interface IStreamBuilder : IUnknown
{
);
);
}
/*****************************************************************************
* IAMStreamConfig interface
*/
[
]
interface IAMStreamConfig : IUnknown
{
}
{
{
VideoProcAmp_Flags_Auto = 0x0001,
VideoProcAmp_Flags_Manual = 0x0002,
/*****************************************************************************
* IAMVideoProcAmp interface
*/
[
]
interface IAMVideoProcAmp : IUnknown
{
}
[
]
interface IAsyncReader : IUnknown
{
HRESULT BeginFlush(void);
}
[
]
interface IGraphVersion : IUnknown
{
}
[
]
interface IResourceConsumer : IUnknown
{
}
[
]
interface IResourceManager : IUnknown
{
);
);
);
}
cpp_quote("#ifndef _IKsPropertySet_")
cpp_quote("#define _IKsPropertySet_")
cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
[
]
interface IKsPropertySet : IUnknown
{
}
cpp_quote("#endif /* _IKsPropertySet_ */")
[
]
interface ISeekingPassThru : IUnknown
{
}
{
};
[
]
interface IAMFilterMiscFlags : IUnknown
{
};