public ChannelLabel[] getLabels() {
   ChannelBox channelBox = Box.findFirst(this, ChannelBox.class, "chan");
   if (channelBox != null) {
     Label[] labels = ChannelUtils.getLabels(channelBox);
     if (channelCount == 2) return translate(translationStereo, labels);
     else return translate(translationSurround, labels);
   } else {
     switch (channelCount) {
       case 1:
         return new ChannelLabel[] {ChannelLabel.MONO};
       case 2:
         return new ChannelLabel[] {ChannelLabel.STEREO_LEFT, ChannelLabel.STEREO_RIGHT};
       case 6:
         return new ChannelLabel[] {
           ChannelLabel.FRONT_LEFT,
           ChannelLabel.FRONT_RIGHT,
           ChannelLabel.CENTER,
           ChannelLabel.LFE,
           ChannelLabel.REAR_LEFT,
           ChannelLabel.REAR_RIGHT
         };
       default:
         ChannelLabel[] lbl = new ChannelLabel[channelCount];
         Arrays.fill(lbl, ChannelLabel.MONO);
         return lbl;
     }
   }
 }
 public Endian getEndian() {
   EndianBox endianBox =
       Box.findFirst(this, EndianBox.class, WaveExtension.fourcc(), EndianBox.fourcc());
   if (endianBox == null) {
     if ("twos".equals(header.getFourcc())) return Endian.BIG_ENDIAN;
     else if ("lpcm".equals(header.getFourcc()))
       return (lpcmFlags & kAudioFormatFlagIsBigEndian) != 0
           ? Endian.BIG_ENDIAN
           : Endian.LITTLE_ENDIAN;
     else if ("sowt".equals(header.getFourcc())) return Endian.LITTLE_ENDIAN;
     else return Endian.BIG_ENDIAN;
   }
   return endianBox.getEndian();
 }