Purpose: | Provides RTP time for streaming data packets |
Implemented by: | Packet object (RealSystem architecture) |
Used by: | File format and rendering plug-ins |
Header file: | rmapckts.h |
RealSystem components use IRMARTPPacket
objects to stream RTP packets between the RealServer and the RealSystem clients. A file format plug-in, for example, prepares RTP packets that RealServer streams to the client. As well, the client's rendering plug-in can use the system's back channel to send back packets of information. The preferred implementation is to use IRMACommonClassFactory
to create the RTP packet objects.
The IRMARTPPacket
interface contains the following methods:
IRMARTPPacket::Get
IRMARTPPacket::GetASMFlags
IRMARTPPacket::GetASMRuleNumber
IRMARTPPacket::GetBuffer
IRMARTPPacket::GetRTP
IRMARTPPacket::GetRTPTime
IRMARTPPacket::GetStreamNumber
IRMARTPPacket::GetTime
IRMARTPPacket::IsLost
IRMARTPPacket::Set
IRMARTPPacket::SetAsLost
IRMARTPPacket::SetRTP
As with all COM interfaces, the IRMARTPPacket
interface inherits the following IUnknown
methods:
Retrieves the values from the packet all at one time.
STDMETHOD(Get) (
THIS_
REF(IRMABuffer*) pBuffer,
REF(UINT32) ulTime,
REF(UINT16) unStreamNumber,
REF(UINT8) unASMFlags,
REF(UINT16) unASMRuleNumber
) PURE;
IRMABuffer
interface that manages the packet data.
![]() |
Additional Information |
---|
See "Chapter 11: Adaptive Stream Management". |
Returns the ASM flags. The ASM flags can be either RMA_ASM_SWITCH_ON or RMA_ASM_SWITCH_OFF.
STDMETHOD_(UINT8,GetASMFlags) (
THIS
) PURE;
![]() |
Additional Information |
---|
See "Chapter 11: Adaptive Stream Management". |
STDMETHOD_(UINT16,GetASMRuleNumber) (
THIS
) PURE;
![]() |
Additional Information |
---|
See "Chapter 11: Adaptive Stream Management". |
Returns an IRMABuffer
interface that manages the packet data.
STDMETHOD_(IRMABuffer*,GetBuffer) (
THIS
) PURE;
Retrieves the values from the RTP packet all at one time.
STDMETHOD(GetRTP) (
THIS_
REF(IRMABuffer*) pBuffer,
REF(UINT32) ulTime,
REF(UINT32) ulRTPTime,
REF(UINT16) unStreamNumber,
REF(UINT8) unASMFlags,
REF(UINT16) unASMRuleNumber
) PURE;
IRMABuffer
interface that manages the packet data.
![]() |
Additional Information |
---|
See "RTP Timing". |
STDMETHOD_(ULONG32,GetRTPTime) (
THIS
) PURE;
![]() |
Additional Information |
---|
See "RTP Timing". |
STDMETHOD_(UINT16,GetStreamNumber) (
THIS
) PURE;
Returns the time in milliseconds.
STDMETHOD_(ULONG32,GetTime) (
THIS
) PURE;
Indicates whether the packet has been lost. If the return value is TRUE
, the packet has been lost. If the packet is lost, none of the values of the packet have any meaning.
STDMETHOD_(BOOL,IsLost) (
THIS
) PURE;
Sets the values of the packet. This method only succeeds if there is just one reference to the packet. This method cannot be used to change the values of the packet once more than one component has a reference to that packet.
STDMETHOD(Set) (
THIS_
IRMABuffer* pBuffer,
UINT32 ulTime,
UINT16 uStreamNumber,
UINT8 unASMFlags,
UINT16 unASMRuleNumber
) PURE;
IRMABuffer
interface that manages the packet data.
![]() |
Additional Information |
---|
See "Chapter 11: Adaptive Stream Management". |
Marks a packet as lost. If the packet is lost, this method is called instead of IRMAPacket::Set
. This method fails if the IRMABuffer
of the packet is not NULL.
STDMETHOD(SetAsLost) (
THIS
) PURE;
Sets the values of the RTP packet. This method only succeeds if there is just one reference to the packet. This method cannot be used to change the values of the packet once more than one component has a reference to that packet.
STDMETHOD(SetRTP) (
THIS_
IRMABuffer* pBuffer,
UINT32 ulTime,
UINT32 ulRTPTime,
UINT16 uStreamNumber,
UINT8 unASMFlags,
UINT16 unASMRuleNumber
) PURE;
IRMABuffer
interface that manages the packet data.
![]() |
Additional Information |
---|
See "RTP Timing". |
Purpose: | Receives raw packets from a source |
Implemented by: | Server's live packet sink plug-in |
Used by: | Live source |
Header file: | rmasrc.h |
This interface provides notifications about all packets that are served from a live source connected to the RMA server. It also retrieves the relevent file and stream headers.
The IRMARawSinkObject
interface contains the following methods:
IRMARawSinkObject::FileHeaderReady
IRMARawSinkObject::InitDone
IRMARawSinkObject::PacketReady
IRMARawSinkObject::StreamDone
IRMARawSinkObject::StreamHeaderReady
As with all COM interfaces, the IRMARawSinkObject
interface inherits the following IUnknown
methods:
Indicates the status of the request for the file header.
STDMETHOD(FileHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
IRMARawSourceObject::GetFileHeader
operation. A value of PNR_OK
indicates the operation completed successfully.
IRMAValues
interface that manages the file header information.
Indicates the status after the source interface initializes the connection.
STDMETHOD(InitDone) (
THIS_
PN_RESULT status
) PURE;
IRMARawSourceObject::Init
operation. A value of PNR_OK
indicates the operation has completed successfully.
Indicates the status of the request for packets. This method is called for every packet received from the live source.
STDMETHOD(PacketReady) (
THIS_
PN_RESULT status,
IRMAPacket* pPacket
) PURE;
IRMARawSourceObject::StartPackets
operation. A value of PNR_OK
indicates the operation completed successfully.
IRMAPacket
interface that manages the packets.
Indicates that a live stream has completed.
STDMETHOD(StreamDone) (
THIS_
UINT16 unStreamNumber
) PURE;
Indicates the status of the request for the stream header.
STDMETHOD(StreamHeaderReady) (
THIS_
PN_RESULT status,
IRMAValues* pHeader
) PURE;
IRMARawSourceObject::GetStreamHeader
operation. A value of PNR_OK
indicates the operation completed successfully.
IRMAValues
interface that manages the stream header information.
Purpose: | Serves packets to sinks |
Implemented by: | Information not yet available at publication. |
Used by: | Live packet sink plug-in |
Header file: | rmasrc.h |
The IRMARawSourceObject
interface contains the the following methods:
IRMARawSourceObject::Done
IRMARawSourceObject::GetFileHeader
IRMARawSourceObject::GetStreamHeader
IRMARawSourceObject::Init
IRMARawSourceObject::StartPackets
IRMARawSourceObject::StopPackets
As with all COM interfaces, the IRMARawSourceObject
interface inherits the following IUnknown
methods:
Information not yet available at publication.
STDMETHOD(Done) (
THIS
) PURE;
STDMETHOD(GetFileHeader) (
THIS
) PURE;
Retrieves the indicated stream header.
STDMETHOD(GetStreamHeader) (
THIS_
UINT16 unStreamNumber
) PURE;
Initializes the connection between the source and the sink interfaces.
STDMETHOD(Init) (
THIS_
IUnknown* pUnknown
) PURE;
Starts sending packets to the indicated stream.
STDMETHOD(StartPackets) (
THIS_
UINT16 unStreamNumber
) PURE;
Stops sending packets to the indicated stream.
STDMETHOD(StopPackets) (
THIS_
UINT16 unStreamNumber
) PURE;
Purpose: | Information not yet available at publication. |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmacomm.h |
The IRMAReconfigServerResponse
interface contains the IRMAReconfigServerResponse::ReconfigServerDone
method.
As with all COM interfaces, the IRMAReconfigServerResponse
interface inherits the following IUnknown
methods:
Indicates the server has been reconfigured.
STDMETHOD(ReconfigServerDone) (
THIS_
PN_RESULT res,
IRMABuffer** pInfo,
UINT32 ulNumInfo
) PURE;
IRMAServerControl2::ReconfigServer
operation. A value of PNR_OK
indicates the operation has completed successfully.
Purpose: | Provides storage of URLs to redirect |
Implemented by: | Database plug-in, MSQL and ODBC plug-ins |
Used by: | Pay-per-view allowance plug-in |
Header file: | rmadb.h |
This interface manages the URL redirection of database information. The response interface is IRMARedirectDBManagerResponse
.
The IRMARedirectDBManager
interface contains the following methods:
IRMARedirectDBManager::AddRedirect
IRMARedirectDBManager::GetRedirect
IRMARedirectDBManager::RemoveRedirect
As with all COM interfaces, the IRMARedirectDBManager
interface inherits the following IUnknown
methods:
Sets the new URL to which the specified URL should be redirected.
STDMETHOD(AddRedirect) (
THIS_
IRMARedirectDBManagerResponse* pRedirectDBManagerResponseNew,
IRMABuffer* pBufferURL,
IRMABuffer* pBufferNewURL
) PURE;
IRMARedirectDBManagerResponse
interface that manages the response to this method.
IRMABuffer
interface that manages the specified URL.
IRMABuffer
interface that manages the new URL.
Retrieves the URL to which the specified URL should be redirected.
STDMETHOD(GetRedirect) (
THIS_
IRMARedirectDBManagerResponse* pRedirectDBManagerResponseNew,
IRMABuffer* pBufferURL
) PURE;
IRMARedirectDBManagerResponse
interface that manages the response to this method.
IRMABuffer
interface that manages the specified URL.
Stops redirecting the specified URL.
STDMETHOD(RemoveRedirect) (
THIS_
IRMARedirectDBManagerResponse* pRedirectDBManagerResponseNew,
IRMABuffer* pBufferURL
) PURE;
IRMARedirectDBManagerResponse
interface that manages the response to this method.
IRMABuffer
interface that manages the specified URL.
Purpose: | Manages the URLs to redirect |
Implemented by: | Pay-per-view allowance plug-in |
Used by: | Database plug-in, Admin file system |
Header file: | rmadb.h |
This interface provides asynchronous responses for the IRMARedirectDBManager
interface.
The IRMARedirectDBManagerResponse
interface contains the following methods:
IRMARedirectDBManagerResponse::AddRedirectDone
IRMARedirectDBManagerResponse::GetRedirectDone
IRMARedirectDBManagerResponse::RemoveRedirectDone
As with all COM interfaces, the IRMARedirectDBManagerResponse
interface inherits the following IUnknown
methods:
Reports the status of the call to set the new URL.
STDMETHOD(AddRedirectDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferURL
) PURE;
IRMARedirectDBManager::AddRedirect
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the specified URL (the original URL, not the redirected URL).
Reports the status of the call to get the URL to which to redirect the specified URL.
STDMETHOD(GetRedirectDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferURL,
IRMABuffer* pBufferNewURL
) PURE;
IRMARedirectDBManager::GetRedirect
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the specified URL.
IRMABuffer
interface that manages the new URL.
Reports the status of the call to remove the new URL.
STDMETHOD(RemoveRedirectDone) (
THIS_
PN_RESULT ResultStatus,
IRMABuffer* pBufferURL
) PURE;
IRMARedirectDBManager::RemoveRedirect
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMABuffer
interface that manages the specified URL from which to remove the redirected URL.
Purpose: | Information not yet available at publication. |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmacfg.h |
The IRMARegConfig
interface contains the IRMARegConfig::WriteKey
method.
As with all COM interfaces, the IRMARegConfig
interface inherits the following IUnknown
methods:
Writes out the registry from the passed-in keyname to the currently-active permanent configuration storage area (for example, the configuration file or the registry).
STDMETHOD(WriteKey) (
THIS_
const char* pKeyName
) PURE;
Purpose: | Provides storage of player registration attempts |
Implemented by: | Database plug-in |
Used by: | Pay-per-view allowance plug-in |
Header file: | rmadb.h |
The IRMARegistrationLogger
interface contains the IRMARegistrationLogger::LogRegistrationAttempt
method.
As with all COM interfaces, the IRMARegistrationLogger
interface inherits the following IUnknown
methods:
Records the results of an attempt to register a player's GUID.
STDMETHOD(LogRegistrationAttempt) (
THIS_
IRMAValues* pValuesRegistration
) PURE;
Purpose: | Gets the registry ID for an object |
Implemented by: | Player, stream, and stream source objects (RealSystem architecture) |
Used by: | top-level client |
Header file: | rmacomm.h |
Through this interface, the top-level client can get the registry ID of an IRMAPlayer
, IRMAStream
, or IRMAStreamSource
object. It can then use IRMAStatistics
to pass this ID to the Client core and tell the client to update the object statistics.
![]() |
Additional Information |
---|
See "Chapter 20: Top-Level Client". |
The IRMARegistryID
inteface contains the IRMARegistryID::GetID
method.
As with all COM interfaces, the IRMARegistryID
interface inherits the following IUnknown
methods:
Gets the registry ID of the object.
STDMETHOD(GetID) (
THIS_
REF(UINT32) ulRegistryID
) PURE;
Purpose: | Relays client instructions to the renderer |
Implemented by: | Rendering plug-in |
Used by: | RealSystem Client |
Header file: | rmarendr.h |
All rendering plug-ins implement this interface, which manages header and packet reception, as well as stream status information. The interface receives data packets for a particular stream of a presentation and "renders" that data synchronized with the playback timeline. To fulfill this role, the renderer is given access to all status events of the timeline, including current playback time.
![]() |
Additional Information |
---|
See "Chapter 6: Rendering Plug-In". |
The IRMARenderer
interface contains the following methods:
IRMARenderer::EndStream
IRMARenderer::GetDisplayType
IRMARenderer::GetRendererInfo
IRMARenderer::OnBegin
IRMARenderer::OnBuffering
IRMARenderer::OnEndOfPackets
IRMARenderer::OnHeader
IRMARenderer::OnPacket
IRMARenderer::OnPause
IRMARenderer::OnPostSeek
IRMARenderer::OnPreSeek
IRMARenderer::OnTimeSync
IRMARenderer::StartStream
As with all COM interfaces, the IRMARenderer
interface inherits the following IUnknown
methods:
Informs the renderer that the stream is was rendering is completed. This method should include any deallocation of resources.
STDMETHOD(EndStream) (
THIS
) PURE;
Returns the preferred display type for the renderer. When layout information is not present, the renderer is asked for its preferred display type. Depending on the display type, a buffer of additional information may be needed. This buffer could contain information about preferred window size. This method is called when the plug-in is being initialized.
STDMETHOD(GetDisplayType) (
THIS_
REF(RMA_DISPLAY_TYPE) ulFlags,
REF(IRMABuffer*) pBuffer
) PURE;
IRMABuffer
interface that manages any required additional information. This parameter is reserved for future use, and should be NULL
Returns critical information to associate this rendering plug-in with a given stream MIME type. This information tells the RMA core which renderer to use to display a particular type of stream. This method is called when the RMA core application is launched.
STDMETHOD(GetRendererInfo) (
THIS_
REF(const char**) pStreamMimeTypes,
REF(UINT32) unInitialGranularity
) PURE;
Informs the renderer that a begin or resume has just occurred.
STDMETHOD(OnBegin) (
THIS_
ULONG32 ulTime
) PURE;
Informs the renderer that buffering of data is occurring. The render is informed of the reason for the buffering (start-up of stream, seek has occurred, network congestion, and so on), as well as percentage complete of the buffering process.
STDMETHOD(OnBuffering) (
THIS_
ULONG32 ulFlags,
UINT16 unPercentComplete
) PURE;
Informs the renderer that all the packets have been delivered. However, if the user seeks before IRMARenderer::EndStream
is called, the renderer may start getting packets again, and the client engine will eventually call this function again.
STDMETHOD(OnEndofPackets) (
THIS
) PURE;
Retrieves a pointer to the stream header that was created by the file format plug-in. The client engine calls this method when a header for this renderer is available. The header arrives before any packets. This method is called when the plug-in is being initialized.
STDMETHOD(OnHeader) (
THIS_
IRMAValues* pHeader
) PURE;
IRMAValues
interface that manages the stream header data for this renderer.
Retrieves a packet streamed by the associated file format plug-in. The client engine calls this method when a packet for this renderer is ready (or should be ready, but is lost). In most cases, the actual rendering of the packet is done in this method.
STDMETHOD(OnPacket) (
THIS_
IRMAPacket* pPacket,
LONG32 lTimeOffset
) PURE;
IRMAPacket
interface that manages the packet from the file format plug-in.
Informs the renderer that a pause has just occurred.
STDMETHOD(OnPause) (
THIS_
ULONG32 ulTime
) PURE;
Informs the renderer that a seek has just occurred.
STDMETHOD(OnPostSeek) (
THIS_
ULONG32 ulOldTime,
ULONG32 ulNewTime
) PURE;
Informs the renderer that a seek is about to occur.
STDMETHOD(OnPreSeek) (
THIS_
ULONG32 ulOldTime,
ULONG32 ulNewTime
) PURE;
Informs the renderer of the current time relative to the stream's synchronized time-line. The renderer should use this time value to update its display or render its stream data accordingly.
STDMETHOD(OnTimeSync) (
THIS_
ULONG32 ulTime
) PURE;
Informs the renderer of the stream it will be rendering. The stream interface can provide access to its source or player. This method also provides access to the primary client controller interface. This method is called when the plug-in is being intialized.
STDMETHOD(StartStream) (
THIS_
IRMAStream* pStream,
IRMAPlayer* pPlayer
) PURE;
IRMAStream
interface that manages the stream that is to be rendered.
IRMAPlayer
interface that manages the plug-in's access to the client.
![]() |
Additional Information |
---|
See "Initializing". |
Purpose: | Controls the URL request object |
Implemented by: | Request object (RealSystem architecture) |
Used by: | File format plug-ins, file objects, broadcast objects |
Header file: | rmafiles.h |
The request object contains the URL for the client request, along with the request headers and the optional response headers. Plug-ins can use the IRMARequest::GetURL
and IRMARequest::SetResponseHeaders
methods to get the request's fully qualified path and associate response headers with the request object, respectively. Through the response headers a plug-in can send the client any information.
![]() |
Additional Information |
---|
See "Modifying the Response Headers". |
The IRMARequest
interface contains the following methods:
IRMARequest::GetRequestHeaders
IRMARequest::GetResponseHeaders
IRMARequest::GetURL
IRMARequest::SetRequestHeaders
IRMARequest::SetResponseHeaders
IRMARequest::SetURL
As with all COM interfaces, the IRMARequest
interface inherits the following IUnknown
methods:
Gets the headers that were sent in the RFC822 header section of the request message.
STDMETHOD(GetRequestHeaders) (
THIS_
REF(IRMAValues*) pRequestHeaders
) PURE;
IRMAValues
interface that manages the header information.
Gets the headers that were returned in the RFC822 header section of the response message.
STDMETHOD(GetResponseHeaders) (
THIS_
REF(IRMAValues*) pResponseHeaders
) PURE;
IRMAValues
interface that manages the header information.
Returns the fully qualified path associated with a file object. On the server, this path does not include the file system mount point.
STDMETHOD(GetURL) (
THIS_
REF(const char*) pURL
) PURE;
![]() |
Note |
---|
The returned pointer's lifetime expires as soon as the caller returns from a function that was called from the RMA core (that is, when you return control to the RMA core). |
Sets the headers that are to be sent in the RFC822 header section of the request message.
STDMETHOD(SetRequestHeaders) (
THIS_
IRMAValues* pRequestHeaders
) PURE;
IRMAValues
interface that manages the header information.
Sets the headers that are to be returned in the RFC822 header section of the response message.
STDMETHOD(SetResponseHeaders) (
THIS_
IRMAValues* pResponseHeaders
) PURE;
IRMAValues
interface that manages the header information.
Sets the fully-qualified path associated with a file object. On the server, this path does not include the file system mount point.
STDMETHOD(SetURL) (
THIS_
const char* pURL
) PURE;
Purpose: | Manages the context of the request |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmafiles.h |
The IRMARequestContext
interface contains the following methods:
IRMARequestContext::GetRequester
IRMARequestContext::GetUserContext
IRMARequestContext::SetRequester
IRMARequestContext::SetUserContext
As with all COM interfaces, the IRMARequestContext
interface inherits the following IUnknown
methods:
Gets the object that made the request.
STDMETHOD(GetRequester) (
THIS_
REF(IUnknown*) pIUnknownCurrentRequester
) PURE;
Gets the authenticated user's context.
STDMETHOD(GetUserContext) (
THIS_
REF(IUnknown*) pIUnknownCurrentContext
) PURE;
Sets the object that made the request.
STDMETHOD(SetRequester) (
THIS_
IUnknown* pIUnknownNewRequester
) PURE;
Sets the authenticated user's context.
STDMETHOD(SetUserContext) (
THIS_
IUnknown* pIUnknownNewContext
) PURE;
Purpose: | Associates objects with request objects |
Implemented by: | File objects and broadcast objects |
Used by: | RealServer |
Header file: | rmafiles.h |
A file object or broadcast object implements this interface to receive a pointer to a request object. It can then use IRMARequest
to get the request URL or modify the object's response headers. File format plug-ins do not need to implement this interface because they receive the request object pointer during initialization.
![]() |
Additional Information |
---|
See "Chapter 7: File System Plug-In" or "Chapter 8: Broadcast Plug-in". |
The IRMARequestHandler
interface contains the following methods:
As with all COM interfaces, the IRMARequestHandler
interface inherits the following IUnknown
methods:
Gets the IRMARequest
interface associated with an object.
STDMETHOD(GetRequest) (
THIS_
REF(IRMARequest*) pRequest
) PURE;
IRMARequest
interface.
Associates an IRMARequest
interface with an object.
STDMETHOD(SetRequest) (
THIS_
IRMARequest* pRequest
) PURE;
IRMARequest
interface to associate with the object.
Purpose: | Resolves the DNS host name to an IP address |
Implemented by: | Resolver object (Network Services) |
Used by: | Any component |
Header file: | rmaengin.h |
Any component that needs to resolve a DNS host name into an IP address can use this interface. The component first creates a resolver object with IRMANetworkServices
. It then specifies the DNS name with this interface. The resolver object then uses IRMAResolverResponse
to pass the component a four-byte IP address in native byte order.
![]() |
Additional Information |
---|
See "Chapter 14: Network Services". |
The IRMAResolver
interface contains the following methods:
As with all COM interfaces, the IRMAResolver
interface inherits the following IUnknown
methods:
STDMETHOD(GetHostByName) (
THIS_
const char* pHostName
) PURE;
Associates a resolver response interface with this interface.
STDMETHOD(Init) (
THIS_
IRMAResolverResponse* pResponse
) PURE;
IRMAResolverResponse
interface that returns the resolved information to the calling component.
Purpose: | Returns the IP address for a resolved DNS host name |
Implemented by: | Any component |
Used by: | Resolver object (Network Services) |
Header file: | rmaengin.h |
This is the response interface to IRMAResolver
. Through it a component receives a four-byte IP address in native byte order for a specified DNS host name.
![]() |
Additional Information |
---|
See "Chapter 14: Network Services". |
The IRMAResolverResponse
interface contains the IRMAResolverResponse::GetHostByNameDone
method.
As with all COM interfaces, the IRMAResolverResponse
interface inherits the following IUnknown
methods:
Contains the IP address that was resolved from the DNS host name.
STDMETHOD(GetHostByNameDone) (
THIS_
PN_RESULT status,
ULONG32 ulAddr
) PURE;
IRMAResolver::GetHostByName
operation. A value of PNR_OK
indicates the operation has completed successfully
Purpose: | Simulates a live stream from a file |
Implemented by: | RealSystem SLTA library |
Used by: | Stand-alone executables |
Header file: | rmaslta.h |
RealServer includes the standard G2SLTA application that simulates live broadcasts. This interface provides a means of designing custom applications that deviate from the standard application.
![]() |
Additional Information |
---|
See "Simulating a Live Broadcast" in the RealServer Administration Guide and "Simulated Live Transfer Agent (SLTA)". |
The IRMASLTA
interface contains the following methods:
IRMASLTA::Connect
IRMASLTA::Disconnect
IRMASLTA::Encode
IRMASLTA::SetTAC
IRMASLTA::SetTargetBandwidth
As with all COM interfaces, the IRMASLTA
interface inherits the following IUnknown
methods:
Connects the simulated live transfer agent (SLTA) to a server.
STDMETHOD(Connect) (
THIS_
const char* host,
UINT16 uPort,
const char* username,
const char* passwd,
const char* livefile
) PURE;
Disconnects the SLTA from the server.
STDMETHOD(Disconnect) (
THIS
) PURE;
Starts streaming the file to the server.
STDMETHOD(Encode) (
THIS_
const char* filename
) PURE;
Sets the title, author, and copyright information for the stream. This method must be called before IRMASLTA::Encode
to have any effect.
IRMASLTA::SetTAC
overrides the displayed title, author, and copyright. This method does not need to be used unless, for example, you have several items to play and want to override the given title, author, and copyright with your own title, author, and copyright. If you don't use this method, the title, author, and copyright for each individual file will still be displayed.
STDMETHOD(SetTAC) (
THIS_
const char* Title,
const char* Author,
const char* Copyright
) PURE;
Sets the target bandwidth for rule subscription. This method should not be used unless you want to purposely override the bandwidth of the stream. Normally, the SLTA sends at whatever bandwidth the connection between the server and client will allow.
STDMETHOD(SetTargetBandwidth) (
THIS_
UINT32 ulTargetBW
) PURE;
Purpose: | Schedules callbacks |
Implemented by: | Scheduler (RealSystem architecture) |
Used by: | Any component |
Header file: | rmaengin.h |
The scheduler is a general-purpose feature that lets RealSystem components schedule work for later servicing, thus enabling "lightweight," cooperative multitasking. A component uses IRMACommonClassFactory
to create a scheduler object and then uses the IRMAScheduler
methods to set an absolute or relative time for a callback. The callback is provided to the designated callback object through IRMACallback
.
![]() |
Additional Information |
---|
See "Using the Scheduler". |
The IRMAScheduler
interface contains the following methods:
IRMAScheduler::AbsoluteEnter
IRMAScheduler::GetCurrentSchedulerTime
IRMAScheduler::RelativeEnter
IRMAScheduler::Remove
As with all COM interfaces, the IRMAScheduler
interface inherits the following IUnknown
methods:
Schedules a callback to be executed at the specified time. Returns the handle to the callback.
STDMETHOD_(CallbackHandle,AbsoluteEnter) (
THIS_
IRMACallback* pCallback,
RMATimeval tVal
) PURE;
IRMACallback
interface to be executed.
RMATimeval
structure that contains the relevent time information.
Returns the current time (in the timeline of the scheduler) in an RMATimeval
structure.
STDMETHOD_(RMATimeval,GetCurrentSchedulerTime) (
THIS
) PURE;
Schedules a callback to be executed a specified time from now. Returns the handle to the callback. This method is less percise than IRMAScheduler::AbsoluteEnter
and should only be used when accurate timing is not critical.
STDMETHOD_(CallbackHandle,RelativeEnter) (
THIS_
IRMACallback* pCallback,
UINT32 ms
) PURE;
IRMACallback
interface to be executed.
Removes a specified callback from the scheduler.
STDMETHOD(Remove) (
THIS_
CallbackHandle Handle
) PURE;
Purpose: | Performs the server side of the authentication protocol |
Implemented by: | Server authenticator manager, authentication plug-in |
Used by: | Encoding server, file system, and pay-per-view allowance plug-ins |
Header file: | rmaauthn.h |
This interface manages secure resources that only certain clients can access. Generally, IRMAServerAuthConversation::MakeChallenge
is called to pass in RTSP or HTTP headers from the client to try to authenticate (the first call may not have any authentication). Then IRMAServerAuthConversation::IsAuthenticated
is used to find out if the client is authenticated yet. If the client is authenticated, IRMAServerAuthConversation::GetUserContent
is called to get the information about the user. The response interface is IRMAServerAuthResponse
.
The IRMAServerAuthConversation
interface contains the following methods:
IRMAServerAuthConversation::GetUserContext
IRMAServerAuthConversation::IsAuthenticated
IRMAServerAuthConversation::MakeChallenge
As with all COM interfaces, the IRMAServerAuthConversation
interface inherits the following IUnknown
methods:
Retrieves an object that provides additional information about the user. Generally, this object implements the IRMAUserContext
interface, which is useful in NTLM authentication for determining whether a user belongs to a cretain Windows NT administrative group in the NT security model. This object may also implement the IRMAUserImpersonation
interface, which allows a Windows NT process to temporarily have the same security as another Windows NT user. In addition, this object may also implement the IRMAUserProperties
interface, which can get the user's name for logging or other purposes.
STDMETHOD(GetUserContext) (
THIS_
REF(IUnknown*) pUnknownUser
) PURE;
Determines whether the last response from the client completed the authentication successfully. Returns TRUE
when the authentication is completed successfully.
STDMETHOD_(BOOL,IsAuthenticated) (
THIS
) PURE;
Creates a challenge for a client. If the request passed in does not contain a response from the client, then it will generate the initial challenge.
STDMETHOD(MakeChallenge) (
THIS_
IRMAServerAuthResponse* pServerAuthResponseRequester,
IRMARequest* pRequestResponseHeaders
) PURE;
IRMAServerAuthResponse
interface that manages the responses generated by this method.
IRMARequest
interface that manages the request for a secured URL. If this is the initial request for the URL, this method probably doesn't have any credentials from the client.
Purpose: | Information not yet available at publication. |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmaauthn.h |
The IRMAServerAuthResponse
interface contains the IRMAServerAuthResponse::ChallengeReady
method.
As with all COM interfaces, the IRMAServerAuthResponse
interface inherits the following IUnknown
methods:
Reports the success or failure of IRMAServerAuthConversation::MakeChallenge
.
STDMETHOD(ChallengeReady) (
THIS_
PN_RESULT ResultStatus,
IRMARequest* pRequestChallengeHeaders
) PURE;
IRMAServerAuthConversation::MakeChallenge
operation. A value of PNR_OK
indicates the operation has completed successfully.
IRMARequest
interface that manages the request challenge headers. This IRMARequest
interface should be the same as that passed in IRMAServerAuthConversation::MakeChallenge
, and should contain CString values for each MIME header that needs to be sent to the client.
Purpose: | Terminates all connections and shuts down the RealMedia server |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmacomm.h |
The IRMASeverControl
interface contains the IRMAServerControl::ShutdownServer
method.
As with all COM interfaces, the IRMAServerControl
interface inherits the following IUnknown
methods:
STDMETHOD(ShutdownServer) (
THIS_
UINT32 status
) PURE;
Purpose: | Terminates all connections and shuts down the RealMedia server |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmacomm.h |
The IRMAServerControl2
interface contains the following methods:
As with all COM interfaces, the IRMAServerControl2
interface inherits the following IUnknown
methods:
Causes the server to re-read in the configuration from a file or registry (however it was started) and attempt to use the values.
STDMETHOD(ReconfigServer) (
THIS_
IRMAReconfigServerResponse* pResp
) PURE;
IRMAReconfigServerResponse
interface that manages the response to this method.
Directs the server to completely shut down, then restart. This method is mainly used to cause not hot-setting configuration variable changes to take effect.
STDMETHOD(RestartServer) (
THIS
) PURE;
Purpose: | Forks off UNIX processes |
Implemented by: | RealSystem architecture |
Used by: | UNIX plug-ins |
Header file: | rmacomm.h |
On UNIX platforms, this interface lets plug-ins fork off processes. A forked process cannot use any RealSystem interfaces, however. See rmacomm.h
for more information.
The IRMAServerFork
interface contains the IRMAServerFork::Fork
method.
As with all COM interfaces, the IRMAServerFork
interface inherits the following IUnknown
methods:
Forks off a child process. The child process cannot use any RMA APIs. Upon successful completion, this method returns 0 to the child process and the PID of the child to the parent. A return value of -1 indicates an error.
STDMETHOD_(INT32, Fork) (
THIS
) PURE;
![]() |
Note |
---|
The child process should not release (IUnknown::Release ) any interfaces.
The cleanup of the IRMAServerFork interface and other RMA interfaces is
done by the parent.
|
Purpose: | Sets the socket option |
Implemented by: | Information not yet available at publication. |
Used by: | Information not yet available at publication. |
Header file: | rmaengin.h |
The IRMASetSocketOption
interface contains the IRMASetSocketOption::SetOption
method.
As with all COM interfaces, the IRMASetSocketOption
interface inherits the following IUnknown
methods:
Information not yet available at publication.
STDMETHOD(SetOption) (
THIS_
PN_SOCKET_OPTION option,
UINT32 ulValue
) PURE;
Purpose: | Controls site rendering |
Implemented by: | Site object (Client core) |
Used by: | Display renderer |
Header file: | rmawin.h |
This is the main interface to a site in which a display rendering plug-in renders data. The methods in this interface let the plug-in control the site size and position, attach site watches with IRMASiteWatcher
, and create child windows.
![]() |
Additional Information |
---|
See "Chapter 12: Sites (Windowing)". |
The IRMASite
interface contains the following methods:
IRMASite::AttachUser
IRMASite::AttachWatcher
IRMASite::CreateChild
IRMASite::DamageRect
IRMASite::DamageRegion
IRMASite::DestroyChild
IRMASite::DetachUser
IRMASite::DetachWatcher
IRMASite::ForceRedraw
IRMASite::GetPosition
IRMASite::GetSize
IRMASite::GetUser
IRMASite::SetPosition
IRMASite::SetSize
As with all COM interfaces, the IRMASite
interface inherits the following IUnknown
methods:
Associates a site user interface with this site.
STDMETHOD(AttachUser) (
THIS_
IRMASiteUser* pUser
) PURE;
IRMASiteUser
interface associated with this site.
Associates a site watcher interface to the current site.
STDMETHOD(AttachWatcher) (
THIS_
IRMASiteWatcher* pWatcher
) PURE;
IRMASiteWatcher
interface that is being associated with the current site.
Creates a child site associated with the current site.
STDMETHOD(CreateChild) (
THIS_
REF(IRMASite*) pChildSite
) PURE;
IRMASite
interface that manages the child site.
Sets aside a rectangle to be filled in in the future.
STDMETHOD(DamageRect) (
THIS_
PNxRect rect
) PURE;
PNxRect
structure that defines the rectangle.
Sets aside a region (a collection of rectangles) to be filled in in the future.
STDMETHOD(DamageRegion) (
THIS_
PNxRegion region
) PURE;
PNxRegion
that defines the region.
Removes the indicated child site.
STDMETHOD(DestroyChild) (
THIS_
IRMASite* pChildSite
) PURE;
IRMASite
interface that manages the child site to be removed.
Detaches the site user from the site.
STDMETHOD(DetachUser) (
THIS
) PURE;
Detaches the site watcher from the site.
STDMETHOD(DetachWatcher) (
THIS
) PURE;
STDMETHOD(ForceRedraw) (
THIS
) PURE;
STDMETHOD(GetPosition) (
THIS_
REF(PNxPoint) position
) PURE;
PNxPoint
structure that indicates the current position.
STDMETHOD(GetSize) (
THIS_
REF(PNxSize) size
) PURE;
PNxSize
structure that indicates the size of the site.
Gets the site user associated with this site.
STDMETHOD(GetUser) (
THIS_
REF(IRMASiteUser*) pUser
) PURE;
IRMASiteUser
interface that manages the user.
Sets the position on the site. Site users should not generally call this method.
STDMETHOD(SetPosition) (
THIS_
PNxPoint position
) PURE;
PNxPoint
structure that defines the point to set the position.
STDMETHOD(SetSize) (
THIS_
PNxSize size
) PURE;
PNxSize
structure that contains the size, in pixels.
Purpose: | Controls site rendering |
Implemented by: | Site object (Client core) |
Used by: | Display renderer |
Header file: | rmasite2.h |
This interface complements the IRMASite
interface, permitting cross-platform image rendering.
![]() |
Additional Information |
---|
See IRMAVideoSurface .
|
The IRMASite2
interface contains the following methods:
IRMASite2::AddPassiveSiteWatcher
IRMASite2::GetNumberOfChildSites
IRMASite2::GetVideoSurface
IRMASite2::GetZOrder
IRMASite2::IsSiteVisible
IRMASite2::MoveSiteToTop
IRMASite2::RemovePassiveSiteWatcher
IRMASite2::SetCursor
IRMASite2::SetZOrder
IRMASite2::ShowSite
IRMASite2::UpdateSiteWindow
As with all COM interfaces, the IRMASite2
interface inherits the following IUnknown
methods:
Adds a watcher that does not affect the site.
STDMETHOD(AddPassiveSiteWatcher) (
THIS_
IRMAPassiveSiteWatcher* pWatcher
) PURE;
IRMAPassiveSiteWatcher
interface that the site notifies of a site change.
Returns the number of child sites.
STDMETHOD_(UINT32,GetNumberOfChildSites) (
THIS
) PURE;
Gets the site's video surface.
STDMETHOD(GetVideoSurface) (
THIS_
REF(IRMAVideoSurface*) pSurface
) PURE;
IRMAVideoSurface
interface that manages the video surface.
STDMETHOD(GetZOrder) (
THIS_
REF(INT32) lZOrder
) PURE;
Indicates whether the site is visible. If this method returns TRUE
, the site is visible.
STDMETHOD_(BOOL, IsSiteVisible) (
THIS
) PURE;
Sets the site at the top of the Z-order.
STDMETHOD(MoveSiteToTop) (
THIS
) PURE;
Removes a watcher that does not affect the site.
STDMETHOD(RemovePassiveSiteWatcher) (
THIS_
IRMAPassiveSiteWatcher* pWatcher
) PURE;
IRMAPassiveSiteWatcher
interface to remove.
Sets the cursor type. Not currently implemented.
STDMETHOD(SetCursor) (
THIS_
PNxCursor ulCursor,
REF(PNxCursor) ulOldCursor
) PURE;
PNxCursor
that defines the new cursor type.
PNxCursor
that defines the previous cursor type.
STDMETHOD(SetZOrder) (
THIS_
INT32 lZOrder
) PURE;
STDMETHOD(ShowSite) (
THIS_
BOOL bShow
) PURE;
TRUE
, the site is shown. If FALSE
, the site is hidden.
Updates the site window attributes (such as the window handle, position, size, and so on) after they have been changed.
STDMETHOD(UpdateSiteWindow) (
THIS_
PNxWindow* pWindow
) PURE;
PNxWindow
structure that contains the new attributes.
Purpose: | Turns the full-screen mode on or off |
Implemented by: | Client core |
Used by: | top-level client |
Header file: | rmawin.h |
Interface implemented by the client core for use by the top-level client.
![]() |
Additional Information |
---|
See "Chapter 12: Sites (Windowing)". |
The IRMASiteFullScreen
interface contains the following methods:
IRMASiteFullScreen::EnterFullScreen
IRMASiteFullScreen::ExitFullScreen
IRMASiteFullScreen::IsFullScreen
IRMASiteFullScreen::TestFullScreen
As with all COM interfaces, the IRMASiteFullScreen
interface inherits the following IUnknown
methods:
STDMETHOD(EnterFullScreen) (
THIS
) PURE;
STDMETHOD(ExitFullScreen) (
THIS
) PURE;
Indicates the site is in full-screen mode.
STDMETHOD_(BOOL, IsFullScreen) (
THIS
) PURE;
Tests the full-screen mode by displaying a bitmap and determining how fast it can blit.
STDMETHOD(TestFullScreen) (
THIS_
void* hTestBitmap,
const char* pszStatusText
) PURE;
Purpose: | Informs the site manager of new or removed sites |
Implemented by: | Client core |
Used by: | top-level client |
Header file: | rmawin.h |
Interface implemented by the client core for use by the top-level client.
The IRMASiteManager
interface contains the following methods:
As with all COM interfaces, the IRMASiteManager
interface inherits the following IUnknown
methods:
Informs the site manager of the existance of a site.
STDMETHOD(AddSite) (
THIS_
IRMASite* pSite
) PURE;
IRMASite
interface that manages the site that was added.
Informs the site manager that a site is no longer available.
STDMETHOD(RemoveSite) (
THIS_
IRMASite* pSite
) PURE;
IRMASite
interface that managed the site that was removed.
Purpose: | Informs the top-level client when sites are needed or changed |
Implemented by: | Top-level client |
Used by: | Client core |
Header file: | rmawin.h |
Interface implemented by the top-level client for use by the client core.
![]() |
Additional Information |
---|
See "Chapter 12: Sites (Windowing)". |
The IRMASiteSupplier
interface contains the following methods:
IRMASiteSupplier::BeginChangeLayout
IRMASiteSupplier::DoneChangeLayout
IRMASiteSupplier::SitesNeeded
IRMASiteSupplier::SitesNotNeeded
As with all COM interfaces, the IRMASiteSupplier
interface inherits the following IUnknown
methods:
Informs the site supplier a layout change has begun and that it can expect to receive calls to the IRMASiteSupplier::SitesNeeded
and IRMASiteSupplier::SitesNotNeeded
methods while a layout change is in progress.
STDMETHOD(BeginChangeLayout) (
THIS
) PURE;
Informs the site supplier the layout change has been completed.
STDMETHOD(DoneChangeLayout) (
THIS
) PURE;
Informs the site supplier that a site with a particular set of characteristics is needed. If the site supplier can fulfill the request, it should call the site manager and add one or more new sites. The request for sites is associated with a request ID. The client core will inform the site supplier when this requested site is no longer needed.
STDMETHOD(SitesNeeded) (
THIS_
UINT32 uReqestID,
IRMAValues* pSiteProps
) PURE;
IRMAValues
interface that manages the site properties for the requested sites.
Informs the site supplier that all sites from a previous site request are no longer needed. If the site supplier had previously created non-persistant sites (like popup windows) to fulfill a request for sites, it should call the site manager and remove those sites.
STDMETHOD(SitesNotNeeded) (
THIS_
UINT32 uReqestID
) PURE;
Purpose: | Associates a display renderer with a site and informs the renderer of events |
Implemented by: | Display renderer |
Used by: | Client core |
Header file: | rmawin.h |
A display rendering plug-in implements this interface, which the client uses to associate the renderer with a site object and inform it of events. The client queries for this interface if, during initialization, the renderer declares itself to use windows. The renderer's response to IRMASiteUser::NeedsWindowedSite
determines whether it uses IRMASiteWindowed
or IRMASiteWindowless
along with IRMASite
to render data to the site.
![]() |
Additional Information |
---|
See "Chapter 12: Sites (Windowing)". See also IRMASiteUserSupplier .
|
The IRMASiteUser
interface contains the following methods:
IRMASiteUser::AttachSite
IRMASiteUser::DetachSite
IRMASiteUser::HandleEvent
IRMASiteUser::NeedsWindowedSites
As with all COM interfaces, the IRMASiteUser
interface inherits the following IUnknown
methods:
Associates a site interface to the site user interface.
STDMETHOD(AttachSite) (
THIS_
IRMASite* pSite
) PURE;
IRMASite
interface that is to be associated with this IRMASiteUser
interface.
Removes the site interface that was previously associated with this site user interface.
STDMETHOD(DetachSite) (
THIS
) PURE;
Informs the renderer of an event.
STDMETHOD(HandleEvent) (
THIS_
PNxEvent* pEvent
) PURE;
PNxEvent
structure that contains a description of the event.
![]() |
Additional Information |
---|
See "Handling Events". |
Returns TRUE
if the plug-in will render to an operating system-specific window (Windows or Unix). Returns FALSE
if the plug-in will render to a windowless site.
STDMETHOD_(BOOL,NeedsWindowedSites) (
THIS
) PURE;
Purpose: | Determines if a renderer is a site supplier to multiple sites |
Implemented by: | Display renderer |
Used by: | Client core |
Header file: | rmawin.h |
A display rendering plug-in does not implement this interface if it renders solely in a single site (window). If it supports multiple sites, it responds to the client's query for IRMASiteUserSupplier
by querying for that same interface on the Multi-Instance Site User Supplier (MISUS) object, which provides a standard method of rendering to multiple sites. The renderer then renders to a single site (the MISUS object) through IRMASite
and IRMASiteWindowless
. The MISUS object in turn takes care of the overhead of rendering to the multiple site windows.
![]() |
Additional Information |
---|
See "Supporting Multiple Sites". See also
IRMAMultiInstanceSiteUserSupplier .
|
The IRMASiteUserSupplier
interface contains the following methods:
IRMASiteUserSupplier::CreateSiteUser
IRMASiteUserSupplier::DestroySiteUser
IRMASiteUserSupplier::NeedsWindowedSites
As with all COM interfaces, the IRMASiteUserSupplier
interface inherits the following IUnknown
methods:
Creates a site user interface.
STDMETHOD(CreateSiteUser) (
THIS_
REF(IRMASiteUser*) pSiteUser
) PURE;
IRMASiteUser
interface that manages the site user.
Destroys the site user interface.
STDMETHOD(DestroySiteUser) (
THIS_
IRMASiteUser* pSiteUser
) PURE;
IRMASiteUser
interface to destroy.
Returns TRUE
if the plug-in needs a windowed site. Returns FALSE
if the plug-in does not need a windowed site.
STDMETHOD_(BOOL,NeedsWindowedSites) (
THIS
) PURE;