Commit 04e60614 by aquilescanta Committed by Andrew Lewis

Reduce the number of parameters required to create an HlsMediaChunk

PiperOrigin-RevId: 233765839
parent cc153cfc
...@@ -290,8 +290,8 @@ import java.util.List; ...@@ -290,8 +290,8 @@ import java.util.List;
} }
} }
int chunkIndex = (int) (chunkMediaSequence - mediaPlaylist.mediaSequence); int segmentIndexInPlaylist = (int) (chunkMediaSequence - mediaPlaylist.mediaSequence);
if (chunkIndex >= mediaPlaylist.segments.size()) { if (segmentIndexInPlaylist >= mediaPlaylist.segments.size()) {
if (mediaPlaylist.hasEndTag) { if (mediaPlaylist.hasEndTag) {
out.endOfStream = true; out.endOfStream = true;
} else /* Live */ { } else /* Live */ {
...@@ -306,7 +306,7 @@ import java.util.List; ...@@ -306,7 +306,7 @@ import java.util.List;
expectedPlaylistUrl = null; expectedPlaylistUrl = null;
// Handle encryption. // Handle encryption.
HlsMediaPlaylist.Segment segment = mediaPlaylist.segments.get(chunkIndex); HlsMediaPlaylist.Segment segment = mediaPlaylist.segments.get(segmentIndexInPlaylist);
// Check if the segment is completely encrypted using the identity key format. // Check if the segment is completely encrypted using the identity key format.
if (segment.fullSegmentEncryptionKeyUri != null) { if (segment.fullSegmentEncryptionKeyUri != null) {
...@@ -324,44 +324,20 @@ import java.util.List; ...@@ -324,44 +324,20 @@ import java.util.List;
clearEncryptionData(); clearEncryptionData();
} }
DataSpec initDataSpec = null;
Segment initSegment = segment.initializationSegment;
if (initSegment != null) {
Uri initSegmentUri = UriUtil.resolveToUri(mediaPlaylist.baseUri, initSegment.url);
initDataSpec = new DataSpec(initSegmentUri, initSegment.byterangeOffset,
initSegment.byterangeLength, null);
}
// Compute start time of the next chunk.
long segmentStartTimeInPeriodUs = startOfPlaylistInPeriodUs + segment.relativeStartTimeUs;
int discontinuitySequence = mediaPlaylist.discontinuitySequence
+ segment.relativeDiscontinuitySequence;
TimestampAdjuster timestampAdjuster = timestampAdjusterProvider.getAdjuster(
discontinuitySequence);
// Configure the data source and spec for the chunk.
Uri chunkUri = UriUtil.resolveToUri(mediaPlaylist.baseUri, segment.url);
DataSpec dataSpec = new DataSpec(chunkUri, segment.byterangeOffset, segment.byterangeLength,
null);
out.chunk = out.chunk =
new HlsMediaChunk( HlsMediaChunk.createInstance(
extractorFactory, extractorFactory,
mediaDataSource, mediaDataSource,
dataSpec, startOfPlaylistInPeriodUs,
initDataSpec, mediaPlaylist,
segmentIndexInPlaylist,
selectedUrl, selectedUrl,
muxedCaptionFormats, muxedCaptionFormats,
trackSelection.getSelectionReason(), trackSelection.getSelectionReason(),
trackSelection.getSelectionData(), trackSelection.getSelectionData(),
segmentStartTimeInPeriodUs,
segmentStartTimeInPeriodUs + segment.durationUs,
chunkMediaSequence,
discontinuitySequence,
segment.hasGapTag,
isTimestampMaster, isTimestampMaster,
timestampAdjuster, timestampAdjusterProvider,
previous, previous,
segment.drmInitData,
encryptionKey, encryptionKey,
encryptionIv); encryptionIv);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment