]> git.sesse.net Git - vlc/blob - modules/stream_filter/dash/mpd/SegmentInfoCommon.h
dash: Adding an implementation for UrlTemplate
[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                 virtual ~SegmentInfoCommon();
43                 time_t                  getDuration() const;
44                 void                    setDuration( time_t duration );
45                 int                     getStartIndex() const;
46                 void                    setStartIndex( int startIndex );
47                 Segment*                getInitialisationSegment() const;
48                 void                    setInitialisationSegment( Segment* seg );
49                 const std::list<std::string>&   getBaseURL() const;
50                 void                    appendBaseURL( const std::string& url );
51                 const SegmentTimeline*  getSegmentTimeline() const;
52                 void                    setSegmentTimeline( const SegmentTimeline *segTl );
53
54             private:
55                 time_t                  duration;
56                 int                     startIndex;
57                 Segment*                initialisationSegment;
58                 std::list<std::string>  baseURLs;
59                 const SegmentTimeline*  segmentTimeline;
60         };
61     }
62 }
63
64 #endif // SEGMENTINFOCOMMON_H