OLD | NEW |
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 | 5 |
6 /* From private/ppb_content_decryptor_private.idl, | 6 /* From private/ppb_content_decryptor_private.idl, |
7 * modified Thu Jun 5 13:39:15 2014. | 7 * modified Mon Aug 25 13:52:39 2014. |
8 */ | 8 */ |
9 | 9 |
10 #ifndef PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ | 10 #ifndef PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ |
11 #define PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ | 11 #define PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ |
12 | 12 |
13 #include "ppapi/c/pp_bool.h" | 13 #include "ppapi/c/pp_bool.h" |
14 #include "ppapi/c/pp_instance.h" | 14 #include "ppapi/c/pp_instance.h" |
15 #include "ppapi/c/pp_macros.h" | 15 #include "ppapi/c/pp_macros.h" |
16 #include "ppapi/c/pp_resource.h" | 16 #include "ppapi/c/pp_resource.h" |
17 #include "ppapi/c/pp_stdint.h" | 17 #include "ppapi/c/pp_stdint.h" |
| 18 #include "ppapi/c/pp_time.h" |
18 #include "ppapi/c/pp_var.h" | 19 #include "ppapi/c/pp_var.h" |
19 #include "ppapi/c/private/pp_content_decryptor.h" | 20 #include "ppapi/c/private/pp_content_decryptor.h" |
20 | 21 |
21 #define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 \ | 22 #define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 \ |
22 "PPB_ContentDecryptor_Private;0.12" | 23 "PPB_ContentDecryptor_Private;0.12" |
23 #define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE \ | 24 #define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE \ |
24 PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 | 25 PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 |
25 | 26 |
26 /** | 27 /** |
27 * @file | 28 * @file |
(...skipping 15 matching lines...) Expand all Loading... |
43 * Media Extensions: http://www.w3.org/TR/encrypted-media/ | 44 * Media Extensions: http://www.w3.org/TR/encrypted-media/ |
44 */ | 45 */ |
45 struct PPB_ContentDecryptor_Private_0_12 { | 46 struct PPB_ContentDecryptor_Private_0_12 { |
46 /** | 47 /** |
47 * A promise has been resolved by the CDM. | 48 * A promise has been resolved by the CDM. |
48 * | 49 * |
49 * @param[in] promise_id Identifies the promise that the CDM resolved. | 50 * @param[in] promise_id Identifies the promise that the CDM resolved. |
50 */ | 51 */ |
51 void (*PromiseResolved)(PP_Instance instance, uint32_t promise_id); | 52 void (*PromiseResolved)(PP_Instance instance, uint32_t promise_id); |
52 /** | 53 /** |
53 * A promise has been resolved by the CDM. | 54 * A promise that resulted in a new session has been resolved by the CDM. |
54 * | 55 * |
55 * @param[in] promise_id Identifies the promise that the CDM resolved. | 56 * @param[in] promise_id Identifies the promise that the CDM resolved. |
56 * | 57 * |
57 * @param[in] web_session_id A <code>PP_Var</code> of type | 58 * @param[in] web_session_id A <code>PP_Var</code> of type |
58 * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute. | 59 * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute. |
59 */ | 60 */ |
60 void (*PromiseResolvedWithSession)(PP_Instance instance, | 61 void (*PromiseResolvedWithSession)(PP_Instance instance, |
61 uint32_t promise_id, | 62 uint32_t promise_id, |
62 struct PP_Var web_session_id); | 63 struct PP_Var web_session_id); |
63 /** | 64 /** |
| 65 * A promise that returns a set of key IDs has been resolved by the CDM. |
| 66 * |
| 67 * @param[in] promise_id Identifies the promise that the CDM resolved. |
| 68 * |
| 69 * @param[in] key_ids A <code>PP_Var</code> of type |
| 70 * <code>PP_VARTYPE_ARRAY</code> containing elements of type |
| 71 * <code>PP_VARTYPE_ARRAYBUFFER</code> that are the session's usable key IDs. |
| 72 */ |
| 73 void (*PromiseResolvedWithKeyIds)(PP_Instance instance, |
| 74 uint32_t promise_id, |
| 75 struct PP_Var key_ids_array); |
| 76 /** |
64 * A promise has been rejected by the CDM due to an error. | 77 * A promise has been rejected by the CDM due to an error. |
65 * | 78 * |
66 * @param[in] promise_id Identifies the promise that the CDM rejected. | 79 * @param[in] promise_id Identifies the promise that the CDM rejected. |
67 * | 80 * |
68 * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing | 81 * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing |
69 * the exception code. | 82 * the exception code. |
70 * | 83 * |
71 * @param[in] system_code A system error code. | 84 * @param[in] system_code A system error code. |
72 * | 85 * |
73 * @param[in] error_description A <code>PP_Var</code> of type | 86 * @param[in] error_description A <code>PP_Var</code> of type |
(...skipping 12 matching lines...) Expand all Loading... |
86 * on the <code>PPP_ContentDecryptor_Private</code> interface, the plugin | 99 * on the <code>PPP_ContentDecryptor_Private</code> interface, the plugin |
87 * must send a message containing the license request. | 100 * must send a message containing the license request. |
88 * | 101 * |
89 * Note that <code>SessionMessage()</code> can be used for purposes other than | 102 * Note that <code>SessionMessage()</code> can be used for purposes other than |
90 * responses to <code>CreateSession()</code> calls. See also the text | 103 * responses to <code>CreateSession()</code> calls. See also the text |
91 * in the comment for <code>SessionReady()</code>, which describes a sequence | 104 * in the comment for <code>SessionReady()</code>, which describes a sequence |
92 * of <code>UpdateSession()</code> and <code>SessionMessage()</code> calls | 105 * of <code>UpdateSession()</code> and <code>SessionMessage()</code> calls |
93 * required to prepare for decryption. | 106 * required to prepare for decryption. |
94 * | 107 * |
95 * @param[in] web_session_id A <code>PP_Var</code> of type | 108 * @param[in] web_session_id A <code>PP_Var</code> of type |
96 * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute for | 109 * <code>PP_VARTYPE_STRING</code> containing the ID of a session for |
97 * which the message is intended. | 110 * which this message is intended. |
98 * | 111 * |
99 * @param[in] message A <code>PP_Var</code> of type | 112 * @param[in] message A <code>PP_Var</code> of type |
100 * <code>PP_VARTYPE_ARRAY_BUFFER</code> that contains the message. | 113 * <code>PP_VARTYPE_ARRAY_BUFFER</code> that contains the message. |
101 * | 114 * |
102 * @param[in] destination_url A <code>PP_Var</code> of type | 115 * @param[in] destination_url A <code>PP_Var</code> of type |
103 * <code>PP_VARTYPE_STRING</code> containing the destination URL for the | 116 * <code>PP_VARTYPE_STRING</code> containing the destination URL for the |
104 * message. | 117 * message. |
105 */ | 118 */ |
106 void (*SessionMessage)(PP_Instance instance, | 119 void (*SessionMessage)(PP_Instance instance, |
107 struct PP_Var web_session_id, | 120 struct PP_Var web_session_id, |
108 struct PP_Var message, | 121 struct PP_Var message, |
109 struct PP_Var destination_url); | 122 struct PP_Var destination_url); |
110 /** | 123 /** |
| 124 * The keys for a session have changed. |
| 125 * |
| 126 * @param[in] web_session_id A <code>PP_Var</code> of type |
| 127 * <code>PP_VARTYPE_STRING</code> containing the ID of the session that has |
| 128 * a change in keys. |
| 129 * |
| 130 * @param[in] has_additional_usable_key A <code>PP_Bool</code> indicating if |
| 131 * a new usable key has been added. |
| 132 */ |
| 133 void (*SessionKeysChange)(PP_Instance instance, |
| 134 struct PP_Var web_session_id, |
| 135 PP_Bool has_additional_usable_key); |
| 136 /** |
| 137 * The expiration time for a session has changed. |
| 138 * |
| 139 * @param[in] web_session_id A <code>PP_Var</code> of type |
| 140 * <code>PP_VARTYPE_STRING</code> containing the ID of the session that has |
| 141 * a new expiration time. |
| 142 * |
| 143 * @param[in] new_expiry_time A <code>PP_Time</code> indicating the new |
| 144 * expiry time of the session. The value is defined as the number of seconds |
| 145 * since the Epoch (00:00:00 UTC, January 1, 1970). |
| 146 */ |
| 147 void (*SessionExpirationChange)(PP_Instance instance, |
| 148 struct PP_Var web_session_id, |
| 149 PP_Time new_expiry_time); |
| 150 /** |
111 * The session is now ready to decrypt the media stream. | 151 * The session is now ready to decrypt the media stream. |
112 * | 152 * |
113 * Note: The above describes the most simple case. Depending on the key | 153 * Note: The above describes the most simple case. Depending on the key |
114 * system, a series of <code>SessionMessage()</code> calls from the CDM will | 154 * system, a series of <code>SessionMessage()</code> calls from the CDM will |
115 * be sent to the browser, and then on to the web application. The web | 155 * be sent to the browser, and then on to the web application. The web |
116 * application must then provide more data to the CDM by directing the browser | 156 * application must then provide more data to the CDM by directing the browser |
117 * to pass the data to the CDM via calls to <code>UpdateSession()</code> on | 157 * to pass the data to the CDM via calls to <code>UpdateSession()</code> on |
118 * the <code>PPP_ContentDecryptor_Private</code> interface. | 158 * the <code>PPP_ContentDecryptor_Private</code> interface. |
119 * The CDM must call <code>SessionReady()</code> when the sequence is | 159 * The CDM must call <code>SessionReady()</code> when the sequence is |
120 * completed, and, in response, the browser must notify the web application. | 160 * completed, and, in response, the browser must notify the web application. |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 const struct PP_DecryptedSampleInfo* decrypted_sample_info); | 325 const struct PP_DecryptedSampleInfo* decrypted_sample_info); |
286 }; | 326 }; |
287 | 327 |
288 typedef struct PPB_ContentDecryptor_Private_0_12 PPB_ContentDecryptor_Private; | 328 typedef struct PPB_ContentDecryptor_Private_0_12 PPB_ContentDecryptor_Private; |
289 /** | 329 /** |
290 * @} | 330 * @} |
291 */ | 331 */ |
292 | 332 |
293 #endif /* PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ */ | 333 #endif /* PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_ */ |
294 | 334 |
OLD | NEW |