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

Side by Side Diff: content/renderer/media/webrtc/peer_connection_dependency_factory.cc

Issue 1314803003: Include default communication devices in audio device enumerations. This removes heuristic that pic… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comment Created 5 years, 3 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" 5 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 #include "media/base/android/media_codec_bridge.h" 58 #include "media/base/android/media_codec_bridge.h"
59 #endif 59 #endif
60 60
61 namespace content { 61 namespace content {
62 62
63 // Map of corresponding media constraints and platform effects. 63 // Map of corresponding media constraints and platform effects.
64 struct { 64 struct {
65 const char* constraint; 65 const char* constraint;
66 const media::AudioParameters::PlatformEffectsMask effect; 66 const media::AudioParameters::PlatformEffectsMask effect;
67 } const kConstraintEffectMap[] = { 67 } const kConstraintEffectMap[] = {
68 { content::kMediaStreamAudioDucking,
69 media::AudioParameters::DUCKING },
70 { webrtc::MediaConstraintsInterface::kGoogEchoCancellation, 68 { webrtc::MediaConstraintsInterface::kGoogEchoCancellation,
71 media::AudioParameters::ECHO_CANCELLER }, 69 media::AudioParameters::ECHO_CANCELLER },
72 }; 70 };
73 71
74 // If any platform effects are available, check them against the constraints. 72 // If any platform effects are available, check them against the constraints.
75 // Disable effects to match false constraints, but if a constraint is true, set 73 // Disable effects to match false constraints, but if a constraint is true, set
76 // the constraint to false to later disable the software effect. 74 // the constraint to false to later disable the software effect.
77 // 75 //
78 // This function may modify both |constraints| and |effects|. 76 // This function may modify both |constraints| and |effects|.
79 void HarmonizeConstraintsAndEffects(RTCMediaConstraints* constraints, 77 void HarmonizeConstraintsAndEffects(RTCMediaConstraints* constraints,
(...skipping 16 matching lines...) Expand all
96 // set the constraint to false to later disable the software effect. 94 // set the constraint to false to later disable the software effect.
97 if (is_mandatory) { 95 if (is_mandatory) {
98 constraints->AddMandatory(kConstraintEffectMap[i].constraint, 96 constraints->AddMandatory(kConstraintEffectMap[i].constraint,
99 webrtc::MediaConstraintsInterface::kValueFalse, true); 97 webrtc::MediaConstraintsInterface::kValueFalse, true);
100 } else { 98 } else {
101 constraints->AddOptional(kConstraintEffectMap[i].constraint, 99 constraints->AddOptional(kConstraintEffectMap[i].constraint,
102 webrtc::MediaConstraintsInterface::kValueFalse, true); 100 webrtc::MediaConstraintsInterface::kValueFalse, true);
103 } 101 }
104 DVLOG(1) << "Disabling constraint: " 102 DVLOG(1) << "Disabling constraint: "
105 << kConstraintEffectMap[i].constraint; 103 << kConstraintEffectMap[i].constraint;
106 } else if (kConstraintEffectMap[i].effect ==
107 media::AudioParameters::DUCKING && value && !is_mandatory) {
108 // Special handling of the DUCKING flag that sets the optional
109 // constraint to |false| to match what the device will support.
110 constraints->AddOptional(kConstraintEffectMap[i].constraint,
111 webrtc::MediaConstraintsInterface::kValueFalse, true);
112 // No need to modify |effects| since the ducking flag is already off.
113 DCHECK((*effects & media::AudioParameters::DUCKING) == 0);
114 } 104 }
115 } 105 }
116 } 106 }
117 } 107 }
118 108
119 class P2PPortAllocatorFactory : public webrtc::PortAllocatorFactoryInterface { 109 class P2PPortAllocatorFactory : public webrtc::PortAllocatorFactoryInterface {
120 public: 110 public:
121 P2PPortAllocatorFactory(P2PSocketDispatcher* socket_dispatcher, 111 P2PPortAllocatorFactory(P2PSocketDispatcher* socket_dispatcher,
122 rtc::NetworkManager* network_manager, 112 rtc::NetworkManager* network_manager,
123 rtc::PacketSocketFactory* socket_factory, 113 rtc::PacketSocketFactory* socket_factory,
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 } 677 }
688 678
689 void PeerConnectionDependencyFactory::EnsureWebRtcAudioDeviceImpl() { 679 void PeerConnectionDependencyFactory::EnsureWebRtcAudioDeviceImpl() {
690 if (audio_device_.get()) 680 if (audio_device_.get())
691 return; 681 return;
692 682
693 audio_device_ = new WebRtcAudioDeviceImpl(); 683 audio_device_ = new WebRtcAudioDeviceImpl();
694 } 684 }
695 685
696 } // namespace content 686 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dispatcher_unittest.cc ('k') | content/renderer/media/webrtc_audio_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698