RTP Audio System
2.0.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### RTP Audio Server Project #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Source State Info #### 00007 // #### #### 00008 // #### Copyright (C) 1999-2012 by Thomas Dreibholz #### 00009 // #### #### 00010 // #### Contact: #### 00011 // #### EMail: dreibh@iem.uni-due.de #### 00012 // #### WWW: https://www.nntb.no/~dreibh/rtpaudio #### 00013 // #### #### 00014 // #### ---------------------------------------------------------------- #### 00015 // #### #### 00016 // #### This program is free software: you can redistribute it and/or #### 00017 // #### modify it under the terms of the GNU General Public License as #### 00018 // #### published by the Free Software Foundation, either version 3 of #### 00019 // #### the License, or (at your option) any later version. #### 00020 // #### #### 00021 // #### This program is distributed in the hope that it will be useful, #### 00022 // #### but WITHOUT ANY WARRANTY; without even the implied warranty of #### 00023 // #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #### 00024 // #### GNU General Public License for more details. #### 00025 // #### #### 00026 // #### You should have received a copy of the GNU General Public #### 00027 // #### License along with this program. If not, see #### 00028 // #### <http://www.gnu.org/licenses/>. #### 00029 // #### #### 00030 // ########################################################################## 00031 // $Id: sourcestateinfo.h 1286 2011-12-18 13:43:16Z dreibh $ 00032 00033 00034 #ifndef SOURCESTATEINFO_H 00035 #define SOURCESTATEINFO_H 00036 00037 00038 #include "tdsystem.h" 00039 #include "synchronizable.h" 00040 #include "seqnumvalidator.h" 00041 00042 00055 class SourceStateInfo : public SeqNumValidator, 00056 public Synchronizable 00057 { 00058 // ====== Constructor ==================================================== 00059 public: 00063 SourceStateInfo(); 00064 00068 SourceStateInfo& operator=(const SourceStateInfo& original); 00069 00070 00071 // ====== Reset ========================================================== 00075 void reset(); 00076 00077 00078 // ====== Status functions =============================================== 00084 inline card32 getSSRC() const; 00085 00091 inline card32 getLSR() const; 00092 00098 card32 calculateDLSR() const; 00099 00105 inline void setLSR(const card32 lsr); 00106 00112 inline void setSSRC(card32 ssrc); 00113 00114 00115 // ====== Private data =================================================== 00116 private: 00117 card64 LSRUpdateTimeStamp; // Timestamp of last setLSR() call 00118 00119 card32 ReceivedPrior; // Packet received at last interval 00120 card32 ExpectedPrior; // Packet expected at last interval 00121 card32 FractionLost; // Fraction lost 00122 card32 SSRC; // Data source identifier 00123 card32 LSR; // Last SR packet from this source 00124 }; 00125 00126 00127 #include "sourcestateinfo.icc" 00128 00129 00130 #endif