/**@class android.media.MediaCodec.CryptoInfo
@extends java.lang.Object

 Metadata describing the structure of an encrypted input sample.
 <p>
 A buffer's data is considered to be partitioned into "subSamples". Each subSample starts with
 a run of plain, unencrypted bytes followed by a run of encrypted bytes. Either of these runs
 may be empty. If pattern encryption applies, each of the encrypted runs is encrypted only
 partly, according to a repeating pattern of "encrypt" and "skip" blocks.
 {@link #numBytesOfClearData} can be null to indicate that all data is encrypted, and
 {@link #numBytesOfEncryptedData} can be null to indicate that all data is clear. At least one
 of {@link #numBytesOfClearData} and {@link #numBytesOfEncryptedData} must be non-null.
 <p>
 This information encapsulates per-sample metadata as outlined in ISO/IEC FDIS 23001-7:2016
 "Common encryption in ISO base media file format files".
 <p>
 <h3>ISO-CENC Schemes</h3>
 ISO/IEC FDIS 23001-7:2016 defines four possible schemes by which media may be encrypted,
 corresponding to each possible combination of an AES mode with the presence or absence of
 patterned encryption.

 <table style="width: 0%">
   <thead>
     <tr>
       <th>&nbsp;</th>
       <th>AES-CTR</th>
       <th>AES-CBC</th>
     </tr>
   </thead>
   <tbody>
     <tr>
       <th>Without Patterns</th>
       <td>cenc</td>
       <td>cbc1</td>
     </tr><tr>
       <th>With Patterns</th>
       <td>cens</td>
       <td>cbcs</td>
     </tr>
   </tbody>
 </table>

 For {@code CryptoInfo}, the scheme is selected implicitly by the combination of the
 {@link #mode} field and the value set with {@link #setPattern}. For the pattern, setting the
 pattern to all zeroes (that is, both {@code blocksToEncrypt} and {@code blocksToSkip} are
 zero) is interpreted as turning patterns off completely. A scheme that does not use patterns
 will be selected, either cenc or cbc1. Setting the pattern to any nonzero value will choose
 one of the pattern-supporting schemes, cens or cbcs. The default pattern if
 {@link #setPattern} is never called is all zeroes.
 <p>
 <h4>HLS SAMPLE-AES Audio</h4>
 HLS SAMPLE-AES audio is encrypted in a manner compatible with the cbcs scheme, except that it
 does not use patterned encryption. However, if {@link #setPattern} is used to set the pattern
 to all zeroes, this will be interpreted as selecting the cbc1 scheme. The cbc1 scheme cannot
 successfully decrypt HLS SAMPLE-AES audio because of differences in how the IVs are handled.
 For this reason, it is recommended that a pattern of {@code 1} encrypted block and {@code 0}
 skip blocks be used with HLS SAMPLE-AES audio. This will trigger decryption to use cbcs mode
 while still decrypting every block.
*/
var CryptoInfo = {

/** The number of subSamples that make up the buffer's contents.
*/
numSubSamples : "null",
/** The number of leading unencrypted bytes in each subSample. If null, all bytes are treated
 as encrypted and {@link #numBytesOfEncryptedData} must be specified.
*/
numBytesOfClearData : "null",
/** The number of trailing encrypted bytes in each subSample. If null, all bytes are treated
 as clear and {@link #numBytesOfClearData} must be specified.
*/
numBytesOfEncryptedData : "null",
/** A 16-byte key id
*/
key : "null",
/** A 16-byte initialization vector
*/
iv : "null",
/** The type of encryption that has been applied,
 see {@link #CRYPTO_MODE_UNENCRYPTED}, {@link #CRYPTO_MODE_AES_CTR}
 and {@link #CRYPTO_MODE_AES_CBC}
*/
mode : "null",
/**Set the subsample count, clear/encrypted sizes, key, IV and mode fields of
 a {@link android.media.MediaCodec.CryptoInfo} instance.
*/
set : function(  ) {},

/**Set the encryption pattern on a {@link android.media.MediaCodec.CryptoInfo} instance.
 See {@link android.media.MediaCodec.CryptoInfo.Pattern}.
*/
setPattern : function(  ) {},

/**
*/
toString : function(  ) {},


};