delayable.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Copyright (c) 2019 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 MEDIA_BASE_DELAYABLE_H_
  11. #define MEDIA_BASE_DELAYABLE_H_
  12. #include <stdint.h>
  13. #include "absl/types/optional.h"
  14. namespace cricket {
  15. // Delayable is used by user code through ApplyConstraints algorithm. Its
  16. // methods must take precendence over similar functional in |syncable.h|.
  17. class Delayable {
  18. public:
  19. virtual ~Delayable() {}
  20. // Set base minimum delay of the receive stream with specified ssrc.
  21. // Base minimum delay sets lower bound on minimum delay value which
  22. // determines minimum delay until audio playout.
  23. // Returns false if there is no stream with given ssrc.
  24. virtual bool SetBaseMinimumPlayoutDelayMs(uint32_t ssrc, int delay_ms) = 0;
  25. // Returns current value of base minimum delay in milliseconds.
  26. virtual absl::optional<int> GetBaseMinimumPlayoutDelayMs(
  27. uint32_t ssrc) const = 0;
  28. };
  29. } // namespace cricket
  30. #endif // MEDIA_BASE_DELAYABLE_H_