Capitalize r's in HlsMediaPlaylist byte ranges

PiperOrigin-RevId: 306504969
This commit is contained in:
aquilescanta 2020-04-14 21:37:37 +01:00 committed by Ian Baker
parent 6cff8a6ad0
commit 4d22121cde
5 changed files with 30 additions and 32 deletions

View File

@ -647,7 +647,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
checkInBounds(); checkInBounds();
Segment segment = playlist.segments.get((int) getCurrentIndex()); Segment segment = playlist.segments.get((int) getCurrentIndex());
Uri chunkUri = UriUtil.resolveToUri(playlist.baseUri, segment.url); Uri chunkUri = UriUtil.resolveToUri(playlist.baseUri, segment.url);
return new DataSpec(chunkUri, segment.byterangeOffset, segment.byterangeLength); return new DataSpec(chunkUri, segment.byteRangeOffset, segment.byteRangeLength);
} }
@Override @Override

View File

@ -94,8 +94,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
DataSpec dataSpec = DataSpec dataSpec =
new DataSpec( new DataSpec(
UriUtil.resolveToUri(mediaPlaylist.baseUri, mediaSegment.url), UriUtil.resolveToUri(mediaPlaylist.baseUri, mediaSegment.url),
mediaSegment.byterangeOffset, mediaSegment.byteRangeOffset,
mediaSegment.byterangeLength); mediaSegment.byteRangeLength);
boolean mediaSegmentEncrypted = mediaSegmentKey != null; boolean mediaSegmentEncrypted = mediaSegmentKey != null;
@Nullable @Nullable
byte[] mediaSegmentIv = byte[] mediaSegmentIv =
@ -118,7 +118,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
: null; : null;
Uri initSegmentUri = UriUtil.resolveToUri(mediaPlaylist.baseUri, initSegment.url); Uri initSegmentUri = UriUtil.resolveToUri(mediaPlaylist.baseUri, initSegment.url);
initDataSpec = initDataSpec =
new DataSpec(initSegmentUri, initSegment.byterangeOffset, initSegment.byterangeLength); new DataSpec(initSegmentUri, initSegment.byteRangeOffset, initSegment.byteRangeLength);
initDataSource = buildDataSource(dataSource, initSegmentKey, initSegmentIv); initDataSource = buildDataSource(dataSource, initSegmentKey, initSegmentIv);
} }

View File

@ -141,7 +141,7 @@ public final class HlsDownloader extends SegmentDownloader<HlsPlaylist> {
} }
} }
Uri segmentUri = UriUtil.resolveToUri(baseUri, segment.url); Uri segmentUri = UriUtil.resolveToUri(baseUri, segment.url);
DataSpec dataSpec = new DataSpec(segmentUri, segment.byterangeOffset, segment.byterangeLength); DataSpec dataSpec = new DataSpec(segmentUri, segment.byteRangeOffset, segment.byteRangeLength);
out.add(new Segment(startTimeUs, dataSpec)); out.add(new Segment(startTimeUs, dataSpec));
} }
} }

View File

@ -70,30 +70,28 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
* encrypted. * encrypted.
*/ */
@Nullable public final String encryptionIV; @Nullable public final String encryptionIV;
/** /** The segment's byte range offset, as defined by #EXT-X-BYTERANGE. */
* The segment's byte range offset, as defined by #EXT-X-BYTERANGE. public final long byteRangeOffset;
*/
public final long byterangeOffset;
/** /**
* The segment's byte range length, as defined by #EXT-X-BYTERANGE, or {@link C#LENGTH_UNSET} if * The segment's byte range length, as defined by #EXT-X-BYTERANGE, or {@link C#LENGTH_UNSET} if
* no byte range is specified. * no byte range is specified.
*/ */
public final long byterangeLength; public final long byteRangeLength;
/** Whether the segment is tagged with #EXT-X-GAP. */ /** Whether the segment is tagged with #EXT-X-GAP. */
public final boolean hasGapTag; public final boolean hasGapTag;
/** /**
* @param uri See {@link #url}. * @param uri See {@link #url}.
* @param byterangeOffset See {@link #byterangeOffset}. * @param byteRangeOffset See {@link #byteRangeOffset}.
* @param byterangeLength See {@link #byterangeLength}. * @param byteRangeLength See {@link #byteRangeLength}.
* @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}. * @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}.
* @param encryptionIV See {@link #encryptionIV}. * @param encryptionIV See {@link #encryptionIV}.
*/ */
public Segment( public Segment(
String uri, String uri,
long byterangeOffset, long byteRangeOffset,
long byterangeLength, long byteRangeLength,
@Nullable String fullSegmentEncryptionKeyUri, @Nullable String fullSegmentEncryptionKeyUri,
@Nullable String encryptionIV) { @Nullable String encryptionIV) {
this( this(
@ -106,8 +104,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
/* drmInitData= */ null, /* drmInitData= */ null,
fullSegmentEncryptionKeyUri, fullSegmentEncryptionKeyUri,
encryptionIV, encryptionIV,
byterangeOffset, byteRangeOffset,
byterangeLength, byteRangeLength,
/* hasGapTag= */ false); /* hasGapTag= */ false);
} }
@ -121,8 +119,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
* @param drmInitData See {@link #drmInitData}. * @param drmInitData See {@link #drmInitData}.
* @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}. * @param fullSegmentEncryptionKeyUri See {@link #fullSegmentEncryptionKeyUri}.
* @param encryptionIV See {@link #encryptionIV}. * @param encryptionIV See {@link #encryptionIV}.
* @param byterangeOffset See {@link #byterangeOffset}. * @param byteRangeOffset See {@link #byteRangeOffset}.
* @param byterangeLength See {@link #byterangeLength}. * @param byteRangeLength See {@link #byteRangeLength}.
* @param hasGapTag See {@link #hasGapTag}. * @param hasGapTag See {@link #hasGapTag}.
*/ */
public Segment( public Segment(
@ -135,8 +133,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
@Nullable DrmInitData drmInitData, @Nullable DrmInitData drmInitData,
@Nullable String fullSegmentEncryptionKeyUri, @Nullable String fullSegmentEncryptionKeyUri,
@Nullable String encryptionIV, @Nullable String encryptionIV,
long byterangeOffset, long byteRangeOffset,
long byterangeLength, long byteRangeLength,
boolean hasGapTag) { boolean hasGapTag) {
this.url = url; this.url = url;
this.initializationSegment = initializationSegment; this.initializationSegment = initializationSegment;
@ -147,8 +145,8 @@ public final class HlsMediaPlaylist extends HlsPlaylist {
this.drmInitData = drmInitData; this.drmInitData = drmInitData;
this.fullSegmentEncryptionKeyUri = fullSegmentEncryptionKeyUri; this.fullSegmentEncryptionKeyUri = fullSegmentEncryptionKeyUri;
this.encryptionIV = encryptionIV; this.encryptionIV = encryptionIV;
this.byterangeOffset = byterangeOffset; this.byteRangeOffset = byteRangeOffset;
this.byterangeLength = byterangeLength; this.byteRangeLength = byteRangeLength;
this.hasGapTag = hasGapTag; this.hasGapTag = hasGapTag;
} }

View File

@ -96,8 +96,8 @@ public class HlsMediaPlaylistParserTest {
assertThat(segment.title).isEqualTo(""); assertThat(segment.title).isEqualTo("");
assertThat(segment.fullSegmentEncryptionKeyUri).isNull(); assertThat(segment.fullSegmentEncryptionKeyUri).isNull();
assertThat(segment.encryptionIV).isNull(); assertThat(segment.encryptionIV).isNull();
assertThat(segment.byterangeLength).isEqualTo(51370); assertThat(segment.byteRangeLength).isEqualTo(51370);
assertThat(segment.byterangeOffset).isEqualTo(0); assertThat(segment.byteRangeOffset).isEqualTo(0);
assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2679.ts"); assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2679.ts");
segment = segments.get(1); segment = segments.get(1);
@ -107,8 +107,8 @@ public class HlsMediaPlaylistParserTest {
assertThat(segment.fullSegmentEncryptionKeyUri) assertThat(segment.fullSegmentEncryptionKeyUri)
.isEqualTo("https://priv.example.com/key.php?r=2680"); .isEqualTo("https://priv.example.com/key.php?r=2680");
assertThat(segment.encryptionIV).isEqualTo("0x1566B"); assertThat(segment.encryptionIV).isEqualTo("0x1566B");
assertThat(segment.byterangeLength).isEqualTo(51501); assertThat(segment.byteRangeLength).isEqualTo(51501);
assertThat(segment.byterangeOffset).isEqualTo(2147483648L); assertThat(segment.byteRangeOffset).isEqualTo(2147483648L);
assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2680.ts"); assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2680.ts");
segment = segments.get(2); segment = segments.get(2);
@ -117,8 +117,8 @@ public class HlsMediaPlaylistParserTest {
assertThat(segment.title).isEqualTo("segment title .,:/# with interesting chars"); assertThat(segment.title).isEqualTo("segment title .,:/# with interesting chars");
assertThat(segment.fullSegmentEncryptionKeyUri).isNull(); assertThat(segment.fullSegmentEncryptionKeyUri).isNull();
assertThat(segment.encryptionIV).isEqualTo(null); assertThat(segment.encryptionIV).isEqualTo(null);
assertThat(segment.byterangeLength).isEqualTo(51501); assertThat(segment.byteRangeLength).isEqualTo(51501);
assertThat(segment.byterangeOffset).isEqualTo(2147535149L); assertThat(segment.byteRangeOffset).isEqualTo(2147535149L);
assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2681.ts"); assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2681.ts");
segment = segments.get(3); segment = segments.get(3);
@ -130,8 +130,8 @@ public class HlsMediaPlaylistParserTest {
// 0xA7A == 2682. // 0xA7A == 2682.
assertThat(segment.encryptionIV).isNotNull(); assertThat(segment.encryptionIV).isNotNull();
assertThat(Util.toUpperInvariant(segment.encryptionIV)).isEqualTo("A7A"); assertThat(Util.toUpperInvariant(segment.encryptionIV)).isEqualTo("A7A");
assertThat(segment.byterangeLength).isEqualTo(51740); assertThat(segment.byteRangeLength).isEqualTo(51740);
assertThat(segment.byterangeOffset).isEqualTo(2147586650L); assertThat(segment.byteRangeOffset).isEqualTo(2147586650L);
assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2682.ts"); assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2682.ts");
segment = segments.get(4); segment = segments.get(4);
@ -143,8 +143,8 @@ public class HlsMediaPlaylistParserTest {
// 0xA7B == 2683. // 0xA7B == 2683.
assertThat(segment.encryptionIV).isNotNull(); assertThat(segment.encryptionIV).isNotNull();
assertThat(Util.toUpperInvariant(segment.encryptionIV)).isEqualTo("A7B"); assertThat(Util.toUpperInvariant(segment.encryptionIV)).isEqualTo("A7B");
assertThat(segment.byterangeLength).isEqualTo(C.LENGTH_UNSET); assertThat(segment.byteRangeLength).isEqualTo(C.LENGTH_UNSET);
assertThat(segment.byterangeOffset).isEqualTo(0); assertThat(segment.byteRangeOffset).isEqualTo(0);
assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2683.ts"); assertThat(segment.url).isEqualTo("https://priv.example.com/fileSequence2683.ts");
} }