287 lines
7.7 KiB
C
287 lines
7.7 KiB
C
|
/*++
|
||
|
|
||
|
Copyright ) ( c) 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
cctostrm.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
defines interfaces between the stream object and the cc module
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Mu Han (muhan) 10-JUNE-1999
|
||
|
|
||
|
--*/
|
||
|
#ifndef __CCTOSTRM_H_
|
||
|
#define __CCTOSTRM_H_
|
||
|
|
||
|
typedef struct tag_H323MSPEndpointVersion
|
||
|
{
|
||
|
BYTE bH221CountryCode;
|
||
|
BYTE bH221CountryExtension;
|
||
|
WORD wH221MfrCode;
|
||
|
BSTR *pProductIdentifier;
|
||
|
BSTR *pVersionIdentifier;
|
||
|
} H323MSPEndpointVersion;
|
||
|
|
||
|
// {4ab1fe8c-1f97-11d3-a577-00c04f8ef6e3}
|
||
|
DEFINE_GUID(IID_IH245ChannelControl,
|
||
|
0x4ab1fe8c, 0x1f97, 0x11d3, 0xa5, 0x77, 0x00, 0xc0, 0x4f, 0x8e, 0xf6, 0xe3);
|
||
|
|
||
|
struct DECLSPEC_UUID("4ab1fe8c-1f97-11d3-a577-00c04f8ef6e3") DECLSPEC_NOVTABLE
|
||
|
IH245ChannelControl : public IUnknown
|
||
|
{
|
||
|
STDMETHOD (SetFormat) (
|
||
|
IN AM_MEDIA_TYPE *pMediaType
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (GetNumberOfCapabilities) (
|
||
|
OUT DWORD *pdwCount
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (GetStreamCaps) (
|
||
|
IN DWORD dwIndex,
|
||
|
OUT AM_MEDIA_TYPE **ppMediaType,
|
||
|
OUT TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
|
||
|
OUT BOOL *pfEnabled
|
||
|
) PURE;
|
||
|
|
||
|
|
||
|
STDMETHOD (Start) (BOOL fRequestedByApplication) PURE;
|
||
|
|
||
|
STDMETHOD (Stop) (BOOL fRequestedByApplication) PURE;
|
||
|
|
||
|
STDMETHOD (Pause) (
|
||
|
IN BOOL fPause
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SetMaxBitrate) (
|
||
|
IN DWORD dwMaxBitrate
|
||
|
) PURE;
|
||
|
|
||
|
|
||
|
STDMETHOD (GetRemoteVersion) (
|
||
|
OUT H323MSPEndpointVersion *pEndpointVersion
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SelectTerminal) (
|
||
|
IN ITTerminal *pTerminal
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (UnselectTerminal) (
|
||
|
IN ITTerminal *pTerminal
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (ReOrderCapabilities) (
|
||
|
IN DWORD *pdwIndices,
|
||
|
IN BOOL *pfEnabled,
|
||
|
IN BOOL *pfPublicize,
|
||
|
IN DWORD dwNumIndices
|
||
|
) PURE;
|
||
|
};
|
||
|
|
||
|
// {4ab1fe8d-1f97-11d3-a577-00c04f8ef6e3}
|
||
|
DEFINE_GUID(IID_ISubstreamControl,
|
||
|
0x4ab1fe8d, 0x1f97, 0x11d3, 0xa5, 0x77, 0x00, 0xc0, 0x4f, 0x8e, 0xf6, 0xe3);
|
||
|
|
||
|
struct DECLSPEC_UUID("4ab1fe8d-1f97-11d3-a577-00c04f8ef6e3") DECLSPEC_NOVTABLE
|
||
|
ISubstreamControl : public IUnknown
|
||
|
{
|
||
|
STDMETHOD (SC_SetFormat) (
|
||
|
IN AM_MEDIA_TYPE *pMediaType,
|
||
|
IN DWORD dwFormatID,
|
||
|
IN DWORD dwPayloadType
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_Start) (BOOL fRequestedByApplication) PURE;
|
||
|
|
||
|
STDMETHOD (SC_Stop) (BOOL fRequestedByApplication) PURE;
|
||
|
|
||
|
STDMETHOD (SC_Pause) (VOID) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SetBitrate) (
|
||
|
IN DWORD dwBitsPerSecond
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_RemoteTemporalSpatialTradeoff) (
|
||
|
IN USHORT uTSRemoteValue
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_CreateSubstream) (
|
||
|
OUT ISubstreamControl *pSubStream
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SetRemoteAddress) (
|
||
|
IN OUT HANDLE * phRTPSession, // handle to the shared RTP session.
|
||
|
IN PSOCKADDR_IN pRemoteMediaAddr,
|
||
|
IN PSOCKADDR_IN pRemoteControlAddr
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SetSource) (
|
||
|
// indicates the low 8 bits of the local SSRC (if this is a send substream)
|
||
|
// or the low 8 bits of the senders SSRC (if this is a receive substream)
|
||
|
IN BYTE bSource
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SelectLocalAddress) (
|
||
|
IN OUT HANDLE * phRTPSession, // handle to the shared RTP session.
|
||
|
IN PSOCKADDR_IN pLocalAddress, // local IP address (same as H.245)
|
||
|
OUT PSOCKADDR_IN pLocalMediaAddress, // NULL if opening TX channel, else we want to know the local RTP receive address
|
||
|
OUT PSOCKADDR_IN pLocalControlAddress // We want to know the local RTCP address
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SetLocalReceiveAddress) ( // only called when the receive address is non-negotiable (e.g. multicast case)
|
||
|
IN OUT HANDLE * phRTPSession, // handle to the shared RTP session.
|
||
|
IN PSOCKADDR_IN pLocalMediaAddr, // local IP address (same as H.245)
|
||
|
IN PSOCKADDR_IN pLocalControlAddress,
|
||
|
IN PSOCKADDR_IN pRemoteControlAddress
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SendDTMF) (
|
||
|
IN LPWSTR pwstrDialChars
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SetDESKey52) (
|
||
|
IN BYTE *pKey
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_SelectTerminal) (
|
||
|
IN ITTerminal *pTerminal
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (SC_UnselectTerminal) (
|
||
|
IN ITTerminal *pTerminal
|
||
|
) PURE;
|
||
|
|
||
|
};
|
||
|
|
||
|
// {4ab1fe8e-1f97-11d3-a577-00c04f8ef6e3}
|
||
|
DEFINE_GUID(IID_IH245SubstreamControl,
|
||
|
0x4ab1fe8e, 0x1f97, 0x11d3, 0xa5, 0x77, 0x00, 0xc0, 0x4f, 0x8e, 0xf6, 0xe3);
|
||
|
|
||
|
struct DECLSPEC_UUID("4ab1fe8e-1f97-11d3-a577-00c04f8ef6e3") DECLSPEC_NOVTABLE
|
||
|
IH245SubstreamControl : public IUnknown
|
||
|
{
|
||
|
STDMETHOD (H245SC_BeginControlSession) (
|
||
|
IN IH245ChannelControl *pIChannelControl
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_EndControlSession) (VOID) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_GetNumberOfCapabilities) (
|
||
|
OUT DWORD *pdwTemplateCount,
|
||
|
OUT DWORD *pdwFormatCount
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_GetStreamCaps) (
|
||
|
IN DWORD dwIndex,
|
||
|
OUT const H245MediaCapability** pph245Capability,
|
||
|
OUT AM_MEDIA_TYPE **ppMediaType,
|
||
|
OUT TAPI_STREAM_CONFIG_CAPS *pStreamConfigCaps,
|
||
|
OUT DWORD *pdwUniqueID,
|
||
|
OUT UINT *puResourceBoundArrayEntries,
|
||
|
OUT const FormatResourceBounds **ppResourceBoundArray
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_RefineStreamCap) (
|
||
|
IN DWORD dwUniqueID,
|
||
|
IN DWORD dwResourceBoundIndex,
|
||
|
IN OUT H245MediaCapability* ph245Capability
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_SetIDBase) (
|
||
|
IN UINT uNewBase
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_FindIDByRange) (
|
||
|
IN AM_MEDIA_TYPE *pAMMediaType,
|
||
|
OUT DWORD *pdwUniqueID
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_FindIDByMode) (
|
||
|
IN H245_MODE_ELEMENT *pModeElement,
|
||
|
OUT DWORD *pdwUniqueID
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_IntersectFormats) (
|
||
|
IN const H245MediaCapability *pLocalCapability,
|
||
|
IN DWORD dwUniqueID,
|
||
|
IN const H245MediaCapability *pRemoteCapability,
|
||
|
OUT const H245MediaCapability **pIntersectedCapability,
|
||
|
OUT DWORD *pdwPayloadType
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_GetLocalFormat) (
|
||
|
IN DWORD dwUniqueID,
|
||
|
IN const H245MediaCapability *pIntersectedCapability,
|
||
|
OUT AM_MEDIA_TYPE **ppAMMediaType
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (H245SC_ReleaseNegotiatedCapability) (
|
||
|
IN DWORD dwUniqueID,
|
||
|
IN const H245MediaCapability *pIntersectedCapability
|
||
|
) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
// {20A0D46A-2D95-11d3-89D1-00C04F8EC972}
|
||
|
DEFINE_GUID(IID_IVidEncChannelControl,
|
||
|
0x20A0D46A, 0x2D95, 0x11d3, 0x89, 0xD1, 0x00, 0xc0, 0x4f, 0x8e, 0xC9, 0x72);
|
||
|
|
||
|
struct DECLSPEC_UUID("20A0D46A-2D95-11d3-89D1-00C04F8EC972") DECLSPEC_NOVTABLE
|
||
|
IVidEncChannelControl : IUnknown
|
||
|
{
|
||
|
|
||
|
STDMETHOD (VideoFastUpdatePicture)(void) PURE;
|
||
|
|
||
|
STDMETHOD (VideoFastUpdateGOB)(
|
||
|
IN DWORD dwFirstGOB,
|
||
|
IN DWORD dwNumberOfGOBs
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (VideoFastUpdateMB)(
|
||
|
IN DWORD dwFirstGOB,
|
||
|
IN DWORD dwFirstMB,
|
||
|
IN DWORD dwNumberOfMBs
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (VideoSendSyncEveryGOB)(
|
||
|
IN BOOL fEnable
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD (VideoNotDecodedMBs)(
|
||
|
IN DWORD dwFirstMB,
|
||
|
IN DWORD dwNumberOfMBs,
|
||
|
IN DWORD dwTemporalReference
|
||
|
) PURE;
|
||
|
|
||
|
|
||
|
STDMETHOD (VideoEncTemporalSpatialTradeoff)(
|
||
|
IN USHORT uTSValue
|
||
|
) PURE;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
// {0276FFED-3590-11d3-89D1-00C04F8EC972}
|
||
|
DEFINE_GUID(IID_IVidDecChannelControl,
|
||
|
0x276ffed, 0x3590, 0x11d3, 0x89, 0xd1, 0x0, 0xc0, 0x4f, 0x8e, 0xc9, 0x72);
|
||
|
|
||
|
struct DECLSPEC_UUID("0276FFED-3590-11d3-89D1-00C04F8EC972") DECLSPEC_NOVTABLE
|
||
|
IVidDecChannelControl : IUnknown
|
||
|
{
|
||
|
|
||
|
STDMETHOD (VideoFreezePicture)(void) PURE;
|
||
|
|
||
|
STDMETHOD (VideoDecTemporalSpatialTradeoff)(
|
||
|
IN USHORT uTSValue
|
||
|
) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|