blob: 9bd09c325141d22b64c90df95654fa68dd4d5042 [file] [log] [blame]
niklase@google.com470e71d2011-07-07 08:21:25 +00001/*
pwestin@webrtc.orgcac78782012-04-05 08:30:10 +00002 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
niklase@google.com470e71d2011-07-07 08:21:25 +00003 *
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
11#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_TMMBR_HELP_H_
12#define WEBRTC_MODULES_RTP_RTCP_SOURCE_TMMBR_HELP_H_
13
hta@webrtc.org54536bb2012-05-03 14:07:23 +000014#include <vector>
danilchapa4f31bd2016-02-29 05:26:01 -080015#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/tmmb_item.h"
pbos@webrtc.org96edd562013-07-10 15:40:42 +000016#include "webrtc/typedefs.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000017
18namespace webrtc {
niklase@google.com470e71d2011-07-07 08:21:25 +000019
danilchap262e4862016-08-05 03:37:38 -070020class TMMBRHelp {
21 public:
danilchap2f69ce92016-08-16 03:21:38 -070022 static std::vector<rtcp::TmmbItem> FindBoundingSet(
23 std::vector<rtcp::TmmbItem> candidates);
niklase@google.com470e71d2011-07-07 08:21:25 +000024
Danil Chapovalovdaa90a72016-08-10 11:29:50 +020025 static bool IsOwner(const std::vector<rtcp::TmmbItem>& bounding,
26 uint32_t ssrc);
niklase@google.com470e71d2011-07-07 08:21:25 +000027
danilchap2f69ce92016-08-16 03:21:38 -070028 static uint64_t CalcMinBitrateBps(
29 const std::vector<rtcp::TmmbItem>& candidates);
niklase@google.com470e71d2011-07-07 08:21:25 +000030};
pbos@webrtc.orgd900e8b2013-07-03 15:12:26 +000031} // namespace webrtc
niklase@google.com470e71d2011-07-07 08:21:25 +000032
danilchap262e4862016-08-05 03:37:38 -070033#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_TMMBR_HELP_H_