Home | History | Annotate | Download | only in media
      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.
      4 
      5 #ifndef CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_
      6 #define CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "content/common/content_export.h"
     10 #include "third_party/libjingle/source/talk/app/webrtc/mediaconstraintsinterface.h"
     11 
     12 namespace blink {
     13 class WebMediaConstraints;
     14 }
     15 
     16 namespace content {
     17 
     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   virtual ~RTCMediaConstraints();
     28   virtual const Constraints& GetMandatory() const OVERRIDE;
     29   virtual 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);
     38 
     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_;
     46 };
     47 
     48 }  // namespace content
     49 
     50 
     51 #endif  // CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_
     52