diff -Nru kodi-inputstream-adaptive-2.3.15/debian/changelog kodi-inputstream-adaptive-2.3.16/debian/changelog --- kodi-inputstream-adaptive-2.3.15/debian/changelog 2019-02-11 19:32:31.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/debian/changelog 2013-05-31 22:59:22.000000000 +0000 @@ -1,4 +1,4 @@ -kodi-inputstream-adaptive (2.3.15-1~xenial) xenial; urgency=low +kodi-inputstream-adaptive (2.3.16-1~xenial) xenial; urgency=low [ kodi ] * autogenerated dummy changelog diff -Nru kodi-inputstream-adaptive-2.3.15/inputstream.adaptive/addon.xml.in kodi-inputstream-adaptive-2.3.16/inputstream.adaptive/addon.xml.in --- kodi-inputstream-adaptive-2.3.15/inputstream.adaptive/addon.xml.in 2019-02-11 19:31:39.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/inputstream.adaptive/addon.xml.in 2013-05-31 22:59:22.000000000 +0000 @@ -1,7 +1,7 @@ @ADDON_DEPENDS@ @@ -17,6 +17,11 @@ InputStream client for adaptive streams @PLATFORM@ +v2.3.16 (2019-03-25) +- TTML parser fix +- [HLS] Add HEVC streams / Fix extra_data_size in ts parser +- [HLS] effective URL for license + v2.3.15 (2019-02-11) - Fix windows build diff -Nru kodi-inputstream-adaptive-2.3.15/lib/mpegts/ES_hevc.cpp kodi-inputstream-adaptive-2.3.16/lib/mpegts/ES_hevc.cpp --- kodi-inputstream-adaptive-2.3.15/lib/mpegts/ES_hevc.cpp 2018-11-05 15:40:35.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/lib/mpegts/ES_hevc.cpp 2013-05-31 22:59:22.000000000 +0000 @@ -57,6 +57,9 @@ uint32_t startcode = m_StartCode; bool frameComplete = false; + if (m_NeedSPS) + stream_info.extra_data_size = 0; + while (p < es_len) { startcode = startcode << 8 | es_buf[p++]; diff -Nru kodi-inputstream-adaptive-2.3.15/README.md kodi-inputstream-adaptive-2.3.16/README.md --- kodi-inputstream-adaptive-2.3.15/README.md 2019-02-11 19:31:39.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/README.md 2013-05-31 22:59:22.000000000 +0000 @@ -1,4 +1,4 @@ -# inputstream.adaptive (2.3.15) +# inputstream.adaptive (2.3.16) This is an adaptive file addon for kodi's new InputStream Interface. diff -Nru kodi-inputstream-adaptive-2.3.15/src/parser/HLSTree.cpp kodi-inputstream-adaptive-2.3.16/src/parser/HLSTree.cpp --- kodi-inputstream-adaptive-2.3.15/src/parser/HLSTree.cpp 2019-01-14 10:41:57.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/src/parser/HLSTree.cpp 2013-05-31 22:59:22.000000000 +0000 @@ -58,6 +58,13 @@ { if (codecs.empty() || codecs.find("avc1.") != std::string::npos) return "h264"; + else if (!codecs.empty()) + { + if (codecs.find("hvc1.") != std::string::npos) + return "hvc1"; + else if (codecs.find("hev1.") != std::string::npos) + return "hev1"; + } return ""; } @@ -518,6 +525,10 @@ } if (keyParts.size() > 1) parseheader(headers, keyParts[1].c_str()); + + if (!effective_url_.empty() && url.find(base_url_) == 0) + url.replace(0, base_url_.size(), effective_url_); + if (download(url.c_str(), headers, &stream, false)) { pssh.defaultKID_ = stream.str(); diff -Nru kodi-inputstream-adaptive-2.3.15/src/parser/TTML.cpp kodi-inputstream-adaptive-2.3.16/src/parser/TTML.cpp --- kodi-inputstream-adaptive-2.3.15/src/parser/TTML.cpp 2019-01-16 15:19:10.000000000 +0000 +++ kodi-inputstream-adaptive-2.3.16/src/parser/TTML.cpp 2013-05-31 22:59:22.000000000 +0000 @@ -145,9 +145,10 @@ text(void *data, const char *s, int len) { TTML2SRT *ttml(reinterpret_cast(data)); - + if (ttml->m_node & TTML2SRT::NODE_P) - ttml->m_strXMLText += std::string(s, len); + if (len > 1 || s[len - 1] != '\n') + ttml->m_strXMLText += std::string(s, len); } static void XMLCALL @@ -290,11 +291,14 @@ else { unsigned int th, tm, ts, tms; - char del; - if (sscanf(tmchar, "%u:%u:%u%c%2u", &th, &tm, &ts, &del, &tms) == 5) + char del, ctms[3]; + if (sscanf(tmchar, "%u:%u:%u%c%3c", &th, &tm, &ts, &del, ctms) == 5) { + sscanf(ctms, "%3u", &tms); + if (strlen(ctms) == 2) + tms = tms*10; ret = th * 3600 + tm * 60 + ts; - ret = ret * 1000 + tms * 10; + ret = ret * 1000 + tms; ret = (ret * m_timescale) / 1000; } } @@ -332,7 +336,7 @@ if (!curStyle.color.empty()) { strFmt = ""; - strFmtEnd = ""; + strFmtEnd = ""; } if (curStyle.bold == 1) {