📄 rmapckts.pas
字号:
unit RmaPckts;
interface
uses
PnTypes;
(****************************************************************************
*
* $Id: rmapckts.h,v 1.27 2000/05/06 04:59:01 milko Exp $
*
* Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
*
* http://www.real.com/devzone
*
* This program contains proprietary
* information of Progressive Networks, Inc, and is licensed
* subject to restrictions on use and distribution.
*
*
* RealMedia Architecture Packet and Header Interface.
*
*)
// Define IRMAUtilities
// ASMFlags in IRMAPacket
const
RMA_ASM_SWITCH_ON = $01;
{$EXTERNALSYM RMA_ASM_SWITCH_ON}
RMA_ASM_SWITCH_OFF = $02;
{$EXTERNALSYM RMA_ASM_SWITCH_OFF}
(****************************************************************************
*
* Interface:
*
* IRMABuffer
*
* Purpose:
*
* Basic opaque data storage buffer. Used in interfaces where
* object ownership is best managed through COM style reference
* counting.
*
* IID_IRMABuffer:
*
* {00001300-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMABuffer: TGUID = '{00001300-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMABuffer}
(*
* The IRMACommonClassFactory supports creating an instance
* of this object.
*)
CLSID_IRMABuffer: TGUID = '{00001300-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMABuffer}
type
PIRMABuffer = ^IRMABuffer;
{$NODEFINE PIRMABuffer}
IRMABuffer = interface (IUnknown)
['{00001300-0901-11d1-8B06-00A024406D59}']
function Get(var pData: UCHAR; var ulLength: ULONG32): HRESULT; stdcall;
function Set_(var pData: UCHAR; ulLength: ULONG32): HRESULT; stdcall;
function SetSize(ulLength: ULONG32): HRESULT; stdcall;
function GetSize: ULONG32; stdcall;
function GetBuffer: PUCHAR; stdcall;
end;
{$EXTERNALSYM IRMABuffer}
(****************************************************************************
*
* Interface:
*
* IRMAPacket
*
* Purpose:
*
* Basic data packet in the RealMedia system.
*
* IID_IRMAPacket:
*
* {00001301-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAPacket: TGUID = '{00001301-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAPacket}
(*
* The IRMACommonClassFactory supports creating an instance
* of this object.
*)
CLSID_IRMAPacket: TGUID = '{00001301-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMAPacket}
type
IRMAPacket = interface (IUnknown)
['{00001301-0901-11d1-8B06-00A024406D59}']
function Get(out pBuffer: IRMABuffer; var ulTime: UINT32; var unStreamNumber: UINT16;
var unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;
function GetBuffer: IRMABuffer; stdcall;
function GetTime: ULONG32; stdcall;
function GetStreamNumber: UINT16; stdcall;
function GetASMFlags: UINT8; stdcall;
function GetASMRuleNumber: UINT16; stdcall;
function IsLost: BOOL; stdcall;
function SetAsLost: HRESULT; stdcall;
function Set_(pBuffer: IRMABuffer; ulTime: UINT32; uStreamNumber: UINT16;
unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAPacket}
(****************************************************************************
*
* Interface:
*
* IRMAPacket
*
* Purpose:
*
* RTP data packet in the RealMedia system.
*
* IID_IRMARTPPacket:
*
* {0169A731-1ED0-11d4-952B-00902742C923}
*
*)
const
IID_IRMARTPPacket: TGUID = '{0169A731-1ED0-11d4-952B-00902742C923}';
{$EXTERNALSYM IID_IRMARTPPacket}
(*
* The IRMACommonClassFactory supports creating an instance
* of this object.
*)
CLSID_IRMARTPPacket: TGUID = '{0169A731-1ED0-11d4-952B-00902742C923}';
{$EXTERNALSYM CLSID_IRMARTPPacket}
type
IRMARTPPacket = interface (IRMAPacket)
['{0169A731-1ED0-11d4-952B-00902742C923}']
(*
* IRMARTPPacket methods
*)
function GetRTPTime: ULONG32; stdcall;
function GetRTP(out pBuffer: IRMABuffer; var ulTime, ulRTPTime: UINT32;
var unStreamNumber: UINT16; var unASMFlags: UINT8; var unASMRuleNumber: UINT16): HRESULT; stdcall;
function SetRTP(pBuffer: IRMABuffer; ulTime, ulRTPTime: UINT32; uStreamNumber: UINT16;
unASMFlags: UINT8; unASMRuleNumber: UINT16): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMARTPPacket}
(****************************************************************************
*
* Interface:
*
* IRMAValues
*
* Purpose:
*
* This is an interface to a generic name-value pair facility. This
* is used in various places (such as stream headers).
*
* IID_IRMAValues:
*
* {00001302-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAValues: TGUID = '{00001302-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAValues}
(*
* The IRMACommonClassFactory supports creating an instance
* of this object.
*)
CLSID_IRMAValues: TGUID = '{00001302-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMAValues}
type
IRMAValues = interface (IUnknown)
['{00001302-0901-11d1-8B06-00A024406D59}']
(*
* Note: That strings returned as references should be copied or
* used immediately because their lifetime is only as long as the
* IRMAValues's objects lifetime.
*
* Note: Your iterator will be reset once you give up control to the
* RMA core (i.e. you exit whatever function gave you a time slice).
*)
function SetPropertyULONG32(pPropertyName: PChar; uPropertyValue: ULONG32): HRESULT; stdcall;
function GetPropertyULONG32(pPropertyName: PChar; var uPropertyName: ULONG32): HRESULT; stdcall;
function GetFirstPropertyULONG32(var pPropertyName: PChar; var uPropertyValue: ULONG32): HRESULT; stdcall;
function GetNextPropertyULONG32(var pPropertyName: PChar; var uPropertyValue: ULONG32): HRESULT; stdcall;
function SetPropertyBuffer(pPropertyName: PChar; pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetPropertyBuffer(pPropertyName: PChar; var pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetFirstPropertyBuffer(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetNextPropertyBuffer(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
function SetPropertyCString(pPropertyName: PChar; pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetPropertyCString(pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetFirstPropertyCString(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
function GetNextPropertyCString(var pPropertyName: PChar; out pPropertyValue: IRMABuffer): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAValues}
(****************************************************************************
*
* Interface:
*
* IRMAValuesRemove
*
* Purpose:
*
* This interface is to add Remove methods to a class that supports
* IRMAValues. All classes that support this interface will also
* support IRMAValues.
*
*
*
* IID_IRMAValuesRemove:
*
* {00001303-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAValuesRemove: TGUID = '{00001303-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAValuesRemove}
(*
* The IRMACommonClassFactory does not support creating an instance
* of this object.
*)
type
IRMAValuesRemove = interface (IUnknown)
['{00001303-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAKeyValuesRemove::Remove
* Purpose:
* Remove all items matching pKey. (If you know what datatype you saved
* the key as, use the specific method.)
*)
function Remove(pKey: PChar): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAKeyValuesRemove::RemoveULONG32
* Purpose:
* Remove all ULONG32 items matching pKey.
*)
function RemoveULONG32(pKey: PChar): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAKeyValuesRemove::RemoveBuffer
* Purpose:
* Remove all Buffer items matching pKey.
*)
function RemoveBuffer(pKey: PChar): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMAKeyValuesRemove::RemoveCString
* Purpose:
* Remove all CString items matching pKey.
*)
function RemoveCString(pKey: PChar): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAValuesRemove}
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -