diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AudioFormat.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AudioFormat.java index fb421b76e2..94d5ef6d43 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AudioFormat.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AudioFormat.java @@ -39,7 +39,9 @@ public class AudioFormat { public int getSamplesPerSecond() { return byteBuffer.getInt(4); } - // 8 - nAvgBytesPerSec(uint) + public int getAvgBytesPerSec() { + return byteBuffer.getInt(8); + } // 12 - nBlockAlign // public int getBlockAlign() { // return byteBuffer.getShort(12); diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AviExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AviExtractor.java index 8a3beaa27c..dee13c84ed 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AviExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/avi/AviExtractor.java @@ -272,10 +272,13 @@ public class AviExtractor implements Extractor { final TrackOutput trackOutput = output.track(streamId, C.TRACK_TYPE_AUDIO); final String mimeType = audioFormat.getMimeType(); builder.setSampleMimeType(mimeType); - //builder.setCodecs(audioFormat.getCodec()); builder.setChannelCount(audioFormat.getChannels()); builder.setSampleRate(audioFormat.getSamplesPerSecond()); - if (audioFormat.getFormatTag() == AudioFormat.WAVE_FORMAT_PCM) { + final int bytesPerSecond = audioFormat.getAvgBytesPerSec(); + if (bytesPerSecond != 0) { + builder.setAverageBitrate(bytesPerSecond * 8); + } + if (MimeTypes.AUDIO_RAW.equals(mimeType)) { final short bps = audioFormat.getBitsPerSample(); if (bps == 8) { builder.setPcmEncoding(C.ENCODING_PCM_8BIT); diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/avi/AudioFormatTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/avi/AudioFormatTest.java index cc1860749c..d01e5e3fd4 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/avi/AudioFormatTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/avi/AudioFormatTest.java @@ -22,5 +22,6 @@ public class AudioFormatTest { Assert.assertEquals(0, audioFormat.getBitsPerSample()); //Not meaningful for AAC Assert.assertArrayEquals(CODEC_PRIVATE, audioFormat.getCodecData()); Assert.assertEquals(MimeTypes.AUDIO_AAC, audioFormat.getMimeType()); + Assert.assertEquals(20034, audioFormat.getAvgBytesPerSec()); } }