// // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------- // // // The use and distribution terms for this software are covered by the // Microsoft Limited Public License (Ms-LPL) // http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpubliclicense.mspx // which can be found in the file MS-LPL.txt at the root of this distribution. // By using this software in any fashion, you are agreeing to be bound by // the terms of this license. // // You must not remove this notice, or any other, from this software. // // /*++ Module Name: mp2demux.idl Abstract: This module contains all the interface definitions for the MPEG-2 Demultiplexer Revision History: 02-Jul-1999 created 23-Nov-1999 removed PSI Descriptor interfaces removed statistics interface removed the PSI update DShow events 04-Apr-2000 removed BDA-specific 27-Jul-2000 lazy load interface 13-Feb-2001 stats interface --*/ import "unknwn.idl" ; import "wtypes.idl" ; interface IMpeg2TransportStatsRaw ; interface IMpeg2ProgramStatsRaw ; interface IMpeg2DemultiplexerTesting ; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // private interface - used by testing BEGIN // ---------------------------------------------------------------------------- [ object, uuid (d3d92bc3-713b-451b-9122-320095d51ea5) ] interface IMpeg2DemultiplexerTesting : IUnknown { HRESULT GetMpeg2StreamType ( [out] DWORD * pdwMpeg2StreamType ) ; } ; cpp_quote("#define DECLARE_IPMEG2DEMULTIPLEXERTESTING() \\") cpp_quote("virtual STDMETHODIMP GetMpeg2StreamType (DWORD *);") // ---------------------------------------------------------------------------- // private interface - used by testing END // ---------------------------------------------------------------------------- cpp_quote("// {D5753BBB-C5A8-4f50-9D81-210BAB0C5FB6}") cpp_quote("DEFINE_GUID(CLSID_Mpeg2Stats,") cpp_quote("0xd5753bbb, 0xc5a8, 0x4f50, 0x9d, 0x81, 0x21, 0xb, 0xab, 0xc, 0x5f, 0xb6) ;") // ---------------------------------------------------------------------------- // IMpeg2TransportStats // ---------------------------------------------------------------------------- [ object, uuid (82c6db04-f166-4c84-989f-cb61042f0b97) ] interface IMpeg2TransportStatsRaw : IUnknown { /*++ Obtain shared memory; still need the structures to which this must be cast ppbShared returned shared memory pointer; to close the shared memory, perform a final release on the memory pdwSize returned size of the shared memory --*/ HRESULT GetSharedMemory ( [out] BYTE ** ppbShared, [out] DWORD * pdwSize ) ; /*++ enables/disables stats guidStreamSubtype MEDIASUBTYPE_MPEG2_TRANSPORT or MEDIASUBTYPE_MPEG2_PROGRAM pfEnable [in] desired [out] previous setting --*/ HRESULT Enable ( [in, out] BOOL * pfEnable ) ; } ; cpp_quote("#define DECLARE_IPMEG2TRANSPORTSTATSRAW() \\") cpp_quote("virtual STDMETHODIMP GetSharedMemory (BYTE **, DWORD *);\\") cpp_quote("virtual STDMETHODIMP Enable (BOOL *);") // ---------------------------------------------------------------------------- // IMpeg2ProgramStats // ---------------------------------------------------------------------------- [ object, uuid (add6dc6c-dc37-46a9-a36a-9c51578d82ab) ] interface IMpeg2ProgramStatsRaw : IUnknown { /*++ Obtain shared memory; still need the structures to which this must be cast ppbShared returned shared memory pointer; to close the shared memory, perform a final release on the memory pdwSize returned size of the shared memory --*/ HRESULT GetSharedMemory ( [out] BYTE ** ppbShared, [out] DWORD * pdwSize ) ; /*++ enables/disables stats guidStreamSubtype MEDIASUBTYPE_MPEG2_TRANSPORT or MEDIASUBTYPE_MPEG2_PROGRAM pfEnable [in] desired [out] previous setting --*/ HRESULT Enable ( [in, out] BOOL * pfEnable ) ; } ; cpp_quote("#define DECLARE_IPMEG2PROGRAMSTATSRAW() \\") cpp_quote("virtual STDMETHODIMP GetSharedMemory (BYTE **, DWORD *);\\") cpp_quote("virtual STDMETHODIMP Enable (BOOL *);")