Proxying Broadcast Streams
Previous | Next |
Proxying Broadcast Streams
A broadcast is a shared experience. All of the clients connected to a broadcast receive the same content at approximately the same time, depending on network latency. To minimize network bandwidth, a Windows Media proxy server can split a stream by making a single connection to the upstream server and copying the incoming packets to multiple downstream clients.
A Windows Media proxy server uses a cache proxy broadcast publishing point to proxy a splittable broadcast. The WMS_DATA_CONTAINER_VERSION_ALLOW_STREAM_SPLITTING flag from the WMS_DATA_CONTAINER_VERSION_CACHE_FLAGS enumeration must be set by the upstream server, and the content must not require that the user be authenticated. The flags are stored in a context that is downloaded with the content. Your plug-in can retrieve the flags by using the GetCacheFlags method on the IWMSDataContainerVersion interface. The WMS_CACHE_CONTENT_INFORMATION_DATA_CONTAINER_VERSION value in the cache content information context contains a pointer to the IWMSDataContainerVersion interface.
To avoid unauthorized access, a Windows Media proxy server does not split or cache content from any upstream server that issues an authentication challenge. If the cache plug-in requests that the content be cached, the cache proxy server rejects the request. If the plug-in requests that the content be split, the server forces the request for content to be proxied on demand.
To determine whether the content requested by the client is a broadcast, a cache plug-in can call the GetContentInformation method on the IWMSCacheProxyServer interface. The Windows Media server queries the origin server for information about the requested content and sends the plug-in a pointer to the content information context by calling OnGetContentInformation on the IWMSCacheProxyServerCallback interface. If the WMS_CACHE_CONTENT_INFORMATION_CONTENT_TYPE field in the content information context contains WMS_CACHE_CONTENT_TYPE_BROADCAST, the content is a broadcast.
- Note The WMS_CACHE_CONTENT_INFORMATION_CONTENT_TYPE field can contain any combination of the flags in the WMS_CACHE_CONTENT_TYPE_FLAGS enumeration type.
See Also (General)
See Also (Visual Basic .NET)
- IWMSCacheProxyServer Object (Visual Basic .NET)
- IWMSCacheProxyServerCallback Object (Visual Basic .NET)
- IWMSDataContainerVersion Object (Visual Basic .NET)
See Also (C#)
- IWMSCacheProxyServer Object (C#)
- IWMSCacheProxyServerCallback Object (C#)
- IWMSDataContainerVersion Object (C#)
See Also (C++)
- IWMSCacheProxyServer Interface
- IWMSCacheProxyServerCallback Interface
- IWMSDataContainerVersion Interface
Previous | Next |