Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / content / renderer / media / rtc_media_constraints.h
blob2c6ab27cef9904354d0c07f2fa4011d6dff4090b
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_
6 #define CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_
8 #include "base/compiler_specific.h"
9 #include "content/common/content_export.h"
10 #include "third_party/libjingle/source/talk/app/webrtc/mediaconstraintsinterface.h"
12 namespace blink {
13 class WebMediaConstraints;
16 namespace content {
18 // RTCMediaConstraints acts as a glue layer between WebKits MediaConstraints and
19 // libjingle webrtc::MediaConstraintsInterface.
20 // Constraints are used by PeerConnection and getUserMedia API calls.
21 class CONTENT_EXPORT RTCMediaConstraints
22 : public NON_EXPORTED_BASE(webrtc::MediaConstraintsInterface) {
23 public:
24 RTCMediaConstraints();
25 explicit RTCMediaConstraints(
26 const blink::WebMediaConstraints& constraints);
27 ~RTCMediaConstraints() override;
28 const Constraints& GetMandatory() const override;
29 const Constraints& GetOptional() const override;
30 // Adds a mandatory constraint, optionally overriding an existing one.
31 // If the constraint is already set and |override_if_exists| is false,
32 // the function will return false, otherwise true.
33 bool AddMandatory(const std::string& key, const std::string& value,
34 bool override_if_exists);
35 // As above, but against the optional constraints.
36 bool AddOptional(const std::string& key, const std::string& value,
37 bool override_if_exists);
39 protected:
40 bool AddConstraint(Constraints* constraints,
41 const std::string& key,
42 const std::string& value,
43 bool override_if_exists);
44 Constraints mandatory_;
45 Constraints optional_;
48 } // namespace content
51 #endif // CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_