Skip to content

Commit 9182b41

Browse files
rohitjoinscopybara-github
authored andcommitted
Ensure chunk duration is set in CmcdData for HLS media
Previously, encrypted media segments did not have the chunk duration set, causing an assertion failure during `CmcdData` creation. With this change, the chunk duration is always set, while `CmcdData` ensures it is applied only for media chunks. Issue: #2312 PiperOrigin-RevId: 745196718
1 parent e11a8a1 commit 9182b41

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

RELEASENOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@
8080
* Cronet extension:
8181
* RTMP extension:
8282
* HLS extension:
83+
* Fix issue where chunk duration wasn't set in `CmcdData` for HLS media,
84+
causing an assertion failure when processing encrypted media segments
85+
([#2312](https://github.com/androidx/media/issues/2312)).
8386
* DASH extension:
8487
* Smooth Streaming extension:
8588
* RTSP extension:

libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,8 @@ public void getNextChunk(
517517
.setPlaybackRate(loadingInfo.playbackSpeed)
518518
.setIsLive(!playlist.hasEndTag)
519519
.setDidRebuffer(loadingInfo.rebufferedSince(lastChunkRequestRealtimeMs))
520-
.setIsBufferEmpty(queue.isEmpty());
520+
.setIsBufferEmpty(queue.isEmpty())
521+
.setChunkDurationUs(segmentBaseHolder.segmentBase.durationUs);
521522
long nextMediaSequence =
522523
segmentBaseHolder.partIndex == C.INDEX_UNSET
523524
? segmentBaseHolder.mediaSequence + 1

libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaChunk.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ public static HlsMediaChunk createInstance(
112112
.setFlags(segmentBaseHolder.isPreload ? FLAG_MIGHT_NOT_USE_FULL_NETWORK_SPEED : 0)
113113
.build();
114114
if (cmcdDataFactory != null) {
115-
CmcdData cmcdData =
116-
cmcdDataFactory.setChunkDurationUs(mediaSegment.durationUs).createCmcdData();
115+
CmcdData cmcdData = cmcdDataFactory.createCmcdData();
117116
dataSpec = cmcdData.addToDataSpec(dataSpec);
118117
}
119118

0 commit comments

Comments
 (0)