esds_(streamInfo) {
    const ContentType = shaka.util.ManifestParserUtils.ContentType;

    const id = streamInfo.id + 1;
    const channelsCount = streamInfo.stream.channelsCount || 2;
    const audioSamplingRate = streamInfo.stream.audioSamplingRate || 44100;

    const audioCodec = shaka.util.ManifestParserUtils.guessCodecs(
        ContentType.AUDIO, streamInfo.codecs.split(','));

    const samplingFrequencyIndex = {
      96000: 0x0,
      88200: 0x1,
      64000: 0x2,
      48000: 0x3,
      44100: 0x4,
      32000: 0x5,
      24000: 0x6,
      22050: 0x7,
      16000: 0x8,
      12000: 0x9,
      11025: 0xA,
      8000: 0xB,
      7350: 0xC,
    };

    let indexFreq = samplingFrequencyIndex[audioSamplingRate];
    // In HE AAC Sampling frequence equals to SamplingRate * 2
    if (audioCodec === 'mp4a.40.5' || audioCodec === 'mp4a.40.29') {
      indexFreq = samplingFrequencyIndex[audioSamplingRate * 2];
    }

    const audioObjectType = parseInt(audioCodec.split('.').pop(), 10);

    return new Uint8Array([
      0x00, // version
      0x00, 0x00, 0x00, // flags

      // ES_Descriptor
      0x03, // tag, ES_DescriptionTag
      0x19, // length
      ...this.breakNumberIntoBytes_(id, 2), // ES_ID
      0x00, // streamDependenceFlag, URL_flag, reserved, streamPriority

      // DecoderConfigDescriptor
      0x04, // tag, DecoderConfigDescriptionTag
      0x11, // length
      0x40, // object type
      0x15,  // streamType
      0x00, 0x00, 0x00, // bufferSizeDB
      0x00, 0x00, 0x00, 0x00, // maxBitrate
      0x00, 0x00, 0x00, 0x00, // avgBitrate

      // DecoderSpecificInfo
      0x05, // tag, DecoderSpecificInfoTag
      0x02, // length
      // ISO/IEC 14496-3, AudioSpecificConfig
      // for samplingFrequencyIndex see
      // ISO/IEC 13818-7:2006, 8.1.3.2.2, Table 35
      (audioObjectType << 3) | (indexFreq >>> 1),
      (indexFreq << 7) | (channelsCount << 3),
      0x06, 0x01, 0x02, // GASpecificConfig
    ]);
  }
Generate a ESDS box

@param {shaka.util.Mp4Generator.StreamInfo} streamInfo
@return {!Uint8Array}
@private