RTP Audio System
2.0.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### Master Thesis Implementation #### 00004 // #### Management of Layered Variable Bitrate Multimedia Streams over #### 00005 // #### DiffServ with A Priori Knowledge #### 00006 // #### #### 00007 // #### ================================================================ #### 00008 // #### #### 00009 // #### #### 00010 // #### QoS Manager Interface #### 00011 // #### #### 00012 // #### Copyright (C) 1999-2012 by Thomas Dreibholz #### 00013 // #### #### 00014 // #### Contact: #### 00015 // #### EMail: dreibh@iem.uni-due.de #### 00016 // #### WWW: https://www.nntb.no/~dreibh/rtpaudio #### 00017 // #### #### 00018 // #### ---------------------------------------------------------------- #### 00019 // #### #### 00020 // #### This program is free software: you can redistribute it and/or #### 00021 // #### modify it under the terms of the GNU General Public License as #### 00022 // #### published by the Free Software Foundation, either version 3 of #### 00023 // #### the License, or (at your option) any later version. #### 00024 // #### #### 00025 // #### This program is distributed in the hope that it will be useful, #### 00026 // #### but WITHOUT ANY WARRANTY; without even the implied warranty of #### 00027 // #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #### 00028 // #### GNU General Public License for more details. #### 00029 // #### #### 00030 // #### You should have received a copy of the GNU General Public #### 00031 // #### License along with this program. If not, see #### 00032 // #### <http://www.gnu.org/licenses/>. #### 00033 // #### #### 00034 // ########################################################################## 00035 // $Id: qosmanagerinterface.h 1311 2011-12-23 09:01:29Z dreibh $ 00036 00037 00038 #ifndef QOSMANAGERINTERFACE_H 00039 #define QOSMANAGERINTERFACE_H 00040 00041 00042 #include "tdsystem.h" 00043 #include "abstractqosdescription.h" 00044 #include "managedstreaminterface.h" 00045 #include "rtcppacket.h" 00046 00047 00048 class QoSManagerInterface 00049 { 00050 // ====== Stream management ============================================== 00051 public: 00059 virtual void addStream(ManagedStreamInterface* stream, 00060 const cardinal sessionID = 0, 00061 const char* name = NULL) = 0; 00062 00068 virtual void removeStream(ManagedStreamInterface* stream) = 0; 00069 00075 virtual void updateStream(ManagedStreamInterface* stream) = 0; 00076 00077 00078 // ====== Events ========================================================= 00087 virtual void intervalChangeEvent(ManagedStreamInterface* stream, 00088 const bool isNew, 00089 const card64 when, 00090 const bool newRUList) = 0; 00091 00099 virtual void reportEvent(ManagedStreamInterface* stream, 00100 const RTCPReceptionReportBlock* report, 00101 const cardinal layer) = 0; 00102 00108 virtual void bufferFlushEvent(ManagedStreamInterface* stream, 00109 const cardinal layer) = 0; 00110 }; 00111 00112 00113 #endif