| Index: webrtc/pc/mediasession.cc
|
| diff --git a/webrtc/pc/mediasession.cc b/webrtc/pc/mediasession.cc
|
| index 6d8138daaca02e567b2f864e1336f27c4a92c646..52abfe855f6aef47fa83d7e1ce51321f090a2417 100644
|
| --- a/webrtc/pc/mediasession.cc
|
| +++ b/webrtc/pc/mediasession.cc
|
| @@ -211,55 +211,6 @@ static bool SelectCrypto(const MediaContentDescription* offer,
|
| return false;
|
| }
|
|
|
| -static const StreamParams* FindFirstStreamParamsByCname(
|
| - const StreamParamsVec& params_vec,
|
| - const std::string& cname) {
|
| - for (StreamParamsVec::const_iterator it = params_vec.begin();
|
| - it != params_vec.end(); ++it) {
|
| - if (cname == it->cname)
|
| - return &*it;
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| -// Generates a new CNAME or the CNAME of an already existing StreamParams
|
| -// if a StreamParams exist for another Stream in streams with sync_label
|
| -// sync_label.
|
| -static bool GenerateCname(const StreamParamsVec& params_vec,
|
| - const MediaSessionOptions::Streams& streams,
|
| - const std::string& synch_label,
|
| - std::string* cname) {
|
| - ASSERT(cname != NULL);
|
| - if (!cname)
|
| - return false;
|
| -
|
| - // Check if a CNAME exist for any of the other synched streams.
|
| - for (MediaSessionOptions::Streams::const_iterator stream_it = streams.begin();
|
| - stream_it != streams.end() ; ++stream_it) {
|
| - if (synch_label != stream_it->sync_label)
|
| - continue;
|
| -
|
| - // groupid is empty for StreamParams generated using
|
| - // MediaSessionDescriptionFactory.
|
| - const StreamParams* param = GetStreamByIds(params_vec, "", stream_it->id);
|
| - if (param) {
|
| - *cname = param->cname;
|
| - return true;
|
| - }
|
| - }
|
| - // No other stream seems to exist that we should sync with.
|
| - // Generate a random string for the RTCP CNAME, as stated in RFC 6222.
|
| - // This string is only used for synchronization, and therefore is opaque.
|
| - do {
|
| - if (!rtc::CreateRandomString(16, cname)) {
|
| - ASSERT(false);
|
| - return false;
|
| - }
|
| - } while (FindFirstStreamParamsByCname(params_vec, *cname));
|
| -
|
| - return true;
|
| -}
|
| -
|
| // Generate random SSRC values that are not already present in |params_vec|.
|
| // The generated values are added to |ssrcs|.
|
| // |num_ssrcs| is the number of the SSRC will be generated.
|
| @@ -444,15 +395,15 @@ static bool IsSctp(const MediaContentDescription* desc) {
|
| // media_type to content_description.
|
| // |current_params| - All currently known StreamParams of any media type.
|
| template <class C>
|
| -static bool AddStreamParams(
|
| - MediaType media_type,
|
| - const MediaSessionOptions::Streams& streams,
|
| - StreamParamsVec* current_streams,
|
| - MediaContentDescriptionImpl<C>* content_description,
|
| - const bool add_legacy_stream) {
|
| +static bool AddStreamParams(MediaType media_type,
|
| + const MediaSessionOptions& options,
|
| + StreamParamsVec* current_streams,
|
| + MediaContentDescriptionImpl<C>* content_description,
|
| + const bool add_legacy_stream) {
|
| const bool include_rtx_streams =
|
| ContainsRtxCodec(content_description->codecs());
|
|
|
| + const MediaSessionOptions::Streams& streams = options.streams;
|
| if (streams.empty() && add_legacy_stream) {
|
| // TODO(perkj): Remove this legacy stream when all apps use StreamParams.
|
| std::vector<uint32_t> ssrcs;
|
| @@ -483,13 +434,6 @@ static bool AddStreamParams(
|
| // MediaSessionDescriptionFactory.
|
| if (!param) {
|
| // This is a new stream.
|
| - // Get a CNAME. Either new or same as one of the other synched streams.
|
| - std::string cname;
|
| - if (!GenerateCname(*current_streams, streams, stream_it->sync_label,
|
| - &cname)) {
|
| - return false;
|
| - }
|
| -
|
| std::vector<uint32_t> ssrcs;
|
| if (IsSctp(content_description)) {
|
| GenerateSctpSids(*current_streams, &ssrcs);
|
| @@ -517,7 +461,7 @@ static bool AddStreamParams(
|
| }
|
| content_description->set_multistream(true);
|
| }
|
| - stream_param.cname = cname;
|
| + stream_param.cname = options.rtcp_cname;
|
| stream_param.sync_label = stream_it->sync_label;
|
| content_description->AddStream(stream_param);
|
|
|
| @@ -761,9 +705,8 @@ static bool CreateMediaContentOffer(
|
| offer->set_multistream(options.is_muc);
|
| offer->set_rtp_header_extensions(rtp_extensions);
|
|
|
| - if (!AddStreamParams(
|
| - offer->type(), options.streams, current_streams,
|
| - offer, add_legacy_stream)) {
|
| + if (!AddStreamParams(offer->type(), options, current_streams, offer,
|
| + add_legacy_stream)) {
|
| return false;
|
| }
|
|
|
| @@ -1080,9 +1023,8 @@ static bool CreateMediaContentAnswer(
|
| return false;
|
| }
|
|
|
| - if (!AddStreamParams(
|
| - answer->type(), options.streams, current_streams,
|
| - answer, add_legacy_stream)) {
|
| + if (!AddStreamParams(answer->type(), options, current_streams, answer,
|
| + add_legacy_stream)) {
|
| return false; // Something went seriously wrong.
|
| }
|
|
|
|
|