vlc | branch: master | Francois Cartegnie <[email protected]> | Wed Feb 10 20:10:15 2016 +0100| [9d7819b98105ef8695d65be565ef1c116b2ad991] | committer: Francois Cartegnie
demux: hls: fix integer reading > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9d7819b98105ef8695d65be565ef1c116b2ad991 --- modules/demux/adaptative/http/HTTPConnection.cpp | 3 +++ modules/demux/adaptative/playlist/ID.cpp | 1 + modules/demux/adaptative/playlist/Segment.cpp | 1 + modules/demux/adaptative/playlist/SegmentTimeline.cpp | 1 + modules/demux/adaptative/tools/Conversions.cpp | 1 + modules/demux/adaptative/tools/Conversions.hpp | 1 + modules/demux/dash/mpd/Representation.cpp | 5 +++++ modules/demux/hls/playlist/HLSSegment.cpp | 1 + modules/demux/hls/playlist/Tags.cpp | 3 +++ modules/demux/smooth/playlist/Representation.cpp | 2 ++ 10 files changed, 19 insertions(+) diff --git a/modules/demux/adaptative/http/HTTPConnection.cpp b/modules/demux/adaptative/http/HTTPConnection.cpp index e2a7cee..dd148ea 100644 --- a/modules/demux/adaptative/http/HTTPConnection.cpp +++ b/modules/demux/adaptative/http/HTTPConnection.cpp @@ -179,6 +179,7 @@ int HTTPConnection::parseReply() return VLC_ENOOBJ; std::istringstream ss(line.substr(9)); + ss.imbue(std::locale("C")); int replycode; ss >> replycode; if (replycode != 200 && replycode != 206) @@ -239,6 +240,7 @@ void HTTPConnection::onHeader(const std::string &key, if(key == "Content-Length") { std::istringstream ss(value); + ss.imbue(std::locale("C")); size_t length; ss >> length; contentLength = length; @@ -264,6 +266,7 @@ std::string HTTPConnection::buildRequestHeader(const std::string &path) const std::string HTTPConnection::extraRequestHeaders() const { std::stringstream ss; + ss.imbue(std::locale("C")); if(bytesRange.isValid()) { ss << "Range: bytes=" << bytesRange.getStartByte() << "-"; diff --git a/modules/demux/adaptative/playlist/ID.cpp b/modules/demux/adaptative/playlist/ID.cpp index 00137f5..a475a40 100644 --- a/modules/demux/adaptative/playlist/ID.cpp +++ b/modules/demux/adaptative/playlist/ID.cpp @@ -30,6 +30,7 @@ ID::ID(const std::string &id_) ID::ID(uint64_t id_) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << "default_id#" << id_; id = ss.str(); } diff --git a/modules/demux/adaptative/playlist/Segment.cpp b/modules/demux/adaptative/playlist/Segment.cpp index f23d37f..d196d2b 100644 --- a/modules/demux/adaptative/playlist/Segment.cpp +++ b/modules/demux/adaptative/playlist/Segment.cpp @@ -123,6 +123,7 @@ size_t ISegment::getOffset() const void ISegment::debug(vlc_object_t *obj, int indent) const { std::stringstream ss; + ss.imbue(std::locale("C")); ss << std::string(indent, ' ') << debugName << " #" << getSequenceNumber(); ss << " url=" << getUrlSegment().toString(); if(startByte!=endByte) diff --git a/modules/demux/adaptative/playlist/SegmentTimeline.cpp b/modules/demux/adaptative/playlist/SegmentTimeline.cpp index 489b9fa..f249a56 100644 --- a/modules/demux/adaptative/playlist/SegmentTimeline.cpp +++ b/modules/demux/adaptative/playlist/SegmentTimeline.cpp @@ -274,6 +274,7 @@ bool SegmentTimeline::Element::contains(stime_t time) const void SegmentTimeline::Element::debug(vlc_object_t *obj, int indent) const { std::stringstream ss; + ss.imbue(std::locale("C")); ss << std::string(indent + 1, ' ') << "Element #" << number << " d=" << d << " r=" << r << " @t=" << t; msg_Dbg(obj, "%s", ss.str().c_str()); diff --git a/modules/demux/adaptative/tools/Conversions.cpp b/modules/demux/adaptative/tools/Conversions.cpp index 8f2c16b..126626d 100644 --- a/modules/demux/adaptative/tools/Conversions.cpp +++ b/modules/demux/adaptative/tools/Conversions.cpp @@ -96,6 +96,7 @@ UTCTime::UTCTime(const std::string &str) enum { UTCTIME_YEAR = 0, UTCTIME_MON, UTCTIME_DAY, UTCTIME_HOUR, UTCTIME_MIN, UTCTIME_SEC, UTCTIME_MSEC, UTCTIME_TZ }; int values[8] = {0}; std::istringstream in(str); + in.imbue(std::locale("C")); try { diff --git a/modules/demux/adaptative/tools/Conversions.hpp b/modules/demux/adaptative/tools/Conversions.hpp index 9068445..bbc9d3f 100644 --- a/modules/demux/adaptative/tools/Conversions.hpp +++ b/modules/demux/adaptative/tools/Conversions.hpp @@ -57,6 +57,7 @@ template<typename T> class Integer try { std::istringstream in(str); + in.imbue(std::locale("C")); in >> value; } catch (int) { value = 0; diff --git a/modules/demux/dash/mpd/Representation.cpp b/modules/demux/dash/mpd/Representation.cpp index 1f88d9c..ff5f5e5 100644 --- a/modules/demux/dash/mpd/Representation.cpp +++ b/modules/demux/dash/mpd/Representation.cpp @@ -102,6 +102,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(pos != std::string::npos) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << getScaledTimeBySegmentNumber(number, templ); ret.replace(pos, std::string("$Time$").length(), ss.str()); } @@ -110,6 +111,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(pos != std::string::npos) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << getLiveTemplateNumberOffset(number, templ); ret.replace(pos, std::string("$Number$").length(), ss.str()); } @@ -124,6 +126,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(fmtend != std::string::npos) { std::istringstream iss(ret.substr(fmtstart, fmtend - fmtstart + 1)); + iss.imbue(std::locale("C")); try { size_t width; @@ -131,6 +134,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if (iss.peek() != '$' && iss.peek() != 'd') throw VLC_EGENERIC; std::stringstream oss; + oss.imbue(std::locale("C")); oss.width(width); /* set format string length */ oss.fill('0'); oss << getLiveTemplateNumberOffset(number, templ); @@ -145,6 +149,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(pos != std::string::npos) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << getBandwidth(); ret.replace(pos, std::string("$Bandwidth$").length(), ss.str()); } diff --git a/modules/demux/hls/playlist/HLSSegment.cpp b/modules/demux/hls/playlist/HLSSegment.cpp index c7130a9..a9d4b5d 100644 --- a/modules/demux/hls/playlist/HLSSegment.cpp +++ b/modules/demux/hls/playlist/HLSSegment.cpp @@ -136,6 +136,7 @@ void HLSSegment::setEncryption(SegmentEncryption &enc) void HLSSegment::debug(vlc_object_t *obj, int indent) const { std::stringstream ss; + ss.imbue(std::locale("C")); ss << std::string(indent, ' ') << debugName << " #" << (getSequenceNumber() - Segment::SEQUENCE_FIRST) << " url=" << getUrlSegment().toString(); diff --git a/modules/demux/hls/playlist/Tags.cpp b/modules/demux/hls/playlist/Tags.cpp index 9c25fc4..9e890f5 100644 --- a/modules/demux/hls/playlist/Tags.cpp +++ b/modules/demux/hls/playlist/Tags.cpp @@ -37,6 +37,7 @@ Attribute::Attribute(const std::string &name_, const std::string &value_) uint64_t Attribute::decimal() const { std::istringstream is(value); + is.imbue(std::locale("C")); uint64_t ret; is >> ret; return ret; @@ -72,6 +73,7 @@ std::pair<std::size_t,std::size_t> Attribute::getByteRange() const std::size_t length = 0; std::size_t offset = 0; std::istringstream is(value); + is.imbue(std::locale("C")); if(!is.eof()) { @@ -92,6 +94,7 @@ std::pair<int, int> Attribute::getResolution() const int w = 0, h = 0; std::istringstream is(value); + is.imbue(std::locale("C")); if(!is.eof()) { is >> w; diff --git a/modules/demux/smooth/playlist/Representation.cpp b/modules/demux/smooth/playlist/Representation.cpp index 1e79431..3d87a2d 100644 --- a/modules/demux/smooth/playlist/Representation.cpp +++ b/modules/demux/smooth/playlist/Representation.cpp @@ -56,6 +56,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(pos != std::string::npos) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << templ->segmentTimeline.Get()->getScaledPlaybackTimeByElementNumber(number); ret.replace(pos, std::string("{start_time}").length(), ss.str()); } @@ -67,6 +68,7 @@ std::string Representation::contextualize(size_t number, const std::string &comp if(pos != std::string::npos) { std::stringstream ss; + ss.imbue(std::locale("C")); ss << getBandwidth(); ret.replace(pos, std::string("{bitrate}").length(), ss.str()); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
