Commit fedf1dcb authored by Christopher Mueller's avatar Christopher Mueller Committed by Hugo Beauzée-Luyssen

dash: segment added byterange and tochunk

Signed-off-by: default avatarHugo Beauzée-Luyssen <beauze.h@gmail.com>
parent 22230d8a
......@@ -28,24 +28,83 @@
#include "Segment.h"
using namespace dash::mpd;
using namespace dash::http;
std::string Segment::getSourceUrl() const
Segment::Segment () :
startByte (-1),
endByte (-1)
{
}
std::string Segment::getSourceUrl () const
{
return this->sourceUrl;
}
void Segment::setSourceUrl( const std::string &url )
void Segment::setSourceUrl ( const std::string &url )
{
if ( url.empty() == false )
this->sourceUrl = url;
}
bool Segment::isSingleShot() const
bool Segment::isSingleShot () const
{
return true;
}
void Segment::done()
void Segment::done ()
{
//Only used for a SegmentTemplate.
}
void Segment::addBaseUrl (BaseUrl *url)
{
this->baseUrls.push_back(url);
}
const std::vector<BaseUrl *>& Segment::getBaseUrls () const
{
return this->baseUrls;
}
void Segment::setByteRange (int start, int end)
{
this->startByte = start;
this->endByte = end;
}
int Segment::getStartByte () const
{
return this->startByte;
}
int Segment::getEndByte () const
{
return this->endByte;
}
dash::http::Chunk* Segment::toChunk ()
{
Chunk *chunk = new Chunk();
if(this->startByte != -1 && this->endByte != -1)
{
chunk->setStartByte(this->startByte);
chunk->setEndByte(this->endByte);
}
if(this->baseUrls.size() > 0)
{
std::stringstream ss;
ss << this->baseUrls.at(0)->getUrl() << this->sourceUrl;
chunk->setUrl(ss.str());
ss.clear();
for(size_t i = 1; i < this->baseUrls.size(); i++)
{
ss << this->baseUrls.at(i)->getUrl() << this->sourceUrl;
chunk->addOptionalUrl(ss.str());
ss.clear();
}
}
else
{
chunk->setUrl(this->sourceUrl);
}
return chunk;
}
......@@ -26,6 +26,10 @@
#define SEGMENT_H_
#include <string>
#include <sstream>
#include <vector>
#include "mpd/BaseUrl.h"
#include "http/Chunk.h"
namespace dash
{
......@@ -34,6 +38,7 @@ namespace dash
class Segment
{
public:
Segment();
virtual ~Segment(){}
virtual std::string getSourceUrl() const;
virtual void setSourceUrl( const std::string &url );
......@@ -42,11 +47,20 @@ namespace dash
* That is basically true when using an Url, and false
* when using an UrlTemplate
*/
virtual bool isSingleShot() const;
virtual void done();
virtual bool isSingleShot () const;
virtual void done ();
virtual void addBaseUrl (BaseUrl *url);
virtual const std::vector<BaseUrl *>& getBaseUrls () const;
virtual void setByteRange (int start, int end);
virtual int getStartByte () const;
virtual int getEndByte () const;
virtual dash::http::Chunk* toChunk ();
protected:
std::string sourceUrl;
std::string sourceUrl;
std::vector<BaseUrl *> baseUrls;
int startByte;
int endByte;
};
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment