Wasabi ExpressPlay SDK for Embedded Systems  1.23.0
Ts2Processors.h
Go to the documentation of this file.
1 /*****************************************************************
2 |
3 | MPEG2 Transport Stream - Processors
4 |
5 | $Id: Ts2Processors.h 296 2014-06-25 11:20:09Z jebaseelir $
6 | Original author: Laurent Grandhomme
7 |
8 | This software is provided to you pursuant to your agreement
9 | with Intertrust Technologies Corporation ("Intertrust").
10 | This software may be used only in accordance with the terms
11 | of the agreement.
12 |
13 | Copyright (c) 2005-2014 by Intertrust. All rights reserved.
14 |
15 ****************************************************************/
16 
17 #ifndef _TS2_PROCESSORS_H_
18 #define _TS2_PROCESSORS_H_
19 
20 /*----------------------------------------------------------------------
21 | includes
22 +---------------------------------------------------------------------*/
23 #include "Atomix.h"
24 #include "Ts2Protection.h"
25 #include "Ts2Config.h"
26 
27 /*----------------------------------------------------------------------
28 | types
29 +---------------------------------------------------------------------*/
40 
41 /*----------------------------------------------------------------------
42 | methods
43 +---------------------------------------------------------------------*/
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 /*----------------------------------------------------------------------
50 | TS2_BbtsBufferEncrypter
51 +---------------------------------------------------------------------*/
81 TS2_EXPORT ATX_Result
82 TS2_BbtsBufferEncrypter_Create(const char* content_id,
83  const ATX_Byte* content_key,
84  const ATX_Byte* common_iv,
85  TS2_TrafficProtectionSystem protection,
86  ATX_UInt32 crypto_period,
87  const char* rights_issuer_url,
88  const char* silent_rights_url,
89  const char* preview_rights_url,
90  ATX_Boolean skip_payload_unit_start,
91  ATX_Boolean single_key_layer,
92  const ATX_Byte* access_criteria,
93  ATX_Size access_criteria_size,
94  TS2_BbtsBufferEncrypter** encrypter);
95 
110 TS2_EXPORT ATX_Result
112  const ATX_Byte* in,
113  ATX_Size in_size,
114  ATX_DataBuffer* out);
115 
125 TS2_EXPORT ATX_Result
127  const char* content_id,
128  const ATX_Byte* content_key);
129 
150 TS2_EXPORT ATX_Result
152  const char* content_id,
153  const ATX_Byte* content_key,
154  const ATX_Byte* access_criteria,
155  ATX_Size access_criteria_size);
156 
157 
163 TS2_EXPORT ATX_Result
165 
166 /*----------------------------------------------------------------------
167 | TS2_BbtsBufferDecrypter
168 +---------------------------------------------------------------------*/
182 TS2_EXPORT ATX_Result
184  TS2_BbtsBufferDecrypter** decrypter);
185 
200 TS2_EXPORT ATX_Result
202  const ATX_Byte* in,
203  ATX_Size in_size,
204  ATX_DataBuffer* out);
205 
210 TS2_EXPORT ATX_Result
212 
213 #ifdef __cplusplus
214 }
215 #endif
216 
217 #endif /* _TS2_PROCESSORS_H_ */
TS2_EXPORT ATX_Result TS2_BbtsBufferDecrypter_Destroy(TS2_BbtsBufferDecrypter *self)
Destroys the specified TS2_BbtsBufferDecrypter object.
TS2_EXPORT ATX_Result TS2_BbtsBufferEncrypter_ResetDrm(TS2_BbtsBufferEncrypter *self, const char *content_id, const ATX_Byte *content_key)
Changes the content ID and content key used to encrypt the data.
TS2_EXPORT ATX_Result TS2_BbtsBufferEncrypter_ResetDrmEx(TS2_BbtsBufferEncrypter *self, const char *content_id, const ATX_Byte *content_key, const ATX_Byte *access_criteria, ATX_Size access_criteria_size)
Changes the content ID, content key used to encrypt the data, and the access_criteria loop...
TS2_EXPORT ATX_Result TS2_BbtsBufferEncrypter_EncryptBuffer(TS2_BbtsBufferEncrypter *self, const ATX_Byte *in, ATX_Size in_size, ATX_DataBuffer *out)
Encrypts a buffer of data, and stores the result in a caller-allocated ATX_DataBuffer.
TS2_EXPORT ATX_Result TS2_BbtsBufferEncrypter_Create(const char *content_id, const ATX_Byte *content_key, const ATX_Byte *common_iv, TS2_TrafficProtectionSystem protection, ATX_UInt32 crypto_period, const char *rights_issuer_url, const char *silent_rights_url, const char *preview_rights_url, ATX_Boolean skip_payload_unit_start, ATX_Boolean single_key_layer, const ATX_Byte *access_criteria, ATX_Size access_criteria_size, TS2_BbtsBufferEncrypter **encrypter)
Creates an instance of a TS2_BbtsBufferEncrypter object that uses buffers for the operation of encryp...
TS2_EXPORT ATX_Result TS2_BbtsBufferDecrypter_Create(TS2_CryptoInterface *crypto_interface, TS2_BbtsBufferDecrypter **decrypter)
Creates a TS2_BbtsBufferDecrypter object that uses buffers for the operation of decrypting BBTS conte...
#define TS2_EXPORT
Definition: Ts2Config.h:67
Clients of the MPEG-2 TS SDK API must implement the following interface (TS2_CryptoInterface) to prov...
Definition: Ts2Protection.h:118
struct TS2_BbtsBufferEncrypter TS2_BbtsBufferEncrypter
A TS2_BbtsBufferEncrypter object can be used to encrypt MPEG-2 TS content to obtain BBTS content...
Definition: Ts2Processors.h:34
struct TS2_BbtsBufferDecrypter TS2_BbtsBufferDecrypter
A TS2_BbtsBufferDecrypter object can be used to decrypt BBTS content to obtain MPEG-2 TS content...
Definition: Ts2Processors.h:39
TS2_TrafficProtectionSystem
Definition: Ts2Protection.h:334
TS2_EXPORT ATX_Result TS2_BbtsBufferEncrypter_Destroy(TS2_BbtsBufferEncrypter *self)
Destroys the specified TS2_BbtsBufferEncrypter object.
TS2_EXPORT ATX_Result TS2_BbtsBufferDecrypter_DecryptBuffer(TS2_BbtsBufferDecrypter *self, const ATX_Byte *in, ATX_Size in_size, ATX_DataBuffer *out)
Decrypts a buffer of data, and stores the result in a caller-allocated ATX_DataBuffer.