Wasabi ExpressPlay SDK for Embedded Systems  1.23.0
Data Structures | Macros | Functions
Ts2Marlin.h File Reference
#include "Ts2Descriptors.h"
#include "Ts2Tables.h"
#include "Ts2Iec62455.h"
#include "Ts2Protection.h"

Go to the source code of this file.

Data Structures

struct  TS2_MarlinRightsInfo
 
struct  TS2_MarlinRightsTable
 

Macros

#define TS2_MARLIN_CA_SYSTEM_ID   0x4AF4
 
#define TS2_MARLIN_MAC_SEED   "MRL-BBTS-AUTH-KEY-10"
 
#define TS2_MARLIN_RIGHTS_TABLE_ID   0x82
 
#define TS2_MARLIN_SILENT_METHOD_ON_DEMAND   0x00
 
#define TS2_MARLIN_SILENT_METHOD_IN_ADVANCE   0x01
 
#define TS2_KEY_DERIVATION_FUNCTION_NONE   0
 
#define TS2_KEY_DERIVATION_FUNCTION_TRUNCATED_SHA1   1
 

Functions

TS2_CADescriptorTS2_GetMarlinCADescriptorFromPMT (const TS2_PMT *pmt)
 
TS2_CADescriptorTS2_GetMarlinCADescriptorFromCAT (const TS2_CAT *cat)
 
ATX_Result TS2_MarlinCADescriptor_Create (ATX_UInt16 pid, const char *base_cid, ATX_Boolean single_key_layer, TS2_TrafficProtectionSystem protection, TS2_CADescriptor **desc)
 Create a Marlin BBTS CA Descriptor object. More...
 
ATX_Result TS2_MarlinCADescriptor_GetBaseContentIdAndProtection (const TS2_CADescriptor *marlin_desc, ATX_String *base_cid, TS2_TrafficProtectionSystem *protection, ATX_UInt32 *kdf_type)
 
ATX_Result TS2_GetMarlinContentIdFromKSM (const char *cid_base, const TS2_KSM *ksm, ATX_String *cid)
 
ATX_Result TS2_GetMarlinContentIdAndProtectionFromKSM (const char *cid_base, const TS2_KSM *ksm, ATX_String *cid, TS2_TrafficProtectionSystem *protection)
 
ATX_Result TS2_ParseContentId (const char *content_id, ATX_String *cid_base, ATX_Byte *cid_extension, ATX_Boolean *is_service)
 
TS2_EXPORT ATX_Result TS2_MarlinRightsTable_Construct (TS2_MarlinRightsTable *self)
 
ATX_Boolean TS2_MarlinRightsTable_IsEmpty (TS2_MarlinRightsTable *self)
 
ATX_Result TS2_VerifyMarlinKSM (const ATX_Byte *drm_key, const TS2_KSM *ksm)
 

Macro Definition Documentation

◆ TS2_KEY_DERIVATION_FUNCTION_NONE

#define TS2_KEY_DERIVATION_FUNCTION_NONE   0

◆ TS2_KEY_DERIVATION_FUNCTION_TRUNCATED_SHA1

#define TS2_KEY_DERIVATION_FUNCTION_TRUNCATED_SHA1   1

◆ TS2_MARLIN_CA_SYSTEM_ID

#define TS2_MARLIN_CA_SYSTEM_ID   0x4AF4

◆ TS2_MARLIN_MAC_SEED

#define TS2_MARLIN_MAC_SEED   "MRL-BBTS-AUTH-KEY-10"

◆ TS2_MARLIN_RIGHTS_TABLE_ID

#define TS2_MARLIN_RIGHTS_TABLE_ID   0x82

◆ TS2_MARLIN_SILENT_METHOD_IN_ADVANCE

#define TS2_MARLIN_SILENT_METHOD_IN_ADVANCE   0x01

◆ TS2_MARLIN_SILENT_METHOD_ON_DEMAND

#define TS2_MARLIN_SILENT_METHOD_ON_DEMAND   0x00

Function Documentation

◆ TS2_GetMarlinCADescriptorFromCAT()

TS2_CADescriptor* TS2_GetMarlinCADescriptorFromCAT ( const TS2_CAT cat)

◆ TS2_GetMarlinCADescriptorFromPMT()

TS2_CADescriptor* TS2_GetMarlinCADescriptorFromPMT ( const TS2_PMT pmt)

◆ TS2_GetMarlinContentIdAndProtectionFromKSM()

ATX_Result TS2_GetMarlinContentIdAndProtectionFromKSM ( const char *  cid_base,
const TS2_KSM ksm,
ATX_String *  cid,
TS2_TrafficProtectionSystem protection 
)

◆ TS2_GetMarlinContentIdFromKSM()

ATX_Result TS2_GetMarlinContentIdFromKSM ( const char *  cid_base,
const TS2_KSM ksm,
ATX_String *  cid 
)

◆ TS2_MarlinCADescriptor_Create()

ATX_Result TS2_MarlinCADescriptor_Create ( ATX_UInt16  pid,
const char *  base_cid,
ATX_Boolean  single_key_layer,
TS2_TrafficProtectionSystem  protection,
TS2_CADescriptor **  desc 
)

Create a Marlin BBTS CA Descriptor object.

The object must be destroyed using TS2_KSM_Destroy once no longer needed.

Parameters
pidthe Program ID for the ECM TS packets.
base_cidthe based portion of the Marlin content ID (0 terminated), can be NULL.
single_key_layerthe BBTS Single Key Layer flag (ATX_TRUE or ATX_FALSE).
protectionthe traffic protection system.
descaddress of the pointer where the newly created Marlin CA Descriptor object is returned.

◆ TS2_MarlinCADescriptor_GetBaseContentIdAndProtection()

ATX_Result TS2_MarlinCADescriptor_GetBaseContentIdAndProtection ( const TS2_CADescriptor marlin_desc,
ATX_String *  base_cid,
TS2_TrafficProtectionSystem protection,
ATX_UInt32 *  kdf_type 
)

◆ TS2_MarlinRightsTable_Construct()

TS2_EXPORT ATX_Result TS2_MarlinRightsTable_Construct ( TS2_MarlinRightsTable self)

◆ TS2_MarlinRightsTable_IsEmpty()

ATX_Boolean TS2_MarlinRightsTable_IsEmpty ( TS2_MarlinRightsTable self)

◆ TS2_ParseContentId()

ATX_Result TS2_ParseContentId ( const char *  content_id,
ATX_String *  cid_base,
ATX_Byte *  cid_extension,
ATX_Boolean *  is_service 
)

◆ TS2_VerifyMarlinKSM()

ATX_Result TS2_VerifyMarlinKSM ( const ATX_Byte *  drm_key,
const TS2_KSM ksm 
)