From a232ae73e73ae4e8d8e88f8de83c20b02f245762 Mon Sep 17 00:00:00 2001 From: pingkai Date: Wed, 26 Feb 2020 15:40:47 +0800 Subject: [PATCH] feat(HlsParser): support EXT-X-BYTERANGE tag Signed-off-by: pingkai --- framework/demuxer/play_list/HlsParser.cpp | 2 +- framework/demuxer/play_list/segment.cpp | 6 ++++++ framework/demuxer/play_list/segment.h | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/framework/demuxer/play_list/HlsParser.cpp b/framework/demuxer/play_list/HlsParser.cpp index 4489bf190..ffe1c619d 100644 --- a/framework/demuxer/play_list/HlsParser.cpp +++ b/framework/demuxer/play_list/HlsParser.cpp @@ -231,7 +231,7 @@ namespace Cicada { } prevbyterangeoffset = range.first + range.second; - // segment->setByteRange(range.first, prevbyterangeoffset - 1); + pSegment->setByteRange(range.first, prevbyterangeoffset - 1); ctx_byterange = nullptr; } diff --git a/framework/demuxer/play_list/segment.cpp b/framework/demuxer/play_list/segment.cpp index 12f977507..0e2a4c018 100644 --- a/framework/demuxer/play_list/segment.cpp +++ b/framework/demuxer/play_list/segment.cpp @@ -43,4 +43,10 @@ namespace Cicada { { encryption = enc; } + + void segment::setByteRange(int64_t start, int64_t end) + { + rangeStart = start; + rangeEnd = end; + } } \ No newline at end of file diff --git a/framework/demuxer/play_list/segment.h b/framework/demuxer/play_list/segment.h index a31f9eb65..5b252c9a0 100644 --- a/framework/demuxer/play_list/segment.h +++ b/framework/demuxer/play_list/segment.h @@ -29,6 +29,8 @@ namespace Cicada{ void setEncryption(SegmentEncryption enc); + void setByteRange(int64_t start, int64_t end); + public: std::string mUri = ""; uint64_t startTime = 0; @@ -38,6 +40,8 @@ namespace Cicada{ static const int SEQUENCE_INVALID; static const int SEQUENCE_FIRST; SegmentEncryption encryption; + int64_t rangeStart {INT64_MIN}; + int64_t rangeEnd {INT64_MIN}; std::shared_ptr init_section{nullptr};