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

Unified Diff: talk/media/webrtc/webrtcvoiceengine.cc

Issue 1481963002: Add header extension filtering for WebRtcVoiceEngine/MediaChannel. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Simpler implementation of set<>, requiring no heap allocs. Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: talk/media/webrtc/webrtcvoiceengine.cc
diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc
index 4bd0400dfa8e394642f22a65f77a601b7efec2f7..94ccec083425537624f5f5f26e6822372e70a38e 100644
--- a/talk/media/webrtc/webrtcvoiceengine.cc
+++ b/talk/media/webrtc/webrtcvoiceengine.cc
@@ -42,6 +42,7 @@
#include "talk/media/base/audiorenderer.h"
#include "talk/media/base/constants.h"
#include "talk/media/base/streamparams.h"
+#include "talk/media/webrtc/webrtcmediaengine.h"
#include "talk/media/webrtc/webrtcvoe.h"
#include "webrtc/base/arraysize.h"
#include "webrtc/base/base64.h"
@@ -296,20 +297,6 @@ webrtc::AudioState::Config MakeAudioStateConfig(VoEWrapper* voe_wrapper) {
return config;
}
-std::vector<webrtc::RtpExtension> FindAudioRtpHeaderExtensions(
- const std::vector<RtpHeaderExtension>& extensions) {
- std::vector<webrtc::RtpExtension> result;
- for (const auto& extension : extensions) {
- if (extension.uri == kRtpAbsoluteSenderTimeHeaderExtension ||
- extension.uri == kRtpAudioLevelHeaderExtension) {
- result.push_back({extension.uri, extension.id});
- } else {
- LOG(LS_WARNING) << "Unsupported RTP extension: " << extension.ToString();
- }
- }
- return result;
-}
-
class WebRtcVoiceCodecs final {
public:
// TODO(solenberg): Do this filtering once off-line, add a simple AudioCodec
@@ -1467,10 +1454,14 @@ bool WebRtcVoiceMediaChannel::SetSendParameters(
return false;
}
- std::vector<webrtc::RtpExtension> send_rtp_extensions =
- FindAudioRtpHeaderExtensions(params.extensions);
- if (send_rtp_extensions_ != send_rtp_extensions) {
- send_rtp_extensions_.swap(send_rtp_extensions);
+ if (!ValidateRtpExtensions(params.extensions)) {
+ return false;
+ }
+ std::vector<webrtc::RtpExtension> filtered_extensions =
+ FilterRtpExtensions(params.extensions,
+ webrtc::RtpExtension::IsSupportedForAudio, true);
+ if (send_rtp_extensions_ != filtered_extensions) {
+ send_rtp_extensions_.swap(filtered_extensions);
for (auto& it : send_streams_) {
it.second->RecreateAudioSendStream(send_rtp_extensions_);
}
@@ -1492,10 +1483,14 @@ bool WebRtcVoiceMediaChannel::SetRecvParameters(
return false;
}
- std::vector<webrtc::RtpExtension> recv_rtp_extensions =
- FindAudioRtpHeaderExtensions(params.extensions);
- if (recv_rtp_extensions_ != recv_rtp_extensions) {
- recv_rtp_extensions_.swap(recv_rtp_extensions);
+ if (!ValidateRtpExtensions(params.extensions)) {
+ return false;
+ }
+ std::vector<webrtc::RtpExtension> filtered_extensions =
+ FilterRtpExtensions(params.extensions,
+ webrtc::RtpExtension::IsSupportedForAudio, false);
+ if (recv_rtp_extensions_ != filtered_extensions) {
+ recv_rtp_extensions_.swap(filtered_extensions);
for (auto& it : recv_streams_) {
it.second->RecreateAudioReceiveStream(recv_rtp_extensions_);
}
« talk/media/webrtc/webrtcvideoengine2.cc ('K') | « talk/media/webrtc/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698