addSpecificBoxProcessor_() {
    // eslint-disable-next-line no-restricted-syntax
    this.isoBoxer_.addBoxProcessor('saio', function() {
      // eslint-disable-next-line no-invalid-this
      const box = /** @type {!ISOBox} */(this);
      box._procFullBox();
      if (box.flags & 1) {
        box._procField('aux_info_type', 'uint', 32);
        box._procField('aux_info_type_parameter', 'uint', 32);
      }
      box._procField('entry_count', 'uint', 32);
      box._procFieldArray('offset', box.entry_count, 'uint',
          (box.version === 1) ? 64 : 32);
    });
    // eslint-disable-next-line no-restricted-syntax
    this.isoBoxer_.addBoxProcessor('saiz', function() {
      // eslint-disable-next-line no-invalid-this
      const box = /** @type {!ISOBox} */(this);
      box._procFullBox();
      if (box.flags & 1) {
        box._procField('aux_info_type', 'uint', 32);
        box._procField('aux_info_type_parameter', 'uint', 32);
      }
      box._procField('default_sample_info_size', 'uint', 8);
      box._procField('sample_count', 'uint', 32);
      if (box.default_sample_info_size === 0) {
        box._procFieldArray('sample_info_size',
            box.sample_count, 'uint', 8);
      }
    });
    // eslint-disable-next-line no-restricted-syntax
    const sencProcessor = function() {
      // eslint-disable-next-line no-invalid-this
      const box = /** @type {!ISOBox} */(this);
      box._procFullBox();
      if (box.flags & 1) {
        box._procField('AlgorithmID', 'uint', 24);
        box._procField('IV_size', 'uint', 8);
        box._procFieldArray('KID', 16, 'uint', 8);
      }
      box._procField('sample_count', 'uint', 32);
      // eslint-disable-next-line no-restricted-syntax
      box._procEntries('entry', box.sample_count, function(entry) {
        // eslint-disable-next-line no-invalid-this
        const boxEntry = /** @type {!ISOBox} */(this);
        boxEntry._procEntryField(entry, 'InitializationVector', 'data', 8);
        if (boxEntry.flags & 2) {
          boxEntry._procEntryField(entry, 'NumberOfEntries', 'uint', 16);
          boxEntry._procSubEntries(entry, 'clearAndCryptedData',
              // eslint-disable-next-line no-restricted-syntax
              entry.NumberOfEntries, function(clearAndCryptedData) {
                // eslint-disable-next-line no-invalid-this
                const subBoxEntry = /** @type {!ISOBox} */(this);
                subBoxEntry._procEntryField(clearAndCryptedData,
                    'BytesOfClearData', 'uint', 16);
                subBoxEntry._procEntryField(clearAndCryptedData,
                    'BytesOfEncryptedData', 'uint', 32);
              });
        }
      });
    };
    this.isoBoxer_.addBoxProcessor('senc', sencProcessor);
    // eslint-disable-next-line no-restricted-syntax
    this.isoBoxer_.addBoxProcessor('uuid', function() {
      const MssTransmuxer = shaka.transmuxer.MssTransmuxer;
      // eslint-disable-next-line no-invalid-this
      const box = /** @type {!ISOBox} */(this);
      let isSENC = true;
      for (let i = 0; i < 16; i++) {
        if (box.usertype[i] !== MssTransmuxer.UUID_SENC_[i]) {
          isSENC = false;
        }
        // Add support for other user types here
      }

      if (isSENC) {
        if (box._parsing) {
          // Convert this box to sepiff for later processing.
          // See processMediaSegment_ function.
          box.type = 'sepiff';
        }
        // eslint-disable-next-line no-restricted-syntax, no-invalid-this
        sencProcessor.call(/** @type {!ISOBox} */(this));
      }
    });
  }
Add specific box processor for codem-isoboxer

@private