IWMSPublishingPointLimits::get_PlayerCacheDeliveryRate

The get_PlayerCacheDeliveryRate method retrieves the maximum content-delivery rate that a player can request.

HRESULT get_PlayerCacheDeliveryRate(
  long*  pVal
);

Arguments

pVal

[out] Pointer to a long containing the maximum permitted rate at which a player can request that content be delivered to its cache. A value of 1000 means normal speed. A value of 1500 means 1.5 times normal speed.

Return Value

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code

Number

Description

E_POINTER

0x80004003

Indicates that pVal is a NULL pointer argument.

Remarks

This value determines how much faster than the encoded bit rate the server is allowed to stream content to a player's cache for opportunistic streaming. Opportunistic streaming allows a player to cache additional data whenever the bandwidth of the connection exceeds the encoded bit rate of the on-demand content. This allows the player to minimize the effects of temporary reductions in network throughput. The default value is 5000, meaning content can be delivered at 5 times the encoded bit rate.

Example

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
IWMSServer                  *pServer;
IWMSPublishingPoints        *pPubPoints;
IWMSPublishingPoint         *pPubPoint;
IWMSPublishingPointLimits   *pLimits;

HRESULT         hr;
CComVariant     varIndex;
long            lCount;
long            lValue;

// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
                      NULL,
                      CLSCTX_ALL,
                      IID_IWMSServer,
                      (void **)&pServer);
if (FAILED(hr)) goto EXIT;

// Retrieve a pointer to the IWMSPublishingPoints interface
// and retrieve the total count of publishing points.
hr = pServer->get_PublishingPoints(&pPubPoints);
if (FAILED(hr)) goto EXIT;
hr = pPubPoints->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve information about each publishing point.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPubPoints->get_Item(varIndex, &pPubPoint);
    if (FAILED(hr)) goto EXIT;

    // Retrieve a pointer to the IWMSPublishingPointLimits
    // interface for the publishing point.
    hr = pPubPoint->get_Limits(&pLimits);
    if (FAILED(hr)) goto EXIT;

    // Retrieve the limit for the cache delivery rate to clients.
    hr = pLimits->get_PlayerCacheDeliveryRate(&lValue);
    if (FAILED(hr)) goto EXIT;

    // Release temporary COM objects.
    pPubPoint->Release();
    pLimits->Release();
}

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003 family, Windows Server 2008 family.

See Also

Reference

IWMSPublishingPointLimits Interface