Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / libjingle / source / talk / app / webrtc / jsepsessiondescription.cc
index 8ec1458..23a7cdd 100644 (file)
 #include "talk/app/webrtc/jsepsessiondescription.h"
 
 #include "talk/app/webrtc/webrtcsdp.h"
-#include "talk/base/stringencode.h"
 #include "talk/session/media/mediasession.h"
+#include "webrtc/base/stringencode.h"
 
-using talk_base::scoped_ptr;
+using rtc::scoped_ptr;
 using cricket::SessionDescription;
 
 namespace webrtc {
@@ -59,8 +59,9 @@ const char SessionDescriptionInterface::kAnswer[] = "answer";
 const int JsepSessionDescription::kDefaultVideoCodecId = 100;
 const int JsepSessionDescription::kDefaultVideoCodecFramerate = 30;
 const char JsepSessionDescription::kDefaultVideoCodecName[] = "VP8";
-const int JsepSessionDescription::kMaxVideoCodecWidth = 1280;
-const int JsepSessionDescription::kMaxVideoCodecHeight = 720;
+// Used as default max video codec size before we have it in signaling.
+const int JsepSessionDescription::kMaxVideoCodecWidth = 3840;
+const int JsepSessionDescription::kMaxVideoCodecHeight = 2160;
 const int JsepSessionDescription::kDefaultVideoCodecPreference = 1;
 
 SessionDescriptionInterface* CreateSessionDescription(const std::string& type,
@@ -118,9 +119,6 @@ bool JsepSessionDescription::AddCandidate(
   }
   if (mediasection_index >= number_of_mediasections())
     return false;
-  if (candidate_collection_[mediasection_index].HasCandidate(candidate)) {
-    return true;  // Silently ignore this candidate if we already have it.
-  }
   const std::string content_name =
       description_->contents()[mediasection_index].name;
   const cricket::TransportInfo* transport_info =
@@ -137,10 +135,15 @@ bool JsepSessionDescription::AddCandidate(
     updated_candidate.set_password(transport_info->description.ice_pwd);
   }
 
-  candidate_collection_[mediasection_index].add(
-       new JsepIceCandidate(candidate->sdp_mid(),
-                            static_cast<int>(mediasection_index),
-                            updated_candidate));
+  scoped_ptr<JsepIceCandidate> updated_candidate_wrapper(
+      new JsepIceCandidate(candidate->sdp_mid(),
+                           static_cast<int>(mediasection_index),
+                           updated_candidate));
+  if (!candidate_collection_[mediasection_index].HasCandidate(
+          updated_candidate_wrapper.get()))
+    candidate_collection_[mediasection_index].add(
+        updated_candidate_wrapper.release());
+
   return true;
 }