Exemplo n.º 1
0
 public static byte[] parseChildNalUnit(ParsableByteArray parsablebytearray)
 {
     int i = parsablebytearray.readUnsignedShort();
     int j = parsablebytearray.getPosition();
     parsablebytearray.skipBytes(i);
     return CodecSpecificDataUtil.buildNalUnit(parsablebytearray.data, j, i);
 }
Exemplo n.º 2
0
  /**
   * Returns the AC-3 format given {@code data} containing the EC3SpecificBox according to ETSI TS
   * 102 366 Annex F.
   */
  public static MediaFormat parseAnnexFEAc3Format(ParsableByteArray data) {
    data.skipBytes(2); // Skip data_rate and num_ind_sub.

    // Read only the first substream.
    // TODO: Read later substreams?
    // fscod (sample rate code)
    int fscod = (data.readUnsignedByte() & 0xC0) >> 6;
    int sampleRate = SAMPLE_RATES[fscod];
    int nextByte = data.readUnsignedByte();
    // Map acmod (audio coding mode) onto a channel count.
    int channelCount = CHANNEL_COUNTS[(nextByte & 0x0E) >> 1];
    // lfeon (low frequency effects on)
    if ((nextByte & 0x01) != 0) {
      channelCount++;
    }
    return MediaFormat.createAudioFormat(
        MimeTypes.AUDIO_EC3, MediaFormat.NO_VALUE, channelCount, sampleRate, null);
  }