#include <string>
#include <vlc_common.h>
#include "StreamsType.hpp"
-#include "adaptationlogic/IAdaptationLogic.h"
+#include "adaptationlogic/AbstractAdaptationLogic.h"
#include "http/HTTPConnectionManager.h"
#include "http/Chunk.h"
namespace dash
{
+ class SegmentTracker;
+
namespace Streams
{
class AbstractStreamOutput;
bool operator==(const Stream &) const;
static Type mimeToType(const std::string &mime);
static Format mimeToFormat(const std::string &mime);
- void create(demux_t *, logic::IAdaptationLogic *);
+ void create(demux_t *, logic::AbstractAdaptationLogic *, SegmentTracker *);
bool isEOF() const;
mtime_t getPCR() const;
int getGroup() const;
int esCount() const;
+ bool seekAble() const;
size_t read(http::HTTPConnectionManager *);
+ bool setPosition(mtime_t, bool);
private:
http::Chunk *getChunk();
Type type;
Format format;
AbstractStreamOutput *output;
- logic::IAdaptationLogic *adaptationLogic;
+ logic::AbstractAdaptationLogic *adaptationLogic;
+ SegmentTracker *segmentTracker;
http::Chunk *currentChunk;
bool eof;
};
mtime_t getPCR() const;
int getGroup() const;
int esCount() const;
+ bool seekAble() const;
+ void setPosition(mtime_t);
protected:
mtime_t pcr;
int escount;
es_out_t *fakeesout; /* to intercept/proxy what is sent from demuxstream */
stream_t *demuxstream;
+ bool seekable;
private:
demux_t *realdemux;