[vlc-commits] demux: adaptative: split segments using interface

Francois Cartegnie git at videolan.org
Tue May 12 18:28:58 CEST 2015


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue May 12 00:18:08 2015 +0200| [f6f45bce06c80a79e43dae3411d7e184e1f9b791] | committer: Francois Cartegnie

demux: adaptative: split segments using interface

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f6f45bce06c80a79e43dae3411d7e184e1f9b791
---

 modules/demux/adaptative/playlist/Segment.cpp            |    7 ++++++-
 modules/demux/adaptative/playlist/Segment.h              |    6 ++++--
 modules/demux/adaptative/playlist/SegmentInformation.cpp |    8 ++++----
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/modules/demux/adaptative/playlist/Segment.cpp b/modules/demux/adaptative/playlist/Segment.cpp
index e6acd87..0cd0b82 100644
--- a/modules/demux/adaptative/playlist/Segment.cpp
+++ b/modules/demux/adaptative/playlist/Segment.cpp
@@ -215,7 +215,7 @@ IndexSegment::IndexSegment(ICanonicalUrl *parent) :
     classId = CLASSID_INDEXSEGMENT;
 }
 
-SubSegment::SubSegment(Segment *main, size_t start, size_t end) :
+SubSegment::SubSegment(ISegment *main, size_t start, size_t end) :
     ISegment(main), parent(main)
 {
     setByteRange(start, end);
@@ -234,3 +234,8 @@ std::vector<ISegment*> SubSegment::subSegments()
     list.push_back(this);
     return list;
 }
+
+void SubSegment::addSubSegment(SubSegment *)
+{
+
+}
diff --git a/modules/demux/adaptative/playlist/Segment.h b/modules/demux/adaptative/playlist/Segment.h
index 20d0bb7..bd16ec2 100644
--- a/modules/demux/adaptative/playlist/Segment.h
+++ b/modules/demux/adaptative/playlist/Segment.h
@@ -55,6 +55,7 @@ namespace adaptative
                 virtual void                            setByteRange    (size_t start, size_t end);
                 virtual size_t                          getOffset       () const;
                 virtual std::vector<ISegment*>          subSegments     () = 0;
+                virtual void                            addSubSegment   (SubSegment *) = 0;
                 virtual std::string                     toString        (int = 0) const;
                 virtual bool                            contains        (size_t byte) const;
                 int                                     getClassId      () const;
@@ -121,12 +122,13 @@ namespace adaptative
         class SubSegment : public ISegment
         {
             public:
-                SubSegment(Segment *, size_t start, size_t end);
+                SubSegment(ISegment *, size_t start, size_t end);
                 virtual Url getUrlSegment() const; /* impl */
                 virtual std::vector<ISegment*> subSegments();
+                virtual void addSubSegment(SubSegment *);
                 static const int CLASSID_SUBSEGMENT = 4;
             private:
-                Segment *parent;
+                ISegment *parent;
         };
     }
 }
diff --git a/modules/demux/adaptative/playlist/SegmentInformation.cpp b/modules/demux/adaptative/playlist/SegmentInformation.cpp
index 350d460..5a50112 100644
--- a/modules/demux/adaptative/playlist/SegmentInformation.cpp
+++ b/modules/demux/adaptative/playlist/SegmentInformation.cpp
@@ -267,13 +267,13 @@ void SegmentInformation::setSegmentTemplate(MediaSegmentTemplate *templ)
     mediaSegmentTemplate = templ;
 }
 
-static void insertIntoSegment(std::vector<Segment *> &seglist, size_t start,
+static void insertIntoSegment(std::vector<ISegment *> &seglist, size_t start,
                               size_t end, mtime_t time)
 {
-    std::vector<Segment *>::iterator segIt;
+    std::vector<ISegment *>::iterator segIt;
     for(segIt = seglist.begin(); segIt < seglist.end(); ++segIt)
     {
-        Segment *segment = *segIt;
+        ISegment *segment = *segIt;
         if(segment->getClassId() == Segment::CLASSID_SEGMENT &&
            segment->contains(end + segment->getOffset()))
         {
@@ -289,7 +289,7 @@ static void insertIntoSegment(std::vector<Segment *> &seglist, size_t start,
 
 void SegmentInformation::SplitUsingIndex(std::vector<SplitPoint> &splitlist)
 {
-    std::vector<Segment *> seglist = segmentList->getSegments();
+    std::vector<ISegment *> seglist = getSegments(INFOTYPE_MEDIA);
     std::vector<SplitPoint>::const_iterator splitIt;
     size_t start = 0, end = 0;
     mtime_t time = 0;



More information about the vlc-commits mailing list