Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(631)

Side by Side Diff: webrtc/pc/mediasession.cc

Issue 2685783014: Replace NULL with nullptr in all C++ files. (Closed)
Patch Set: Fixing android. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 return false; 156 return false;
157 } 157 }
158 } 158 }
159 AddMediaCryptos(cryptos, media); 159 AddMediaCryptos(cryptos, media);
160 return true; 160 return true;
161 } 161 }
162 #endif 162 #endif
163 163
164 const CryptoParamsVec* GetCryptos(const MediaContentDescription* media) { 164 const CryptoParamsVec* GetCryptos(const MediaContentDescription* media) {
165 if (!media) { 165 if (!media) {
166 return NULL; 166 return nullptr;
167 } 167 }
168 return &media->cryptos(); 168 return &media->cryptos();
169 } 169 }
170 170
171 bool FindMatchingCrypto(const CryptoParamsVec& cryptos, 171 bool FindMatchingCrypto(const CryptoParamsVec& cryptos,
172 const CryptoParams& crypto, 172 const CryptoParams& crypto,
173 CryptoParams* out) { 173 CryptoParams* out) {
174 for (CryptoParamsVec::const_iterator it = cryptos.begin(); 174 for (CryptoParamsVec::const_iterator it = cryptos.begin();
175 it != cryptos.end(); ++it) { 175 it != cryptos.end(); ++it) {
176 if (crypto.Matches(*it)) { 176 if (crypto.Matches(*it)) {
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 const MediaContentDescription* media_desc = 571 const MediaContentDescription* media_desc =
572 static_cast<const MediaContentDescription*>(content->description); 572 static_cast<const MediaContentDescription*>(content->description);
573 *cryptos = media_desc->cryptos(); 573 *cryptos = media_desc->cryptos();
574 return true; 574 return true;
575 } 575 }
576 576
577 // Predicate function used by the remove_if. 577 // Predicate function used by the remove_if.
578 // Returns true if the |crypto|'s cipher_suite is not found in |filter|. 578 // Returns true if the |crypto|'s cipher_suite is not found in |filter|.
579 static bool CryptoNotFound(const CryptoParams crypto, 579 static bool CryptoNotFound(const CryptoParams crypto,
580 const CryptoParamsVec* filter) { 580 const CryptoParamsVec* filter) {
581 if (filter == NULL) { 581 if (filter == nullptr) {
582 return true; 582 return true;
583 } 583 }
584 for (CryptoParamsVec::const_iterator it = filter->begin(); 584 for (CryptoParamsVec::const_iterator it = filter->begin();
585 it != filter->end(); ++it) { 585 it != filter->end(); ++it) {
586 if (it->cipher_suite == crypto.cipher_suite) { 586 if (it->cipher_suite == crypto.cipher_suite) {
587 return false; 587 return false;
588 } 588 }
589 } 589 }
590 return true; 590 return true;
591 } 591 }
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 } 940 }
941 } 941 }
942 942
943 static bool FindByUri(const RtpHeaderExtensions& extensions, 943 static bool FindByUri(const RtpHeaderExtensions& extensions,
944 const webrtc::RtpExtension& ext_to_match, 944 const webrtc::RtpExtension& ext_to_match,
945 webrtc::RtpExtension* found_extension) { 945 webrtc::RtpExtension* found_extension) {
946 for (RtpHeaderExtensions::const_iterator it = extensions.begin(); 946 for (RtpHeaderExtensions::const_iterator it = extensions.begin();
947 it != extensions.end(); ++it) { 947 it != extensions.end(); ++it) {
948 // We assume that all URIs are given in a canonical format. 948 // We assume that all URIs are given in a canonical format.
949 if (it->uri == ext_to_match.uri) { 949 if (it->uri == ext_to_match.uri) {
950 if (found_extension != NULL) { 950 if (found_extension != nullptr) {
951 *found_extension = *it; 951 *found_extension = *it;
952 } 952 }
953 return true; 953 return true;
954 } 954 }
955 } 955 }
956 return false; 956 return false;
957 } 957 }
958 958
959 // Iterates through |offered_extensions|, adding each one to |all_extensions| 959 // Iterates through |offered_extensions|, adding each one to |all_extensions|
960 // and |used_ids|, and resolving ID conflicts. If an offered extension has the 960 // and |used_ids|, and resolving ID conflicts. If an offered extension has the
(...skipping 14 matching lines...) Expand all
975 } 975 }
976 976
977 // Adds |reference_extensions| to |offered_extensions|, while updating 977 // Adds |reference_extensions| to |offered_extensions|, while updating
978 // |all_extensions| and |used_ids|. 978 // |all_extensions| and |used_ids|.
979 static void FindRtpHdrExtsToOffer( 979 static void FindRtpHdrExtsToOffer(
980 const RtpHeaderExtensions& reference_extensions, 980 const RtpHeaderExtensions& reference_extensions,
981 RtpHeaderExtensions* offered_extensions, 981 RtpHeaderExtensions* offered_extensions,
982 RtpHeaderExtensions* all_extensions, 982 RtpHeaderExtensions* all_extensions,
983 UsedRtpHeaderExtensionIds* used_ids) { 983 UsedRtpHeaderExtensionIds* used_ids) {
984 for (auto reference_extension : reference_extensions) { 984 for (auto reference_extension : reference_extensions) {
985 if (!FindByUri(*offered_extensions, reference_extension, NULL)) { 985 if (!FindByUri(*offered_extensions, reference_extension, nullptr)) {
986 webrtc::RtpExtension existing; 986 webrtc::RtpExtension existing;
987 if (FindByUri(*all_extensions, reference_extension, &existing)) { 987 if (FindByUri(*all_extensions, reference_extension, &existing)) {
988 offered_extensions->push_back(existing); 988 offered_extensions->push_back(existing);
989 } else { 989 } else {
990 used_ids->FindAndSetIdUsed(&reference_extension); 990 used_ids->FindAndSetIdUsed(&reference_extension);
991 all_extensions->push_back(reference_extension); 991 all_extensions->push_back(reference_extension);
992 offered_extensions->push_back(reference_extension); 992 offered_extensions->push_back(reference_extension);
993 } 993 }
994 } 994 }
995 } 995 }
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 desc->set_protocol(kMediaProtocolDtlsSavpf); 1156 desc->set_protocol(kMediaProtocolDtlsSavpf);
1157 else 1157 else
1158 desc->set_protocol(kMediaProtocolAvpf); 1158 desc->set_protocol(kMediaProtocolAvpf);
1159 } 1159 }
1160 1160
1161 // Gets the TransportInfo of the given |content_name| from the 1161 // Gets the TransportInfo of the given |content_name| from the
1162 // |current_description|. If doesn't exist, returns a new one. 1162 // |current_description|. If doesn't exist, returns a new one.
1163 static const TransportDescription* GetTransportDescription( 1163 static const TransportDescription* GetTransportDescription(
1164 const std::string& content_name, 1164 const std::string& content_name,
1165 const SessionDescription* current_description) { 1165 const SessionDescription* current_description) {
1166 const TransportDescription* desc = NULL; 1166 const TransportDescription* desc = nullptr;
1167 if (current_description) { 1167 if (current_description) {
1168 const TransportInfo* info = 1168 const TransportInfo* info =
1169 current_description->GetTransportInfoByName(content_name); 1169 current_description->GetTransportInfoByName(content_name);
1170 if (info) { 1170 if (info) {
1171 desc = &info->description; 1171 desc = &info->description;
1172 } 1172 }
1173 } 1173 }
1174 return desc; 1174 return desc;
1175 } 1175 }
1176 1176
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1351 1351
1352 // Iterate through the contents of |current_description| to maintain the order 1352 // Iterate through the contents of |current_description| to maintain the order
1353 // of the m-lines in the new offer. 1353 // of the m-lines in the new offer.
1354 if (current_description) { 1354 if (current_description) {
1355 ContentInfos::const_iterator it = current_description->contents().begin(); 1355 ContentInfos::const_iterator it = current_description->contents().begin();
1356 for (; it != current_description->contents().end(); ++it) { 1356 for (; it != current_description->contents().end(); ++it) {
1357 if (IsMediaContentOfType(&*it, MEDIA_TYPE_AUDIO)) { 1357 if (IsMediaContentOfType(&*it, MEDIA_TYPE_AUDIO)) {
1358 if (!AddAudioContentForOffer(options, current_description, 1358 if (!AddAudioContentForOffer(options, current_description,
1359 audio_rtp_extensions, audio_codecs, 1359 audio_rtp_extensions, audio_codecs,
1360 &current_streams, offer.get())) { 1360 &current_streams, offer.get())) {
1361 return NULL; 1361 return nullptr;
1362 } 1362 }
1363 audio_added = true; 1363 audio_added = true;
1364 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_VIDEO)) { 1364 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_VIDEO)) {
1365 if (!AddVideoContentForOffer(options, current_description, 1365 if (!AddVideoContentForOffer(options, current_description,
1366 video_rtp_extensions, video_codecs, 1366 video_rtp_extensions, video_codecs,
1367 &current_streams, offer.get())) { 1367 &current_streams, offer.get())) {
1368 return NULL; 1368 return nullptr;
1369 } 1369 }
1370 video_added = true; 1370 video_added = true;
1371 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_DATA)) { 1371 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_DATA)) {
1372 MediaSessionOptions options_copy(options); 1372 MediaSessionOptions options_copy(options);
1373 if (IsSctp(static_cast<const MediaContentDescription*>( 1373 if (IsSctp(static_cast<const MediaContentDescription*>(
1374 it->description))) { 1374 it->description))) {
1375 options_copy.data_channel_type = DCT_SCTP; 1375 options_copy.data_channel_type = DCT_SCTP;
1376 } 1376 }
1377 if (!AddDataContentForOffer(options_copy, current_description, 1377 if (!AddDataContentForOffer(options_copy, current_description,
1378 &data_codecs, &current_streams, 1378 &data_codecs, &current_streams,
1379 offer.get())) { 1379 offer.get())) {
1380 return NULL; 1380 return nullptr;
1381 } 1381 }
1382 data_added = true; 1382 data_added = true;
1383 } else { 1383 } else {
1384 RTC_NOTREACHED(); 1384 RTC_NOTREACHED();
1385 } 1385 }
1386 } 1386 }
1387 } 1387 }
1388 1388
1389 // Append contents that are not in |current_description|. 1389 // Append contents that are not in |current_description|.
1390 if (!audio_added && options.has_audio() && 1390 if (!audio_added && options.has_audio() &&
1391 !AddAudioContentForOffer(options, current_description, 1391 !AddAudioContentForOffer(options, current_description,
1392 audio_rtp_extensions, audio_codecs, 1392 audio_rtp_extensions, audio_codecs,
1393 &current_streams, offer.get())) { 1393 &current_streams, offer.get())) {
1394 return NULL; 1394 return nullptr;
1395 } 1395 }
1396 if (!video_added && options.has_video() && 1396 if (!video_added && options.has_video() &&
1397 !AddVideoContentForOffer(options, current_description, 1397 !AddVideoContentForOffer(options, current_description,
1398 video_rtp_extensions, video_codecs, 1398 video_rtp_extensions, video_codecs,
1399 &current_streams, offer.get())) { 1399 &current_streams, offer.get())) {
1400 return NULL; 1400 return nullptr;
1401 } 1401 }
1402 if (!data_added && options.has_data() && 1402 if (!data_added && options.has_data() &&
1403 !AddDataContentForOffer(options, current_description, &data_codecs, 1403 !AddDataContentForOffer(options, current_description, &data_codecs,
1404 &current_streams, offer.get())) { 1404 &current_streams, offer.get())) {
1405 return NULL; 1405 return nullptr;
1406 } 1406 }
1407 1407
1408 // Bundle the contents together, if we've been asked to do so, and update any 1408 // Bundle the contents together, if we've been asked to do so, and update any
1409 // parameters that need to be tweaked for BUNDLE. 1409 // parameters that need to be tweaked for BUNDLE.
1410 if (options.bundle_enabled) { 1410 if (options.bundle_enabled) {
1411 ContentGroup offer_bundle(GROUP_TYPE_BUNDLE); 1411 ContentGroup offer_bundle(GROUP_TYPE_BUNDLE);
1412 for (ContentInfos::const_iterator content = offer->contents().begin(); 1412 for (ContentInfos::const_iterator content = offer->contents().begin();
1413 content != offer->contents().end(); ++content) { 1413 content != offer->contents().end(); ++content) {
1414 offer_bundle.AddContentName(content->name); 1414 offer_bundle.AddContentName(content->name);
1415 } 1415 }
1416 offer->AddGroup(offer_bundle); 1416 offer->AddGroup(offer_bundle);
1417 if (!UpdateTransportInfoForBundle(offer_bundle, offer.get())) { 1417 if (!UpdateTransportInfoForBundle(offer_bundle, offer.get())) {
1418 LOG(LS_ERROR) << "CreateOffer failed to UpdateTransportInfoForBundle."; 1418 LOG(LS_ERROR) << "CreateOffer failed to UpdateTransportInfoForBundle.";
1419 return NULL; 1419 return nullptr;
1420 } 1420 }
1421 if (!UpdateCryptoParamsForBundle(offer_bundle, offer.get())) { 1421 if (!UpdateCryptoParamsForBundle(offer_bundle, offer.get())) {
1422 LOG(LS_ERROR) << "CreateOffer failed to UpdateCryptoParamsForBundle."; 1422 LOG(LS_ERROR) << "CreateOffer failed to UpdateCryptoParamsForBundle.";
1423 return NULL; 1423 return nullptr;
1424 } 1424 }
1425 } 1425 }
1426 1426
1427 return offer.release(); 1427 return offer.release();
1428 } 1428 }
1429 1429
1430 SessionDescription* MediaSessionDescriptionFactory::CreateAnswer( 1430 SessionDescription* MediaSessionDescriptionFactory::CreateAnswer(
1431 const SessionDescription* offer, const MediaSessionOptions& options, 1431 const SessionDescription* offer, const MediaSessionOptions& options,
1432 const SessionDescription* current_description) const { 1432 const SessionDescription* current_description) const {
1433 // The answer contains the intersection of the codecs in the offer with the 1433 // The answer contains the intersection of the codecs in the offer with the
1434 // codecs we support. As indicated by XEP-0167, we retain the same payload ids 1434 // codecs we support. As indicated by XEP-0167, we retain the same payload ids
1435 // from the offer in the answer. 1435 // from the offer in the answer.
1436 std::unique_ptr<SessionDescription> answer(new SessionDescription()); 1436 std::unique_ptr<SessionDescription> answer(new SessionDescription());
1437 1437
1438 StreamParamsVec current_streams; 1438 StreamParamsVec current_streams;
1439 GetCurrentStreamParams(current_description, &current_streams); 1439 GetCurrentStreamParams(current_description, &current_streams);
1440 1440
1441 if (offer) { 1441 if (offer) {
1442 ContentInfos::const_iterator it = offer->contents().begin(); 1442 ContentInfos::const_iterator it = offer->contents().begin();
1443 for (; it != offer->contents().end(); ++it) { 1443 for (; it != offer->contents().end(); ++it) {
1444 if (IsMediaContentOfType(&*it, MEDIA_TYPE_AUDIO)) { 1444 if (IsMediaContentOfType(&*it, MEDIA_TYPE_AUDIO)) {
1445 if (!AddAudioContentForAnswer(offer, options, current_description, 1445 if (!AddAudioContentForAnswer(offer, options, current_description,
1446 &current_streams, answer.get())) { 1446 &current_streams, answer.get())) {
1447 return NULL; 1447 return nullptr;
1448 } 1448 }
1449 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_VIDEO)) { 1449 } else if (IsMediaContentOfType(&*it, MEDIA_TYPE_VIDEO)) {
1450 if (!AddVideoContentForAnswer(offer, options, current_description, 1450 if (!AddVideoContentForAnswer(offer, options, current_description,
1451 &current_streams, answer.get())) { 1451 &current_streams, answer.get())) {
1452 return NULL; 1452 return nullptr;
1453 } 1453 }
1454 } else { 1454 } else {
1455 RTC_DCHECK(IsMediaContentOfType(&*it, MEDIA_TYPE_DATA)); 1455 RTC_DCHECK(IsMediaContentOfType(&*it, MEDIA_TYPE_DATA));
1456 if (!AddDataContentForAnswer(offer, options, current_description, 1456 if (!AddDataContentForAnswer(offer, options, current_description,
1457 &current_streams, answer.get())) { 1457 &current_streams, answer.get())) {
1458 return NULL; 1458 return nullptr;
1459 } 1459 }
1460 } 1460 }
1461 } 1461 }
1462 } 1462 }
1463 1463
1464 // If the offer supports BUNDLE, and we want to use it too, create a BUNDLE 1464 // If the offer supports BUNDLE, and we want to use it too, create a BUNDLE
1465 // group in the answer with the appropriate content names. 1465 // group in the answer with the appropriate content names.
1466 if (offer->HasGroup(GROUP_TYPE_BUNDLE) && options.bundle_enabled) { 1466 if (offer->HasGroup(GROUP_TYPE_BUNDLE) && options.bundle_enabled) {
1467 const ContentGroup* offer_bundle = offer->GetGroupByName(GROUP_TYPE_BUNDLE); 1467 const ContentGroup* offer_bundle = offer->GetGroupByName(GROUP_TYPE_BUNDLE);
1468 ContentGroup answer_bundle(GROUP_TYPE_BUNDLE); 1468 ContentGroup answer_bundle(GROUP_TYPE_BUNDLE);
1469 for (ContentInfos::const_iterator content = answer->contents().begin(); 1469 for (ContentInfos::const_iterator content = answer->contents().begin();
1470 content != answer->contents().end(); ++content) { 1470 content != answer->contents().end(); ++content) {
1471 if (!content->rejected && offer_bundle->HasContentName(content->name)) { 1471 if (!content->rejected && offer_bundle->HasContentName(content->name)) {
1472 answer_bundle.AddContentName(content->name); 1472 answer_bundle.AddContentName(content->name);
1473 } 1473 }
1474 } 1474 }
1475 if (answer_bundle.FirstContentName()) { 1475 if (answer_bundle.FirstContentName()) {
1476 answer->AddGroup(answer_bundle); 1476 answer->AddGroup(answer_bundle);
1477 1477
1478 // Share the same ICE credentials and crypto params across all contents, 1478 // Share the same ICE credentials and crypto params across all contents,
1479 // as BUNDLE requires. 1479 // as BUNDLE requires.
1480 if (!UpdateTransportInfoForBundle(answer_bundle, answer.get())) { 1480 if (!UpdateTransportInfoForBundle(answer_bundle, answer.get())) {
1481 LOG(LS_ERROR) << "CreateAnswer failed to UpdateTransportInfoForBundle."; 1481 LOG(LS_ERROR) << "CreateAnswer failed to UpdateTransportInfoForBundle.";
1482 return NULL; 1482 return nullptr;
1483 } 1483 }
1484 1484
1485 if (!UpdateCryptoParamsForBundle(answer_bundle, answer.get())) { 1485 if (!UpdateCryptoParamsForBundle(answer_bundle, answer.get())) {
1486 LOG(LS_ERROR) << "CreateAnswer failed to UpdateCryptoParamsForBundle."; 1486 LOG(LS_ERROR) << "CreateAnswer failed to UpdateCryptoParamsForBundle.";
1487 return NULL; 1487 return nullptr;
1488 } 1488 }
1489 } 1489 }
1490 } 1490 }
1491 1491
1492 return answer.release(); 1492 return answer.release();
1493 } 1493 }
1494 1494
1495 const AudioCodecs& MediaSessionDescriptionFactory::GetAudioCodecsForOffer( 1495 const AudioCodecs& MediaSessionDescriptionFactory::GetAudioCodecsForOffer(
1496 const RtpTransceiverDirection& direction) const { 1496 const RtpTransceiverDirection& direction) const {
1497 // If stream is inactive - generate list as if sendrecv. 1497 // If stream is inactive - generate list as if sendrecv.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1614 const std::string& content_name, 1614 const std::string& content_name,
1615 const TransportOptions& transport_options, 1615 const TransportOptions& transport_options,
1616 const SessionDescription* current_desc, 1616 const SessionDescription* current_desc,
1617 SessionDescription* offer_desc) const { 1617 SessionDescription* offer_desc) const {
1618 if (!transport_desc_factory_) 1618 if (!transport_desc_factory_)
1619 return false; 1619 return false;
1620 const TransportDescription* current_tdesc = 1620 const TransportDescription* current_tdesc =
1621 GetTransportDescription(content_name, current_desc); 1621 GetTransportDescription(content_name, current_desc);
1622 std::unique_ptr<TransportDescription> new_tdesc( 1622 std::unique_ptr<TransportDescription> new_tdesc(
1623 transport_desc_factory_->CreateOffer(transport_options, current_tdesc)); 1623 transport_desc_factory_->CreateOffer(transport_options, current_tdesc));
1624 bool ret = (new_tdesc.get() != NULL && 1624 bool ret =
1625 offer_desc->AddTransportInfo(TransportInfo(content_name, *new_tdesc))); 1625 (new_tdesc.get() != nullptr &&
1626 offer_desc->AddTransportInfo(TransportInfo(content_name, *new_tdesc)));
1626 if (!ret) { 1627 if (!ret) {
1627 LOG(LS_ERROR) 1628 LOG(LS_ERROR)
1628 << "Failed to AddTransportOffer, content name=" << content_name; 1629 << "Failed to AddTransportOffer, content name=" << content_name;
1629 } 1630 }
1630 return ret; 1631 return ret;
1631 } 1632 }
1632 1633
1633 TransportDescription* MediaSessionDescriptionFactory::CreateTransportAnswer( 1634 TransportDescription* MediaSessionDescriptionFactory::CreateTransportAnswer(
1634 const std::string& content_name, 1635 const std::string& content_name,
1635 const SessionDescription* offer_desc, 1636 const SessionDescription* offer_desc,
1636 const TransportOptions& transport_options, 1637 const TransportOptions& transport_options,
1637 const SessionDescription* current_desc) const { 1638 const SessionDescription* current_desc) const {
1638 if (!transport_desc_factory_) 1639 if (!transport_desc_factory_)
1639 return NULL; 1640 return nullptr;
1640 const TransportDescription* offer_tdesc = 1641 const TransportDescription* offer_tdesc =
1641 GetTransportDescription(content_name, offer_desc); 1642 GetTransportDescription(content_name, offer_desc);
1642 const TransportDescription* current_tdesc = 1643 const TransportDescription* current_tdesc =
1643 GetTransportDescription(content_name, current_desc); 1644 GetTransportDescription(content_name, current_desc);
1644 return 1645 return
1645 transport_desc_factory_->CreateAnswer(offer_tdesc, transport_options, 1646 transport_desc_factory_->CreateAnswer(offer_tdesc, transport_options,
1646 current_tdesc); 1647 current_tdesc);
1647 } 1648 }
1648 1649
1649 bool MediaSessionDescriptionFactory::AddTransportAnswer( 1650 bool MediaSessionDescriptionFactory::AddTransportAnswer(
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
2073 return GetFirstMediaContent(sdesc, MEDIA_TYPE_VIDEO); 2074 return GetFirstMediaContent(sdesc, MEDIA_TYPE_VIDEO);
2074 } 2075 }
2075 2076
2076 const ContentInfo* GetFirstDataContent(const SessionDescription* sdesc) { 2077 const ContentInfo* GetFirstDataContent(const SessionDescription* sdesc) {
2077 return GetFirstMediaContent(sdesc, MEDIA_TYPE_DATA); 2078 return GetFirstMediaContent(sdesc, MEDIA_TYPE_DATA);
2078 } 2079 }
2079 2080
2080 const MediaContentDescription* GetFirstMediaContentDescription( 2081 const MediaContentDescription* GetFirstMediaContentDescription(
2081 const SessionDescription* sdesc, MediaType media_type) { 2082 const SessionDescription* sdesc, MediaType media_type) {
2082 const ContentInfo* content = GetFirstMediaContent(sdesc, media_type); 2083 const ContentInfo* content = GetFirstMediaContent(sdesc, media_type);
2083 const ContentDescription* description = content ? content->description : NULL; 2084 const ContentDescription* description =
2085 content ? content->description : nullptr;
2084 return static_cast<const MediaContentDescription*>(description); 2086 return static_cast<const MediaContentDescription*>(description);
2085 } 2087 }
2086 2088
2087 const AudioContentDescription* GetFirstAudioContentDescription( 2089 const AudioContentDescription* GetFirstAudioContentDescription(
2088 const SessionDescription* sdesc) { 2090 const SessionDescription* sdesc) {
2089 return static_cast<const AudioContentDescription*>( 2091 return static_cast<const AudioContentDescription*>(
2090 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_AUDIO)); 2092 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_AUDIO));
2091 } 2093 }
2092 2094
2093 const VideoContentDescription* GetFirstVideoContentDescription( 2095 const VideoContentDescription* GetFirstVideoContentDescription(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2146 } 2148 }
2147 2149
2148 ContentInfo* GetFirstDataContent(SessionDescription* sdesc) { 2150 ContentInfo* GetFirstDataContent(SessionDescription* sdesc) {
2149 return GetFirstMediaContent(sdesc, MEDIA_TYPE_DATA); 2151 return GetFirstMediaContent(sdesc, MEDIA_TYPE_DATA);
2150 } 2152 }
2151 2153
2152 MediaContentDescription* GetFirstMediaContentDescription( 2154 MediaContentDescription* GetFirstMediaContentDescription(
2153 SessionDescription* sdesc, 2155 SessionDescription* sdesc,
2154 MediaType media_type) { 2156 MediaType media_type) {
2155 ContentInfo* content = GetFirstMediaContent(sdesc, media_type); 2157 ContentInfo* content = GetFirstMediaContent(sdesc, media_type);
2156 ContentDescription* description = content ? content->description : NULL; 2158 ContentDescription* description = content ? content->description : nullptr;
2157 return static_cast<MediaContentDescription*>(description); 2159 return static_cast<MediaContentDescription*>(description);
2158 } 2160 }
2159 2161
2160 AudioContentDescription* GetFirstAudioContentDescription( 2162 AudioContentDescription* GetFirstAudioContentDescription(
2161 SessionDescription* sdesc) { 2163 SessionDescription* sdesc) {
2162 return static_cast<AudioContentDescription*>( 2164 return static_cast<AudioContentDescription*>(
2163 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_AUDIO)); 2165 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_AUDIO));
2164 } 2166 }
2165 2167
2166 VideoContentDescription* GetFirstVideoContentDescription( 2168 VideoContentDescription* GetFirstVideoContentDescription(
2167 SessionDescription* sdesc) { 2169 SessionDescription* sdesc) {
2168 return static_cast<VideoContentDescription*>( 2170 return static_cast<VideoContentDescription*>(
2169 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_VIDEO)); 2171 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_VIDEO));
2170 } 2172 }
2171 2173
2172 DataContentDescription* GetFirstDataContentDescription( 2174 DataContentDescription* GetFirstDataContentDescription(
2173 SessionDescription* sdesc) { 2175 SessionDescription* sdesc) {
2174 return static_cast<DataContentDescription*>( 2176 return static_cast<DataContentDescription*>(
2175 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_DATA)); 2177 GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_DATA));
2176 } 2178 }
2177 2179
2178 } // namespace cricket 2180 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698