]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
sync
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 23 Feb 2006 21:57:57 +0000 (21:57 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 23 Feb 2006 21:57:57 +0000 (21:57 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@658 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/jrtplib/src/rtppacketbuilder.cpp
libs/jrtplib/src/rtppacketbuilder.h
libs/jrtplib/src/rtpsession.cpp
libs/jrtplib/src/rtpsession.h

index 5d2a25940155d3aec77bd9d973a1ec33bf6897a6..b1f787a95be67123fa16c0862a45e67998f45e34 100644 (file)
@@ -208,6 +208,14 @@ int RTPPacketBuilder::BuildPacket(const void *data,size_t len,
        return PrivateBuildPacket(data,len,pt,mark,timestampinc,false);
 }
 
+int RTPPacketBuilder::BuildPacket(const void *data,size_t len,
+                u_int8_t pt,bool mark,u_int32_t timestampinc, u_int32_t mseq)
+{
+       if (!init)
+               return ERR_RTP_PACKBUILD_NOTINIT;
+       return PrivateBuildPacket(data,len,pt,mark,timestampinc,false,0,0,0,mseq);
+}
+
 int RTPPacketBuilder::BuildPacketEx(const void *data,size_t len,
                   u_int16_t hdrextID,const void *hdrextdata,size_t numhdrextwords)
 {
@@ -234,9 +242,9 @@ int RTPPacketBuilder::BuildPacketEx(const void *data,size_t len,
 
 int RTPPacketBuilder::PrivateBuildPacket(const void *data,size_t len,
                          u_int8_t pt,bool mark,u_int32_t timestampinc,bool gotextension,
-                         u_int16_t hdrextID,const void *hdrextdata,size_t numhdrextwords)
+                         u_int16_t hdrextID,const void *hdrextdata,size_t numhdrextwords, u_int32_t mseq)
 {
-       RTPPacket p(pt,data,len,seqnr,timestamp,ssrc,mark,numcsrcs,csrcs,gotextension,hdrextID,
+       RTPPacket p(pt,data,len, mseq ? mseq : seqnr,timestamp,ssrc,mark,numcsrcs,csrcs,gotextension,hdrextID,
                    (u_int16_t)numhdrextwords,hdrextdata,buffer,maxpacksize);
        int status = p.GetCreationError();
 
@@ -260,7 +268,9 @@ int RTPPacketBuilder::PrivateBuildPacket(const void *data,size_t len,
        numpayloadbytes += (u_int32_t)p.GetPayloadLength();
        numpackets++;
        timestamp += timestampinc;
-       seqnr++;
+       if (mseq) {
+               seqnr++;
+       }
 
 
        return 0;
index 5f60d3c163a8fffb8d335802159fd673c26fe293..1129d8095b2f12593139b396c60cec7752541ba9 100644 (file)
@@ -61,6 +61,8 @@ public:
        int BuildPacket(const void *data,size_t len);
        int BuildPacket(const void *data,size_t len,
                        u_int8_t pt,bool mark,u_int32_t timestampinc);
+       int BuildPacket(const void *data,size_t len,
+                       u_int8_t pt,bool mark,u_int32_t timestampinc, u_int32_t mseq);
        int BuildPacketEx(const void *data,size_t len,
                          u_int16_t hdrextID,const void *hdrextdata,size_t numhdrextwords);
        int BuildPacketEx(const void *data,size_t len,
@@ -87,7 +89,7 @@ public:
 private:
        int PrivateBuildPacket(const void *data,size_t len,
                          u_int8_t pt,bool mark,u_int32_t timestampinc,bool gotextension,
-                         u_int16_t hdrextID = 0,const void *hdrextdata = 0,size_t numhdrextwords = 0);
+                         u_int16_t hdrextID = 0,const void *hdrextdata = 0,size_t numhdrextwords = 0,  u_int32_t mseq = 0);
 
        RTPRandom rtprnd;       
        size_t maxpacksize;
index 6cdd63ae1edb88c363bf0dfd0d9a58b62e12bc96..ec9645317a4392043839e75f14920d33751bdfbd 100644 (file)
@@ -508,7 +508,7 @@ int RTPSession::SendPacket(const void *data,size_t len)
 }
 
 int RTPSession::SendPacket(const void *data,size_t len,
-                u_int8_t pt,bool mark,u_int32_t timestampinc)
+                u_int8_t pt,bool mark,u_int32_t timestampinc, u_int32_t mseq)
 {
        int status;
 
@@ -516,7 +516,7 @@ int RTPSession::SendPacket(const void *data,size_t len,
                return ERR_RTP_SESSION_NOTCREATED;
        
        BUILDER_LOCK
-       if ((status = packetbuilder.BuildPacket(data,len,pt,mark,timestampinc)) < 0)
+       if ((status = packetbuilder.BuildPacket(data,len,pt,mark,timestampinc, mseq)) < 0)
        {
                BUILDER_UNLOCK
                return status;
index 07e1f6197eb7783b5e71cbca0ba987a6fe3442f5..274bb73c3eb04132da3f6c98d7de8c7020bcfc7c 100644 (file)
@@ -85,7 +85,7 @@ public:
 
        int SendPacket(const void *data,size_t len);
        int SendPacket(const void *data,size_t len,
-                       u_int8_t pt,bool mark,u_int32_t timestampinc);
+                       u_int8_t pt,bool mark,u_int32_t timestampinc, u_int32_t mseq = 0);
        int SendPacketEx(const void *data,size_t len,
                          u_int16_t hdrextID,const void *hdrextdata,size_t numhdrextwords);
        int SendPacketEx(const void *data,size_t len,