]> git.sesse.net Git - vlc/blob - modules/stream_filter/dash/mpd/SegmentInfoCommon.h
stream_filter: dash: deduplicate parser code
[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 #include <ctime>
31
32 namespace dash
33 {
34     namespace mpd
35     {
36         class Segment;
37         class SegmentTimeline;
38
39         class SegmentInfoCommon
40         {
41             public:
42                 SegmentInfoCommon();
43                 virtual ~SegmentInfoCommon();
44                 time_t                  getDuration() const;
45                 void                    setDuration( time_t duration );
46                 int                     getStartIndex() const;
47                 void                    setStartIndex( int startIndex );
48                 Segment*                getInitialisationSegment() const;
49                 void                    setInitialisationSegment( Segment* seg );
50                 const std::list<std::string>&   getBaseURL() const;
51                 void                    appendBaseURL( const std::string& url );
52                 const SegmentTimeline*  getSegmentTimeline() const;
53                 void                    setSegmentTimeline( const SegmentTimeline *segTl );
54
55             private:
56                 time_t                  duration;
57                 int                     startIndex;
58                 Segment*                initialisationSegment;
59                 std::list<std::string>  baseURLs;
60                 const SegmentTimeline*  segmentTimeline;
61         };
62     }
63 }
64
65 #endif // SEGMENTINFOCOMMON_H