adaptation_constraint.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright 2020 The WebRTC Project Authors. All rights reserved.
  3. *
  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
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef CALL_ADAPTATION_ADAPTATION_CONSTRAINT_H_
  11. #define CALL_ADAPTATION_ADAPTATION_CONSTRAINT_H_
  12. #include <string>
  13. #include "api/adaptation/resource.h"
  14. #include "call/adaptation/video_source_restrictions.h"
  15. #include "call/adaptation/video_stream_input_state.h"
  16. namespace webrtc {
  17. // Adaptation constraints have the ability to prevent applying a proposed
  18. // adaptation (expressed as restrictions before/after adaptation).
  19. class AdaptationConstraint {
  20. public:
  21. virtual ~AdaptationConstraint();
  22. virtual std::string Name() const = 0;
  23. // TODO(https://crbug.com/webrtc/11172): When we have multi-stream adaptation
  24. // support, this interface needs to indicate which stream the adaptation
  25. // applies to.
  26. virtual bool IsAdaptationUpAllowed(
  27. const VideoStreamInputState& input_state,
  28. const VideoSourceRestrictions& restrictions_before,
  29. const VideoSourceRestrictions& restrictions_after) const = 0;
  30. };
  31. } // namespace webrtc
  32. #endif // CALL_ADAPTATION_ADAPTATION_CONSTRAINT_H_