Wasabi ExpressPlay SDK for Desktop Systems  1.23.0
Data Structures | Macros | Typedefs | Enumerations | Functions
WsbPlaylistProxy.h File Reference

Wasabi Playlist Proxy API. More...

#include "WsbResults.h"
#include "WsbTypes.h"

Go to the source code of this file.

Data Structures

struct  WSB_PlaylistProxy_MediaSourceParams
 Playlist Proxy URL parameters. More...
 
struct  WSB_PlaylistProxy_Event
 Event base class. More...
 
struct  WSB_PlaylistProxy_ErrorNotificationEvent
 Error notification event. More...
 
struct  WSB_PlaylistProxy_EventListener
 This structure pairs a listener instance value with a function pointer for receiving events. More...
 

Macros

#define WSB_PP_FLAG_ENCRYPTED_HLS   (1<<0)
 Make Playlist Proxy produce encrypted HLS content. More...
 
#define WSB_PP_FLAG_AUTH_TOKEN_HEADER   (1<<1)
 Make Playlist Proxy require client authentication token in the request HTTP header 'Wasabi-AuthToken'. More...
 
#define WSB_PP_FLAG_SESSION_KEY   (1<<2)
 Enables HLS AES-128 encryption key access through the HLS Key Tag line with a URL served by the Proxy. More...
 
#define WSB_PP_FLAG_BLOCK_FOR_LICENSE_IMPLICIT   (1<<3)
 Instruct proxy not to perform license lookup and evaluation until client requests protected fragments. More...
 
#define WSB_PP_FLAG_BLOCK_FOR_LICENSE_EXPLICIT   (1<<4)
 Instruct proxy not to perform license lookup and evaluation until the application invokes WSB_PlaylistProxy_UnblockForLicense. More...
 
#define WSB_PP_FLAG_NO_SHORT_URLS   (1<<5)
 Disable the mapping of proxy URLs to short URLs. More...
 
#define WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT   (1<<6)
 Allow HTTP client external to the device. More...
 
#define WSB_PP_FLAG_FAIRPLAY_ENCRYPTED_HLS   (1<<7)
 Make Playlist Proxy produce Fairplay encrypted HLS content. More...
 
#define WSB_PP_FLAG_DEMUXED_HLS   (1<<8)
 Make Playlist Proxy produce Demuxed Clear HLS content. More...
 

Typedefs

typedef struct WSB_PlaylistProxy WSB_PlaylistProxy
 

Enumerations

enum  WSB_PlaylistProxy_MediaSourceType {
  WSB_PPMST_SINGLE_FILE,
  WSB_PPMST_HLS,
  WSB_PPMST_DASH
}
 The media source type: More...
 
enum  WSB_PlaylistProxy_TrackSelector {
  WSB_PP_TRACK_ANY = 0,
  WSB_PP_TRACK_BY_ID,
  WSB_PP_TRACK_BY_INDEX
}
 Media track selector mode. More...
 
enum  WSB_PlaylistProxy_LicenseType {
  WSB_PPLT_NONE,
  WSB_PPLT_MS3_SURL,
  WSB_PPLT_BB_TOKEN
}
 
enum  WSB_PlaylistProxy_EventType { WSB_PPET_ERROR_NOTIFICATION = 0 }
 Event type. More...
 
enum  WSB_PlaylistProxySessionKeyFormat {
  WSB_PPSKF_CLEAR,
  WSB_PPSKF_SKB
}
 The session key format enum. More...
 

Functions

WSB_EXPORT WSB_Result WSB_PlaylistProxy_Create (WSB_PlaylistProxy **self)
 Create a playlist proxy instance. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_CreateWithFlags (WSB_UInt32 flags, WSB_PlaylistProxy **self)
 Create a playlist proxy instance with additional behavior selected through the flags. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_CreateWithListener (WSB_UInt32 flags, const WSB_PlaylistProxy_EventListener listener, WSB_PlaylistProxy **self)
 Create a playlist proxy instance with additional behavior selected through the flags and optional event listener that will receive the event callbacks. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_Destroy (WSB_PlaylistProxy *self)
 Destroy a playlist proxy instance. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_Start (WSB_PlaylistProxy *self)
 Start proxy execution. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_UnblockForLicense (WSB_PlaylistProxy *self, WSB_PlaylistProxy_LicenseType type, const void *license_data, WSB_Size license_length)
 Notify the proxy to proceed with license lookup and evaluation. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_Stop (WSB_PlaylistProxy *self)
 Stop proxy execution. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_GetAndClearLastError (WSB_PlaylistProxy *self)
 Return the most recent Wasabi error (if any) detected by the proxy threads and clear it. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_MakeUrl (WSB_PlaylistProxy *self, const char *media_source, WSB_PlaylistProxy_MediaSourceType media_source_type, const WSB_PlaylistProxy_MediaSourceParams *media_source_params, const char **http_url)
 Create an HTTP url that points to the proxy. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_GetAuthToken (WSB_PlaylistProxy *self, char *auth_token, WSB_Size *token_size)
 Obtain the current Playlist Proxy authentication token. More...
 
WSB_EXPORT WSB_Result WSB_PlaylistProxy_GetSessionKey (WSB_PlaylistProxy *self, WSB_PlaylistProxySessionKeyFormat key_format, WSB_Byte *key, WSB_Size *key_size)
 Obtain the current Playlist Proxy session key. More...
 

Detailed Description

Wasabi Playlist Proxy API.

An HLS proxy for Marlin protected content.

An HTTP proxy server providing HLS Playlist and/or clear MPEG2 TS streams for the corresponding Marlin protected DASH, HLS, BBTS and PDCF/M4F streams. An iOS or Android native media player can be pointed to such a proxy with a Playlist URL. Additionally, any other content can be accessed through the Playlist Proxy when packaged as DCF.

NOTE: the BB license or MS3 SAS used with DCF must relax the default Marlin output controls or the content will not be decrypted. This requires the SAS to carry an MS3 extension (of type 'wudo') or a the Marlin Broadband license to indicate a Marlin Broadband output control override (type 'urn:marlin:organization:intertrust:wudo').

The WSB_PlaylistProxy functionality is available on platforms running iOS and Android.