windows-nt/Source/XPSP1/NT/net/tapi/skywalker/h323/inc/cctostrm.h
2020-09-26 16:20:57 +08:00

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