From 260a0ceb68c2862fd4d8401d5c7432eec98b808d Mon Sep 17 00:00:00 2001 From: Thulinma Date: Fri, 6 Mar 2015 11:19:32 +0100 Subject: [PATCH] Fixed various HLS problems with LQ/short inputs --- src/output/output_hls.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/output/output_hls.cpp b/src/output/output_hls.cpp index 3658dff1..62456123 100644 --- a/src/output/output_hls.cpp +++ b/src/output/output_hls.cpp @@ -20,6 +20,9 @@ namespace Mist { for (std::map::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){ if (it->second.codec == "H264"){ int bWidth = it->second.bps * 2; + if (bWidth < 5){ + bWidth = 5; + } if (audioId != -1){ bWidth += myMeta.tracks[audioId].bps * 2; } @@ -49,6 +52,9 @@ namespace Mist { longestFragment = it->getDuration(); } } + if ((myMeta.tracks[tid].lastms - myMeta.tracks[tid].firstms) / myMeta.tracks[tid].fragments.size() > longestFragment){ + longestFragment = (myMeta.tracks[tid].lastms - myMeta.tracks[tid].firstms) / myMeta.tracks[tid].fragments.size(); + } result << "#EXTM3U\r\n#EXT-X-TARGETDURATION:" << (longestFragment / 1000) + 1 << "\r\n"; std::deque lines;