vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Mon Nov 24 12:58:58 2014 +0100| [6a8ddb3478064f4fe96c63c368e9684ecf0c1b6f] | committer: Francois Cartegnie
stream_filter: dash: don't store http reply as member > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6a8ddb3478064f4fe96c63c368e9684ecf0c1b6f --- modules/stream_filter/dash/http/HTTPConnection.cpp | 12 +++++++----- modules/stream_filter/dash/http/HTTPConnection.h | 10 ++++++++-- modules/stream_filter/dash/http/PersistentConnection.cpp | 11 ++++++----- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/modules/stream_filter/dash/http/HTTPConnection.cpp b/modules/stream_filter/dash/http/HTTPConnection.cpp index 0804ada..75b1310 100644 --- a/modules/stream_filter/dash/http/HTTPConnection.cpp +++ b/modules/stream_filter/dash/http/HTTPConnection.cpp @@ -34,8 +34,7 @@ using namespace dash::http; HTTPConnection::HTTPConnection (stream_t *stream) : IHTTPConnection (stream), - peekBufferLen (0), - contentLength (0) + peekBufferLen (0) { this->peekBuffer = new uint8_t[PEEKBUFFER]; } @@ -84,12 +83,15 @@ std::string HTTPConnection::getRequestHeader (const Chunk *chunk) const bool HTTPConnection::init (Chunk *chunk) { if (IHTTPConnection::init(chunk)) - return parseHeader(); + { + HeaderReply reply; + return parseHeader(&reply); + } else return false; } -bool HTTPConnection::parseHeader () +bool HTTPConnection::parseHeader (HeaderReply *reply) { std::string line = this->readLine(); @@ -99,7 +101,7 @@ bool HTTPConnection::parseHeader () while(line.compare("\r\n")) { if(!strncasecmp(line.c_str(), "Content-Length", 14)) - this->contentLength = atoi(line.substr(15,line.size()).c_str()); + reply->contentLength = atoi(line.substr(15,line.size()).c_str()); line = this->readLine(); diff --git a/modules/stream_filter/dash/http/HTTPConnection.h b/modules/stream_filter/dash/http/HTTPConnection.h index 97301ac..45bcb3c 100644 --- a/modules/stream_filter/dash/http/HTTPConnection.h +++ b/modules/stream_filter/dash/http/HTTPConnection.h @@ -49,12 +49,18 @@ namespace dash virtual int peek (const uint8_t **pp_peek, size_t i_peek); protected: + + class HeaderReply + { + public: + int contentLength; + }; + uint8_t *peekBuffer; size_t peekBufferLen; - int contentLength; virtual bool send (const std::string& data); - bool parseHeader (); + bool parseHeader (HeaderReply *); std::string readLine (); virtual std::string getRequestHeader(const Chunk *chunk) const; /* reimpl */ }; diff --git a/modules/stream_filter/dash/http/PersistentConnection.cpp b/modules/stream_filter/dash/http/PersistentConnection.cpp index 79ba500..72cb0cc 100644 --- a/modules/stream_filter/dash/http/PersistentConnection.cpp +++ b/modules/stream_filter/dash/http/PersistentConnection.cpp @@ -130,18 +130,19 @@ bool PersistentConnection::addChunk (Chunk *chunk) } bool PersistentConnection::initChunk (Chunk *chunk) { - if(this->parseHeader()) + HeaderReply reply; + if(parseHeader(&reply)) { - chunk->setLength(this->contentLength); + chunk->setLength(reply.contentLength); return true; } - if(!this->reconnect(chunk)) + if(!reconnect(chunk)) return false; - if(this->parseHeader()) + if(parseHeader(&reply)) { - chunk->setLength(this->contentLength); + chunk->setLength(reply.contentLength); return true; } _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits