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
4d22121c
authored
Apr 14, 2020
by
aquilescanta
Committed by
Ian Baker
Apr 15, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Capitalize r's in HlsMediaPlaylist byte ranges
PiperOrigin-RevId: 306504969
parent
6cff8a6a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
30 additions
and
32 deletions
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java
View file @
4d22121c
...
...
@@ -647,7 +647,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
checkInBounds
();
Segment
segment
=
playlist
.
segments
.
get
((
int
)
getCurrentIndex
());
Uri
chunkUri
=
UriUtil
.
resolveToUri
(
playlist
.
baseUri
,
segment
.
url
);
return
new
DataSpec
(
chunkUri
,
segment
.
byte
rangeOffset
,
segment
.
byter
angeLength
);
return
new
DataSpec
(
chunkUri
,
segment
.
byte
RangeOffset
,
segment
.
byteR
angeLength
);
}
@Override
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java
View file @
4d22121c
...
...
@@ -94,8 +94,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
DataSpec
dataSpec
=
new
DataSpec
(
UriUtil
.
resolveToUri
(
mediaPlaylist
.
baseUri
,
mediaSegment
.
url
),
mediaSegment
.
byte
r
angeOffset
,
mediaSegment
.
byte
r
angeLength
);
mediaSegment
.
byte
R
angeOffset
,
mediaSegment
.
byte
R
angeLength
);
boolean
mediaSegmentEncrypted
=
mediaSegmentKey
!=
null
;
@Nullable
byte
[]
mediaSegmentIv
=
...
...
@@ -118,7 +118,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
:
null
;
Uri
initSegmentUri
=
UriUtil
.
resolveToUri
(
mediaPlaylist
.
baseUri
,
initSegment
.
url
);
initDataSpec
=
new
DataSpec
(
initSegmentUri
,
initSegment
.
byte
rangeOffset
,
initSegment
.
byter
angeLength
);
new
DataSpec
(
initSegmentUri
,
initSegment
.
byte
RangeOffset
,
initSegment
.
byteR
angeLength
);
initDataSource
=
buildDataSource
(
dataSource
,
initSegmentKey
,
initSegmentIv
);
}
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.java
View file @
4d22121c
...
...
@@ -141,7 +141,7 @@ public final class HlsDownloader extends SegmentDownloader<HlsPlaylist> {
}
}
Uri
segmentUri
=
UriUtil
.
resolveToUri
(
baseUri
,
segment
.
url
);
DataSpec
dataSpec
=
new
DataSpec
(
segmentUri
,
segment
.
byte
rangeOffset
,
segment
.
byter
angeLength
);
DataSpec
dataSpec
=
new
DataSpec
(
segmentUri
,
segment
.
byte
RangeOffset
,
segment
.
byteR
angeLength
);
out
.
add
(
new
Segment
(
startTimeUs
,
dataSpec
));
}
}
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java
View file @
4d22121c
...
...
@@ -70,30 +70,28 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
* encrypted.
*/
@Nullable
public
final
String
encryptionIV
;
/**
* The segment's byte range offset, as defined by #EXT-X-BYTERANGE.
*/
public
final
long
byterangeOffset
;
/** The segment's byte range offset, as defined by #EXT-X-BYTERANGE. */
public
final
long
byteRangeOffset
;
/**
* The segment's byte range length, as defined by #EXT-X-BYTERANGE, or {@link C#LENGTH_UNSET} if
* no byte range is specified.
*/
public
final
long
byte
r
angeLength
;
public
final
long
byte
R
angeLength
;
/** Whether the segment is tagged with #EXT-X-GAP. */
public
final
boolean
hasGapTag
;
/**
* @param uri See {@link #url}.
* @param byte
rangeOffset See {@link #byter
angeOffset}.
* @param byte
rangeLength See {@link #byter
angeLength}.
* @param byte
RangeOffset See {@link #byteR
angeOffset}.
* @param byte
RangeLength See {@link #byteR
angeLength}.
* @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}.
* @param encryptionIV See {@link #encryptionIV}.
*/
public
Segment
(
String
uri
,
long
byte
r
angeOffset
,
long
byte
r
angeLength
,
long
byte
R
angeOffset
,
long
byte
R
angeLength
,
@Nullable
String
fullSegmentEncryptionKeyUri
,
@Nullable
String
encryptionIV
)
{
this
(
...
...
@@ -106,8 +104,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
/* drmInitData= */
null
,
fullSegmentEncryptionKeyUri
,
encryptionIV
,
byte
r
angeOffset
,
byte
r
angeLength
,
byte
R
angeOffset
,
byte
R
angeLength
,
/* hasGapTag= */
false
);
}
...
...
@@ -121,8 +119,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
* @param drmInitData See {@link #drmInitData}.
* @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}.
* @param encryptionIV See {@link #encryptionIV}.
* @param byte
rangeOffset See {@link #byter
angeOffset}.
* @param byte
rangeLength See {@link #byter
angeLength}.
* @param byte
RangeOffset See {@link #byteR
angeOffset}.
* @param byte
RangeLength See {@link #byteR
angeLength}.
* @param hasGapTag See {@link #hasGapTag}.
*/
public
Segment
(
...
...
@@ -135,8 +133,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
@Nullable
DrmInitData
drmInitData
,
@Nullable
String
fullSegmentEncryptionKeyUri
,
@Nullable
String
encryptionIV
,
long
byte
r
angeOffset
,
long
byte
r
angeLength
,
long
byte
R
angeOffset
,
long
byte
R
angeLength
,
boolean
hasGapTag
)
{
this
.
url
=
url
;
this
.
initializationSegment
=
initializationSegment
;
...
...
@@ -147,8 +145,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
this
.
drmInitData
=
drmInitData
;
this
.
fullSegmentEncryptionKeyUri
=
fullSegmentEncryptionKeyUri
;
this
.
encryptionIV
=
encryptionIV
;
this
.
byte
rangeOffset
=
byter
angeOffset
;
this
.
byte
rangeLength
=
byter
angeLength
;
this
.
byte
RangeOffset
=
byteR
angeOffset
;
this
.
byte
RangeLength
=
byteR
angeLength
;
this
.
hasGapTag
=
hasGapTag
;
}
...
...
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java
View file @
4d22121c
...
...
@@ -96,8 +96,8 @@ public class HlsMediaPlaylistParserTest {
assertThat
(
segment
.
title
).
isEqualTo
(
""
);
assertThat
(
segment
.
fullSegmentEncryptionKeyUri
).
isNull
();
assertThat
(
segment
.
encryptionIV
).
isNull
();
assertThat
(
segment
.
byte
r
angeLength
).
isEqualTo
(
51370
);
assertThat
(
segment
.
byte
r
angeOffset
).
isEqualTo
(
0
);
assertThat
(
segment
.
byte
R
angeLength
).
isEqualTo
(
51370
);
assertThat
(
segment
.
byte
R
angeOffset
).
isEqualTo
(
0
);
assertThat
(
segment
.
url
).
isEqualTo
(
"https://priv.example.com/fileSequence2679.ts"
);
segment
=
segments
.
get
(
1
);
...
...
@@ -107,8 +107,8 @@ public class HlsMediaPlaylistParserTest {
assertThat
(
segment
.
fullSegmentEncryptionKeyUri
)
.
isEqualTo
(
"https://priv.example.com/key.php?r=2680"
);
assertThat
(
segment
.
encryptionIV
).
isEqualTo
(
"0x1566B"
);
assertThat
(
segment
.
byte
r
angeLength
).
isEqualTo
(
51501
);
assertThat
(
segment
.
byte
r
angeOffset
).
isEqualTo
(
2147483648L
);
assertThat
(
segment
.
byte
R
angeLength
).
isEqualTo
(
51501
);
assertThat
(
segment
.
byte
R
angeOffset
).
isEqualTo
(
2147483648L
);
assertThat
(
segment
.
url
).
isEqualTo
(
"https://priv.example.com/fileSequence2680.ts"
);
segment
=
segments
.
get
(
2
);
...
...
@@ -117,8 +117,8 @@ public class HlsMediaPlaylistParserTest {
assertThat
(
segment
.
title
).
isEqualTo
(
"segment title .,:/# with interesting chars"
);
assertThat
(
segment
.
fullSegmentEncryptionKeyUri
).
isNull
();
assertThat
(
segment
.
encryptionIV
).
isEqualTo
(
null
);
assertThat
(
segment
.
byte
r
angeLength
).
isEqualTo
(
51501
);
assertThat
(
segment
.
byte
r
angeOffset
).
isEqualTo
(
2147535149L
);
assertThat
(
segment
.
byte
R
angeLength
).
isEqualTo
(
51501
);
assertThat
(
segment
.
byte
R
angeOffset
).
isEqualTo
(
2147535149L
);
assertThat
(
segment
.
url
).
isEqualTo
(
"https://priv.example.com/fileSequence2681.ts"
);
segment
=
segments
.
get
(
3
);
...
...
@@ -130,8 +130,8 @@ public class HlsMediaPlaylistParserTest {
// 0xA7A == 2682.
assertThat
(
segment
.
encryptionIV
).
isNotNull
();
assertThat
(
Util
.
toUpperInvariant
(
segment
.
encryptionIV
)).
isEqualTo
(
"A7A"
);
assertThat
(
segment
.
byte
r
angeLength
).
isEqualTo
(
51740
);
assertThat
(
segment
.
byte
r
angeOffset
).
isEqualTo
(
2147586650L
);
assertThat
(
segment
.
byte
R
angeLength
).
isEqualTo
(
51740
);
assertThat
(
segment
.
byte
R
angeOffset
).
isEqualTo
(
2147586650L
);
assertThat
(
segment
.
url
).
isEqualTo
(
"https://priv.example.com/fileSequence2682.ts"
);
segment
=
segments
.
get
(
4
);
...
...
@@ -143,8 +143,8 @@ public class HlsMediaPlaylistParserTest {
// 0xA7B == 2683.
assertThat
(
segment
.
encryptionIV
).
isNotNull
();
assertThat
(
Util
.
toUpperInvariant
(
segment
.
encryptionIV
)).
isEqualTo
(
"A7B"
);
assertThat
(
segment
.
byte
r
angeLength
).
isEqualTo
(
C
.
LENGTH_UNSET
);
assertThat
(
segment
.
byte
r
angeOffset
).
isEqualTo
(
0
);
assertThat
(
segment
.
byte
R
angeLength
).
isEqualTo
(
C
.
LENGTH_UNSET
);
assertThat
(
segment
.
byte
R
angeOffset
).
isEqualTo
(
0
);
assertThat
(
segment
.
url
).
isEqualTo
(
"https://priv.example.com/fileSequence2683.ts"
);
}
...
...
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