]> git.sesse.net Git - vlc/blob - modules/stream_filter/dash/mpd/IMPDManager.h
dash: Avoid some copies & useless initializations
[vlc] / modules / stream_filter / dash / mpd / IMPDManager.h
1 /*
2  * IMPDManager.h
3  *
4  *  Created on: Apr 22, 2011
5  *      Author: Christopher Müller
6  */
7
8 #ifndef IMPDMANAGER_H_
9 #define IMPDMANAGER_H_
10
11 #include "mpd/Period.h"
12 #include "mpd/Representation.h"
13 #include "mpd/ISegment.h"
14
15 namespace dash
16 {
17     namespace mpd
18     {
19         enum Profile
20         {
21             NotValid,
22             Full2011,
23             Basic,
24             BasicCM,
25         };
26         class IMPDManager
27         {
28             public:
29                 virtual const std::vector<Period *>&   getPeriods              () const                 = 0;
30                 virtual Period*                 getFirstPeriod          ()                              = 0;
31                 virtual Period*                 getNextPeriod           (Period *period)                = 0;
32                 virtual Representation*         getBestRepresentation   (Period *period)                = 0;
33                 virtual std::vector<ISegment *> getSegments             (Representation *rep)           = 0;
34                 virtual Representation*         getRepresentation       (Period *period, long bitrate)  = 0;
35                 virtual ~IMPDManager(){}
36         };
37     }
38 }
39 #endif /* IMPDMANAGER_H_ */