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
Show 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 {
...
@@ -156,6 +156,9 @@ public final class Ac3Util {
if
((
nextByte
&
0x04
)
!=
0
)
{
// lfeon
if
((
nextByte
&
0x04
)
!=
0
)
{
// lfeon
channelCount
++;
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
()
return
new
Format
.
Builder
()
.
setId
(
trackId
)
.
setId
(
trackId
)
.
setSampleMimeType
(
MimeTypes
.
AUDIO_AC3
)
.
setSampleMimeType
(
MimeTypes
.
AUDIO_AC3
)
...
@@ -163,6 +166,8 @@ public final class Ac3Util {
...
@@ -163,6 +166,8 @@ public final class Ac3Util {
.
setSampleRate
(
sampleRate
)
.
setSampleRate
(
sampleRate
)
.
setDrmInitData
(
drmInitData
)
.
setDrmInitData
(
drmInitData
)
.
setLanguage
(
language
)
.
setLanguage
(
language
)
.
setAverageBitrate
(
constantBitrate
)
.
setPeakBitrate
(
constantBitrate
)
.
build
();
.
build
();
}
}
...
@@ -178,7 +183,9 @@ public final class Ac3Util {
...
@@ -178,7 +183,9 @@ public final class Ac3Util {
*/
*/
public
static
Format
parseEAc3AnnexFFormat
(
public
static
Format
parseEAc3AnnexFFormat
(
ParsableByteArray
data
,
String
trackId
,
String
language
,
@Nullable
DrmInitData
drmInitData
)
{
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.
// Read the first independent substream.
int
fscod
=
(
data
.
readUnsignedByte
()
&
0xC0
)
>>
6
;
int
fscod
=
(
data
.
readUnsignedByte
()
&
0xC0
)
>>
6
;
...
@@ -214,6 +221,7 @@ public final class Ac3Util {
...
@@ -214,6 +221,7 @@ public final class Ac3Util {
.
setSampleRate
(
sampleRate
)
.
setSampleRate
(
sampleRate
)
.
setDrmInitData
(
drmInitData
)
.
setDrmInitData
(
drmInitData
)
.
setLanguage
(
language
)
.
setLanguage
(
language
)
.
setPeakBitrate
(
peakBitrate
)
.
build
();
.
build
();
}
}
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
total output bytes = 13824
sample count = 9
sample count = 9
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
maxInputSize = 1566
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 9216
total output bytes = 9216
sample count = 6
sample count = 6
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
maxInputSize = 1566
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 4608
total output bytes = 4608
sample count = 3
sample count = 3
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
maxInputSize = 1566
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 1536
total output bytes = 1536
sample count = 1
sample count = 1
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
maxInputSize = 1566
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
total output bytes = 13824
sample count = 9
sample count = 9
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
maxInputSize = 1566
maxInputSize = 1566
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
total output bytes = 13824
sample count = 9
sample count = 9
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 10752
total output bytes = 10752
sample count = 7
sample count = 7
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 6144
total output bytes = 6144
sample count = 4
sample count = 4
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 1536
total output bytes = 1536
sample count = 1
sample count = 1
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,8 @@ track 0:
...
@@ -10,6 +10,8 @@ track 0:
total output bytes = 13824
total output bytes = 13824
sample count = 9
sample count = 9
format 0:
format 0:
averageBitrate = 384
peakBitrate = 384
id = 1
id = 1
sampleMimeType = audio/ac3
sampleMimeType = audio/ac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
total output bytes = 216000
sample count = 54
sample count = 54
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
maxInputSize = 4030
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 144000
total output bytes = 144000
sample count = 36
sample count = 36
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
maxInputSize = 4030
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 72000
total output bytes = 72000
sample count = 18
sample count = 18
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
maxInputSize = 4030
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 4000
total output bytes = 4000
sample count = 1
sample count = 1
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
maxInputSize = 4030
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
total output bytes = 216000
sample count = 54
sample count = 54
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
maxInputSize = 4030
maxInputSize = 4030
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
total output bytes = 216000
sample count = 54
sample count = 54
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 148000
total output bytes = 148000
sample count = 37
sample count = 37
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 76000
total output bytes = 76000
sample count = 19
sample count = 19
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 4000
total output bytes = 4000
sample count = 1
sample count = 1
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 216000
total output bytes = 216000
sample count = 54
sample count = 54
format 0:
format 0:
peakBitrate = 1000
id = 1
id = 1
sampleMimeType = audio/eac3
sampleMimeType = audio/eac3
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
total output bytes = 163840
sample count = 64
sample count = 64
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 110080
total output bytes = 110080
sample count = 43
sample count = 43
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 56320
total output bytes = 56320
sample count = 22
sample count = 22
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 2560
total output bytes = 2560
sample count = 1
sample count = 1
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
total output bytes = 163840
sample count = 64
sample count = 64
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
maxInputSize = 2590
maxInputSize = 2590
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.0.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
total output bytes = 163840
sample count = 64
sample count = 64
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.1.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 110080
total output bytes = 110080
sample count = 43
sample count = 43
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.2.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 56320
total output bytes = 56320
sample count = 22
sample count = 22
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.3.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 2560
total output bytes = 2560
sample count = 1
sample count = 1
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
channelCount = 6
channelCount = 6
...
...
testdata/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.unknown_length.dump
View file @
01eddb34
...
@@ -10,6 +10,7 @@ track 0:
...
@@ -10,6 +10,7 @@ track 0:
total output bytes = 163840
total output bytes = 163840
sample count = 64
sample count = 64
format 0:
format 0:
peakBitrate = 640
id = 1
id = 1
sampleMimeType = audio/eac3-joc
sampleMimeType = audio/eac3-joc
channelCount = 6
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