[Sumover-dev] [svn commit] r4233 - in vic/branches/cc: rtp
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Wed Jul 30 19:42:58 BST 2008
Author: soohyunc
Date: Wed Jul 30 19:42:57 2008
New Revision: 4233
Modified:
vic/branches/cc/cc/cc.cpp
vic/branches/cc/rtp/session.cpp
vic/branches/cc/rtp/session.h
vic/branches/cc/rtp/transmitter.cpp
vic/branches/cc/rtp/transmitter.h
Log:
o AckVec (bit vector)
o currently, it just adds up the received seqno from the sender
Modified: vic/branches/cc/cc/cc.cpp
==============================================================================
--- vic/branches/cc/cc/cc.cpp (original)
+++ vic/branches/cc/cc/cc.cpp Wed Jul 30 19:42:57 2008
@@ -56,7 +56,7 @@
// sequence number must be greater than zero
assert (seqno_ > 0);
- debug_msg("sent seqno: %d\n", seqno_);
+ debug_msg("sent seqno: %d\n", seqno_);
}
u_int16_t CcManager::cc_get_seqno() {
Modified: vic/branches/cc/rtp/session.cpp
==============================================================================
--- vic/branches/cc/rtp/session.cpp (original)
+++ vic/branches/cc/rtp/session.cpp Wed Jul 30 19:42:57 2008
@@ -30,6 +30,8 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
+ *
+ * $Id$
*/
static const char rcsid[] =
"@(#) $Header$ (LBL)";
@@ -218,7 +220,10 @@
sdes_seq_(0),
rtcp_inv_bw_(0.),
rtcp_avg_size_(128.),
-confid_(-1)
+confid_(-1),
+seqno_(0), // RTP packet sequence number (from RTP header)
+lastseq_(0), // last received packet's seqno
+ackvec_(0) // bit vector (AckVec)
{
/*XXX For adios() to send bye*/
manager = this;
@@ -777,21 +782,36 @@
return;
}
- rtphdr* rh = (rtphdr*) pb->data;
- u_int16_t seqno = ntohs(rh->rh_seqno); // received packet seqno
- debug_msg("received seqno: %d\n", seqno);
+ rtphdr* rh = (rtphdr*)pb->data;
+ seqno_ = ntohs(rh->rh_seqno); // received packet seqno
+ debug_msg("received seqno: %d\n", seqno_);
// Ignore loopback packets
if (!loopback_) {
- rtphdr* rh = (rtphdr*)pb->data;
+ //rtphdr* rh = (rtphdr*)pb->data;
SourceManager& sm = SourceManager::instance();
if (rh->rh_ssrc == (*sm.localsrc()).srcid()) {
- pb->release();
+ debug_msg("(loopback) seqno: %d\n", seqno_);
+ pb->release(); // releasing loopback packet
return;
}
+ } // now, loopback packets ignored (if disabled)
+
+ // set bit vector
+ for (int i = lastseq_; i <= seqno_; i++) {
+ SET_BIT_VEC (ackvec_, 1);
+ }
+
+ // printing bit vector
+ bool isThere;
+ printf("XXX received packet number: ");
+ for (int i = lastseq_; i <= seqno_; i++) {
+ isThere = SEE_BIT_VEC (ackvec_, i, seqno_);
+ printf(" %d: %s ", i, isThere ? "OK" : "NOK");
}
+ printf("\n");
+ lastseq_ = seqno_;
- //rtphdr* rh = (rtphdr*)pb->data;
int version = pb->data[0] >> 6;
//int version = *(u_char*)rh >> 6;
if (version != 2) {
@@ -1068,7 +1088,7 @@
memcpy(buf, (char*)&cp[2], len);
buf[len] = 0;
s->sdes(type, buf);
- } else
+ } // else
/*XXX*/;
cp = eopt;
Modified: vic/branches/cc/rtp/session.h
==============================================================================
--- vic/branches/cc/rtp/session.h (original)
+++ vic/branches/cc/rtp/session.h Wed Jul 30 19:42:57 2008
@@ -31,6 +31,7 @@
* SUCH DAMAGE.
*
* @(#) $Header$ (LBL)
+ * $Id$
*/
#ifndef vic_session_h
@@ -108,6 +109,12 @@
SessionManager& sm_;
};
+// set AckVec bitmap
+#define SET_BIT_VEC(ackvec_, bit) (ackvec_ = ((ackvec_ << 1) | bit))
+
+// see AckVec bitmap
+#define SEE_BIT_VEC(ackvec_, ix, seqno) ((1 << (seqno - ix)) & ackvec_)
+
class SessionManager : public Transmitter, public MtuAlloc {
public:
SessionManager();
@@ -183,6 +190,13 @@
u_char* pktbuf_;
SourceManager *sm_;
+
+ // RTP packet sequence number (for the use of AckVec)
+ u_int16_t seqno_; // RTP packet sequence number
+ u_int16_t lastseq_; // last packet's seqno
+
+ // AckVector
+ u_int32_t ackvec_; // this is a bit vector
};
class AudioSessionManager : public SessionManager {
Modified: vic/branches/cc/rtp/transmitter.cpp
==============================================================================
--- vic/branches/cc/rtp/transmitter.cpp (original)
+++ vic/branches/cc/rtp/transmitter.cpp Wed Jul 30 19:42:57 2008
@@ -29,6 +29,8 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
+ *
+ * $Id$
*/
static const char rcsid[] =
"@(#) $Header$ (LBL)";
Modified: vic/branches/cc/rtp/transmitter.h
==============================================================================
--- vic/branches/cc/rtp/transmitter.h (original)
+++ vic/branches/cc/rtp/transmitter.h Wed Jul 30 19:42:57 2008
@@ -31,6 +31,7 @@
* SUCH DAMAGE.
*
* @(#) $Header$ (LBL)
+ * $Id$
*/
#ifndef vic_transmitter_h
More information about the Sumover-dev
mailing list