Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
01eddb34
authored
Nov 23, 2022
by
rohks
Committed by
Ian Baker
Nov 24, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Parse and set `peakBitrate` for Dolby TrueHD(AC-3) and (E-)AC-3
#minor-release PiperOrigin-RevId: 490527831
parent
e61ff42a
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
49 additions
and
1 deletions
library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.unknown_length.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.unknown_length.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.0.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.1.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.2.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.3.dump
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.unknown_length.dump
library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java
View file @
01eddb34
...
...
@@ -156,6 +156,9 @@ public final class Ac3Util {
if
((
nextByte
&
0x04
)
!=
0
)
{
// lfeon
channelCount
++;
}
// bit_rate_code - 5 bits. 2 bits from previous byte and 3 bits from next.
int
halfFrmsizecod
=
((
nextByte
&
0x03
)
<<
3
)
|
((
data
.
readUnsignedByte
()
&
0xE0
)
>>
5
);
int
constantBitrate
=
BITRATE_BY_HALF_FRMSIZECOD
[
halfFrmsizecod
];
return
new
Format
.
Builder
()
.
setId
(
trackId
)
.
setSampleMimeType
(
MimeTypes
.
AUDIO_AC3
)
...
...
@@ -163,6 +166,8 @@ public final class Ac3Util {
.
setSampleRate
(
sampleRate
)
.
setDrmInitData
(
drmInitData
)
.
setLanguage
(
language
)
.
setAverageBitrate
(
constantBitrate
)
.
setPeakBitrate
(
constantBitrate
)
.
build
();
}
...
...
@@ -178,7 +183,9 @@ public final class Ac3Util {
*/
public
static
Format
parseEAc3AnnexFFormat
(
ParsableByteArray
data
,
String
trackId
,
String
language
,
@Nullable
DrmInitData
drmInitData
)
{
data
.
skipBytes
(
2
);
// data_rate, num_ind_sub
// 13 bits for data_rate, 3 bits for num_ind_sub which are ignored.
int
peakBitrate
=
((
data
.
readUnsignedByte
()
&
0xFF
)
<<
5
)
|
((
data
.
readUnsignedByte
()
&
0xF8
)
>>
3
);
// Read the first independent substream.
int
fscod
=
(
data
.
readUnsignedByte
()
&
0xC0
)
>>
6
;
...
...
@@ -214,6 +221,7 @@ public final class Ac3Util {
.
setSampleRate
(
sampleRate
)
.
setDrmInitData
(
drmInitData
)
.
setLanguage
(
language
)
.
setPeakBitrate
(
peakBitrate
)
.
build
();
}
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
sample count = 9
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 9216
sample count = 6
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 4608
sample count = 3
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 1536
sample count = 1
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
sample count = 9
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
sample count = 9
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 10752
sample count = 7
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 6144
sample count = 4
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 1536
sample count = 1
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
sample count = 9
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
sampleMimeType = audio/ac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
sample count = 54
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 144000
sample count = 36
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 72000
sample count = 18
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 4000
sample count = 1
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
sample count = 54
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
sample count = 54
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 148000
sample count = 37
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 76000
sample count = 19
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 4000
sample count = 1
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
sample count = 54
format 0:
peakBitrate = 1000
id = 1
sampleMimeType = audio/eac3
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
sample count = 64
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 110080
sample count = 43
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 56320
sample count = 22
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 2560
sample count = 1
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
sample count = 64
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.0.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
sample count = 64
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.1.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 110080
sample count = 43
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.2.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 56320
sample count = 22
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.3.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 2560
sample count = 1
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
sample count = 64
format 0:
peakBitrate = 640
id = 1
sampleMimeType = audio/eac3-joc
channelCount = 6
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment