]> git.sesse.net Git - vlc/blob - modules/stream_filter/dash/mpd/SegmentInfoCommon.h
dash: Adding a SegmentInfoCommon class.
[vlc] / modules / stream_filter / dash / mpd / SegmentInfoCommon.h
1 /*****************************************************************************
2  * SegmentInfoCommon.h: Implement the common part for both SegmentInfoDefault
3  *                      and SegmentInfo
4  *****************************************************************************
5  * Copyright (C) 1998-2007 VLC authors and VideoLAN
6  * $Id$
7  *
8  * Authors: Hugo BeauzĂ©e-Luyssen <beauze.h@gmail.com>
9  *
10  * This program is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation; either version 2.1 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program; if not, write to the Free Software Foundation,
22  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #ifndef SEGMENTINFOCOMMON_H
26 #define SEGMENTINFOCOMMON_H
27
28 #include <string>
29 #include <list>
30
31 namespace dash
32 {
33     namespace mpd
34     {
35         class Segment;
36         class SegmentTimeline;
37
38         class SegmentInfoCommon
39         {
40             public:
41                 SegmentInfoCommon();
42                 time_t                  getDuration() const;
43                 void                    setDuration( time_t duration );
44                 int                     getStartIndex() const;
45                 void                    setStartIndex( int startIndex );
46                 const Segment*          getInitialisationSegment() const;
47                 void                    setInitialisationSegment( const Segment* seg );
48                 const std::list<std::string>&   getBaseURL() const;
49                 void                    appendBaseURL( const std::string& url );
50                 const SegmentTimeline*  getSegmentTimeline() const;
51                 void                    setSegmentTimeline( const SegmentTimeline *segTl );
52
53             private:
54                 time_t                  duration;
55                 int                     startIndex;
56                 const Segment*          initialisationSegment;
57                 std::list<std::string>  baseURLs;
58                 const SegmentTimeline*  segmentTimeline;
59         };
60     }
61 }
62
63 #endif // SEGMENTINFOCOMMON_H