From 571ee24f3e0122500bae185249bf7e5ea6cc568c Mon Sep 17 00:00:00 2001 From: KongQun Yang Date: Tue, 20 Mar 2018 19:13:22 -0700 Subject: [PATCH] Use PTS instead of DTS in ChunkingHandler DTS was used in ChunkingHandler. As a result, SegmentInfo contained timestamp in DTS. MP4Muxer has a logic to change SegmentInfo to use PTS but not in other muxers. Benefits of using PTS in ChunkingHandler: - De-dup the redundant logic in MP4Muxer - Ensure consistent behavior in different output containers - Consistent with other timestamps, e.g. Ad Cue timestamps Issue #413 Change-Id: Ib671badf144e0c0866d60f4ff0ac0cbbdd33817e --- .../bear-640x360-video-iframe.m3u8 | 2 +- .../testdata/avc-aac-ts-language/output.m3u8 | 2 +- .../avc-aac-ts/bear-640x360-video-iframe.m3u8 | 2 +- .../app/test/testdata/avc-aac-ts/output.m3u8 | 2 +- .../app/test/testdata/avc-aac-ts/output.mpd | 4 +- .../bear-640x360-ac3-video-iframe.m3u8 | 2 +- .../avc-ac3-ts-with-encryption/output.m3u8 | 2 +- .../bear-640x360-ac3-video-iframe.m3u8 | 2 +- .../app/test/testdata/avc-ac3-ts/output.m3u8 | 2 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../output.m3u8 | 2 +- .../bear-640x360-ac3-video-iframe.m3u8 | 2 +- .../output.m3u8 | 2 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../avc-ts-event-playlist/output.m3u8 | 2 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../output.m3u8 | 2 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../testdata/avc-ts-live-playlist/output.m3u8 | 2 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../output.m3u8 | 2 +- .../output.m3u8 | 2 +- .../sintel-1024x436-video-3.ts | Bin 46248 -> 4700 bytes .../sintel-1024x436-video-4.ts | Bin 97008 -> 138556 bytes .../sintel-1024x436-video-iframe.m3u8 | 8 ++-- .../sintel-1024x436-video.m3u8 | 4 +- .../bear-640x360-video-iframe.m3u8 | 2 +- .../avc-ts-with-encryption/output.m3u8 | 2 +- .../bear-640x360-ec3-video-iframe.m3u8 | 2 +- .../ec3-packed-audio-encrypted/output.m3u8 | 2 +- packager/media/chunking/chunking_handler.cc | 37 +++++++++++++----- packager/media/chunking/chunking_handler.h | 3 +- 32 files changed, 61 insertions(+), 45 deletions(-) diff --git a/packager/app/test/testdata/avc-aac-ts-language/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-aac-ts-language/bear-640x360-video-iframe.m3u8 index 117d12f785..3631df8dd3 100644 --- a/packager/app/test/testdata/avc-aac-ts-language/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-aac-ts-language/bear-640x360-video-iframe.m3u8 @@ -10,7 +10,7 @@ bear-640x360-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-aac-ts-language/output.m3u8 b/packager/app/test/testdata/avc-aac-ts-language/output.m3u8 index 7bceb22c22..c1532e8ea4 100644 --- a/packager/app/test/testdata/avc-aac-ts-language/output.m3u8 +++ b/packager/app/test/testdata/avc-aac-ts-language/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-aac-ts/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-aac-ts/bear-640x360-video-iframe.m3u8 index 117d12f785..3631df8dd3 100644 --- a/packager/app/test/testdata/avc-aac-ts/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-aac-ts/bear-640x360-video-iframe.m3u8 @@ -10,7 +10,7 @@ bear-640x360-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-aac-ts/output.m3u8 b/packager/app/test/testdata/avc-aac-ts/output.m3u8 index f97327e1f6..02139e8baa 100644 --- a/packager/app/test/testdata/avc-aac-ts/output.m3u8 +++ b/packager/app/test/testdata/avc-aac-ts/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-aac-ts/output.mpd b/packager/app/test/testdata/avc-aac-ts/output.mpd index fbaca67d46..704807cdbe 100644 --- a/packager/app/test/testdata/avc-aac-ts/output.mpd +++ b/packager/app/test/testdata/avc-aac-ts/output.mpd @@ -6,8 +6,8 @@ - - + + diff --git a/packager/app/test/testdata/avc-ac3-ts-with-encryption/bear-640x360-ac3-video-iframe.m3u8 b/packager/app/test/testdata/avc-ac3-ts-with-encryption/bear-640x360-ac3-video-iframe.m3u8 index 4608d70c57..13e431e839 100644 --- a/packager/app/test/testdata/avc-ac3-ts-with-encryption/bear-640x360-ac3-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ac3-ts-with-encryption/bear-640x360-ac3-video-iframe.m3u8 @@ -12,7 +12,7 @@ bear-640x360-ac3-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-ac3-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-ac3-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-ac3-ts-with-encryption/output.m3u8 b/packager/app/test/testdata/avc-ac3-ts-with-encryption/output.m3u8 index 8425771932..f85e7ac8b9 100644 --- a/packager/app/test/testdata/avc-ac3-ts-with-encryption/output.m3u8 +++ b/packager/app/test/testdata/avc-ac3-ts-with-encryption/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1242863,CODECS="avc1.64001e,ac-3",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-ac3-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ac3-ts/bear-640x360-ac3-video-iframe.m3u8 b/packager/app/test/testdata/avc-ac3-ts/bear-640x360-ac3-video-iframe.m3u8 index 28a496a31e..d835f0ec2b 100644 --- a/packager/app/test/testdata/avc-ac3-ts/bear-640x360-ac3-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ac3-ts/bear-640x360-ac3-video-iframe.m3u8 @@ -10,7 +10,7 @@ bear-640x360-ac3-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-ac3-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-ac3-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-ac3-ts/output.m3u8 b/packager/app/test/testdata/avc-ac3-ts/output.m3u8 index 8425771932..f85e7ac8b9 100644 --- a/packager/app/test/testdata/avc-ac3-ts/output.m3u8 +++ b/packager/app/test/testdata/avc-ac3-ts/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1242863,CODECS="avc1.64001e,ac-3",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-ac3-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/bear-640x360-video-iframe.m3u8 index 962e06ba1c..b42972a650 100644 --- a/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/bear-640x360-video-iframe.m3u8 @@ -12,7 +12,7 @@ bear-640x360-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/output.m3u8 b/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/output.m3u8 index f812d2decc..4dfaf33ddb 100644 --- a/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-aac-packed-audio-with-encryption/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1154999,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/bear-640x360-ac3-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/bear-640x360-ac3-video-iframe.m3u8 index 4608d70c57..13e431e839 100644 --- a/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/bear-640x360-ac3-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/bear-640x360-ac3-video-iframe.m3u8 @@ -12,7 +12,7 @@ bear-640x360-ac3-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-ac3-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-ac3-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/output.m3u8 b/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/output.m3u8 index 11fc9f005f..c8828619bf 100644 --- a/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-ac3-packed-audio-with-encryption/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1216578,CODECS="avc1.64001e,ac-3",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-ac3-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-ac3-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-event-playlist/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-event-playlist/bear-640x360-video-iframe.m3u8 index 97925b5bac..c4e42ac0dd 100644 --- a/packager/app/test/testdata/avc-ts-event-playlist/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-event-playlist/bear-640x360-video-iframe.m3u8 @@ -10,6 +10,6 @@ bear-640x360-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts diff --git a/packager/app/test/testdata/avc-ts-event-playlist/output.m3u8 b/packager/app/test/testdata/avc-ts-event-playlist/output.m3u8 index f97327e1f6..02139e8baa 100644 --- a/packager/app/test/testdata/avc-ts-event-playlist/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-event-playlist/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/bear-640x360-video-iframe.m3u8 index ff2034f60c..4ac7ff79c6 100644 --- a/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/bear-640x360-video-iframe.m3u8 @@ -10,6 +10,6 @@ #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts #EXT-X-KEY:METHOD=SAMPLE-AES,URI="data:text/plain;base64,MzQ1Njc4OTAxMjM0NTYxMg==",IV=0x3334353637383930,KEYFORMAT="identity" -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts diff --git a/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/output.m3u8 b/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/output.m3u8 index f97327e1f6..02139e8baa 100644 --- a/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-live-playlist-with-key-rotation/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-live-playlist/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-live-playlist/bear-640x360-video-iframe.m3u8 index fe4bfd8fe6..b6e5aadaf3 100644 --- a/packager/app/test/testdata/avc-ts-live-playlist/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-live-playlist/bear-640x360-video-iframe.m3u8 @@ -7,6 +7,6 @@ #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts diff --git a/packager/app/test/testdata/avc-ts-live-playlist/output.m3u8 b/packager/app/test/testdata/avc-ts-live-playlist/output.m3u8 index f97327e1f6..02139e8baa 100644 --- a/packager/app/test/testdata/avc-ts-live-playlist/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-live-playlist/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/bear-640x360-video-iframe.m3u8 b/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/bear-640x360-video-iframe.m3u8 index 005f83116f..39d7af87eb 100644 --- a/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/bear-640x360-video-iframe.m3u8 +++ b/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/bear-640x360-video-iframe.m3u8 @@ -12,7 +12,7 @@ bear-640x360-video-1.ts #EXTINF:1.001, #EXT-X-BYTERANGE:18236@376 bear-640x360-video-2.ts -#EXTINF:0.667, +#EXTINF:0.734, #EXT-X-BYTERANGE:19928@376 bear-640x360-video-3.ts #EXT-X-ENDLIST diff --git a/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/output.m3u8 b/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/output.m3u8 index f97327e1f6..02139e8baa 100644 --- a/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-with-encryption-and-fairplay/output.m3u8 @@ -6,4 +6,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1217520,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group" bear-640x360-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=238898,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=217180,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/output.m3u8 b/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/output.m3u8 index da95a5486f..0112dd63f7 100644 --- a/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/output.m3u8 +++ b/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/output.m3u8 @@ -4,4 +4,4 @@ #EXT-X-STREAM-INF:BANDWIDTH=1183949,CODECS="avc1.64001f",RESOLUTION=1024x436 sintel-1024x436-video.m3u8 -#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=745984,CODECS="avc1.64001f",RESOLUTION=1024x436,URI="sintel-1024x436-video-iframe.m3u8" +#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=447591,CODECS="avc1.64001f",RESOLUTION=1024x436,URI="sintel-1024x436-video-iframe.m3u8" diff --git a/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/sintel-1024x436-video-3.ts b/packager/app/test/testdata/avc-ts-with-encryption-exercise-emulation-prevention/sintel-1024x436-video-3.ts index b653e42ea74f56549f0720dc49640fab0ba6343a..28f3d0877bf5e7e2c130e6358ea6f46a16e18af2 100644 GIT binary patch delta 8 PcmZ4SlIf1hh8Q6L6KMmo delta 40070 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 sample) { DCHECK_NE(time_scale_, 0u) << "kStreamInfo should arrive before kMediaSample"; - const int64_t timestamp = sample->dts(); + const int64_t timestamp = sample->pts(); bool started_new_segment = false; const bool can_start_new_segment = @@ -89,7 +99,8 @@ Status ChunkingHandler::OnMediaSample( const int64_t segment_index = timestamp < cue_offset_ ? 0 : (timestamp - cue_offset_) / segment_duration_; - if (!segment_start_time_ || segment_index != current_segment_index_) { + if (!segment_start_time_ || + IsNewSegmentIndex(segment_index, current_segment_index_)) { current_segment_index_ = segment_index; // Reset subsegment index. current_subsegment_index_ = 0; @@ -97,6 +108,7 @@ Status ChunkingHandler::OnMediaSample( RETURN_IF_ERROR(EndSegmentIfStarted()); segment_start_time_ = timestamp; subsegment_start_time_ = timestamp; + max_segment_time_ = timestamp + sample->duration(); started_new_segment = true; } } @@ -106,7 +118,7 @@ Status ChunkingHandler::OnMediaSample( if (can_start_new_subsegment) { const int64_t subsegment_index = (timestamp - segment_start_time_.value()) / subsegment_duration_; - if (subsegment_index != current_subsegment_index_) { + if (IsNewSegmentIndex(subsegment_index, current_subsegment_index_)) { current_subsegment_index_ = subsegment_index; RETURN_IF_ERROR(EndSubsegmentIfStarted()); @@ -118,11 +130,17 @@ Status ChunkingHandler::OnMediaSample( VLOG(3) << "Sample ts: " << timestamp << " " << " duration: " << sample->duration() << " scale: " << time_scale_ << (segment_start_time_ ? " dispatch " : " discard "); - // Discard samples before segment start. If the segment has started, - // |segment_start_time_| won't be null. - if (!segment_start_time_) + if (!segment_start_time_) { + DCHECK(!subsegment_start_time_); + // Discard samples before segment start. If the segment has started, + // |segment_start_time_| won't be null. return Status::OK; - last_sample_end_timestamp_ = timestamp + sample->duration(); + } + + segment_start_time_ = std::min(segment_start_time_.value(), timestamp); + subsegment_start_time_ = std::min(subsegment_start_time_.value(), timestamp); + max_segment_time_ = + std::max(max_segment_time_, timestamp + sample->duration()); return DispatchMediaSample(kStreamIndex, std::move(sample)); } @@ -132,8 +150,7 @@ Status ChunkingHandler::EndSegmentIfStarted() const { auto segment_info = std::make_shared(); segment_info->start_timestamp = segment_start_time_.value(); - segment_info->duration = - last_sample_end_timestamp_ - segment_start_time_.value(); + segment_info->duration = max_segment_time_ - segment_start_time_.value(); return DispatchSegmentInfo(kStreamIndex, std::move(segment_info)); } @@ -144,7 +161,7 @@ Status ChunkingHandler::EndSubsegmentIfStarted() const { auto subsegment_info = std::make_shared(); subsegment_info->start_timestamp = subsegment_start_time_.value(); subsegment_info->duration = - last_sample_end_timestamp_ - subsegment_start_time_.value(); + max_segment_time_ - subsegment_start_time_.value(); subsegment_info->is_subsegment = true; return DispatchSegmentInfo(kStreamIndex, std::move(subsegment_info)); } diff --git a/packager/media/chunking/chunking_handler.h b/packager/media/chunking/chunking_handler.h index 55cc533090..8159c8758d 100644 --- a/packager/media/chunking/chunking_handler.h +++ b/packager/media/chunking/chunking_handler.h @@ -80,9 +80,8 @@ class ChunkingHandler : public MediaHandler { base::Optional segment_start_time_; base::Optional subsegment_start_time_; + int64_t max_segment_time_ = 0; uint32_t time_scale_ = 0; - // The end timestamp of the last dispatched sample. - int64_t last_sample_end_timestamp_ = 0; // The offset is applied to sample timestamps so a full segment is generated // after cue points.