Browse Source

Assume passive role in an actpass scenario; Exposed the RTP Map iterator; Fixed setting the payload type

Staz M 4 years ago
parent
commit
97e23d00be
4 changed files with 15 additions and 2 deletions
  1. 3 0
      include/rtc/description.hpp
  2. 1 1
      include/rtc/rtp.hpp
  3. 7 0
      src/description.cpp
  4. 4 1
      src/icetransport.cpp

+ 3 - 0
include/rtc/description.hpp

@@ -163,6 +163,9 @@ public:
             void setMLine(string_view view);
         };
 
+        std::map<int, RTPMap>::iterator beginMaps();
+        std::map<int, RTPMap>::iterator endMaps();
+
 	private:
 		virtual string generateSdpLines(string_view eol) const override;
 

+ 1 - 1
include/rtc/rtp.hpp

@@ -69,7 +69,7 @@ public:
         _seqNumber = htons(newSeqNo);
     }
     inline void setPayloadType(uint8_t newPayloadType) {
-        _payloadType = _payloadType | (0b01111111u & newPayloadType);
+        _payloadType = (_payloadType & 0b10000000u) | (0b01111111u & newPayloadType);
     }
     inline void setSsrc(uint32_t ssrc) {
         _ssrc = htonl(ssrc);

+ 7 - 0
src/description.cpp

@@ -816,6 +816,13 @@ std::vector<uint32_t> Description::Media::getSSRCs() {
     return vec;
 }
 
+std::map<int, Description::Media::RTPMap>::iterator Description::Media::beginMaps() {
+    return mRtpMap.begin();
+}
+
+std::map<int, Description::Media::RTPMap>::iterator Description::Media::endMaps() {
+    return mRtpMap.end();
+}
 
 
 Description::Media::RTPMap::RTPMap(string_view mline) {

+ 4 - 1
src/icetransport.cpp

@@ -145,7 +145,10 @@ Description IceTransport::getLocalDescription(Description::Type type) const {
 }
 
 void IceTransport::setRemoteDescription(const Description &description) {
-	mRole = description.role() == Description::Role::Active ? Description::Role::Passive
+    if (description.role() == Description::Role::ActPass)
+        mRole = Description::Role::Passive;
+    else
+	    mRole = description.role() == Description::Role::Active ? Description::Role::Passive
 	                                                        : Description::Role::Active;
 	mMid = description.bundleMid();
 	if (juice_set_remote_description(mAgent.get(),