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 callingOnGetContentInformation 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)
IWMSCacheProxyServerIWMSCacheProxyServer Object (Visual Basic .NET)
IWMSCacheProxyServerCallbackIWMSCacheProxyServerCallback Object (Visual Basic .NET)
IWMSDataContainerVersionIWMSDataContainerVersion Object (Visual Basic .NET)
See Also (C#)
IWMSCacheProxyServerIWMSCacheProxyServer Object (C#)
IWMSCacheProxyServerCallbackIWMSCacheProxyServerCallback Object (C#)
IWMSDataContainerVersionIWMSDataContainerVersion Object (C#)
See Also (C++)
IWMSCacheProxyServerIWMSCacheProxyServer Interface
IWMSCacheProxyServerCallbackIWMSCacheProxyServerCallback Interface
IWMSDataContainerVersionIWMSDataContainerVersion Interface