Adds mock bitrate allocator.
This is used to allow mocking in tests in later CLs. Bug: None Change-Id: Id610471efb4a86c903530585dd4ee2fa1d1ea5bc Reviewed-on: https://webrtc-review.googlesource.com/70880 Commit-Queue: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22941}
This commit is contained in:
parent
497bdaf1d5
commit
832678079d
@ -370,7 +370,17 @@ if (rtc_include_tests) {
|
|||||||
"../test:test_support",
|
"../test:test_support",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
rtc_source_set("mock_bitrate_allocator") {
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
sources = [
|
||||||
|
"test/mock_bitrate_allocator.h",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":bitrate_allocator",
|
||||||
|
"//test:test_support",
|
||||||
|
]
|
||||||
|
}
|
||||||
rtc_source_set("mock_call_interfaces") {
|
rtc_source_set("mock_call_interfaces") {
|
||||||
testonly = true
|
testonly = true
|
||||||
|
|
||||||
|
|||||||
@ -67,10 +67,22 @@ struct MediaStreamAllocationConfig {
|
|||||||
bool has_packet_feedback;
|
bool has_packet_feedback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Interface used for mocking
|
||||||
|
class BitrateAllocatorInterface {
|
||||||
|
public:
|
||||||
|
virtual void AddObserver(BitrateAllocatorObserver* observer,
|
||||||
|
MediaStreamAllocationConfig config) = 0;
|
||||||
|
virtual void RemoveObserver(BitrateAllocatorObserver* observer) = 0;
|
||||||
|
virtual int GetStartBitrate(BitrateAllocatorObserver* observer) = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ~BitrateAllocatorInterface() = default;
|
||||||
|
};
|
||||||
|
|
||||||
// Usage: this class will register multiple RtcpBitrateObserver's one at each
|
// Usage: this class will register multiple RtcpBitrateObserver's one at each
|
||||||
// RTCP module. It will aggregate the results and run one bandwidth estimation
|
// RTCP module. It will aggregate the results and run one bandwidth estimation
|
||||||
// and push the result to the encoders via BitrateAllocatorObserver(s).
|
// and push the result to the encoders via BitrateAllocatorObserver(s).
|
||||||
class BitrateAllocator {
|
class BitrateAllocator : public BitrateAllocatorInterface {
|
||||||
public:
|
public:
|
||||||
// Used to get notified when send stream limits such as the minimum send
|
// Used to get notified when send stream limits such as the minimum send
|
||||||
// bitrate and max padding bitrate is changed.
|
// bitrate and max padding bitrate is changed.
|
||||||
@ -82,7 +94,7 @@ class BitrateAllocator {
|
|||||||
bool has_packet_feedback) = 0;
|
bool has_packet_feedback) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~LimitObserver() {}
|
virtual ~LimitObserver() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit BitrateAllocator(LimitObserver* limit_observer);
|
explicit BitrateAllocator(LimitObserver* limit_observer);
|
||||||
@ -98,15 +110,15 @@ class BitrateAllocator {
|
|||||||
// |observer| updates bitrates if already in use.
|
// |observer| updates bitrates if already in use.
|
||||||
// |config| is the configuration to use for allocation.
|
// |config| is the configuration to use for allocation.
|
||||||
void AddObserver(BitrateAllocatorObserver* observer,
|
void AddObserver(BitrateAllocatorObserver* observer,
|
||||||
MediaStreamAllocationConfig config);
|
MediaStreamAllocationConfig config) override;
|
||||||
|
|
||||||
// Removes a previously added observer, but will not trigger a new bitrate
|
// Removes a previously added observer, but will not trigger a new bitrate
|
||||||
// allocation.
|
// allocation.
|
||||||
void RemoveObserver(BitrateAllocatorObserver* observer);
|
void RemoveObserver(BitrateAllocatorObserver* observer) override;
|
||||||
|
|
||||||
// Returns initial bitrate allocated for |observer|. If |observer| is not in
|
// Returns initial bitrate allocated for |observer|. If |observer| is not in
|
||||||
// the list of added observers, a best guess is returned.
|
// the list of added observers, a best guess is returned.
|
||||||
int GetStartBitrate(BitrateAllocatorObserver* observer);
|
int GetStartBitrate(BitrateAllocatorObserver* observer) override;
|
||||||
|
|
||||||
// Sets external allocation strategy. If strategy is not set default WebRTC
|
// Sets external allocation strategy. If strategy is not set default WebRTC
|
||||||
// allocation mechanism will be used. The strategy may be changed during call.
|
// allocation mechanism will be used. The strategy may be changed during call.
|
||||||
|
|||||||
27
call/test/mock_bitrate_allocator.h
Normal file
27
call/test/mock_bitrate_allocator.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by a BSD-style license
|
||||||
|
* that can be found in the LICENSE file in the root of the source
|
||||||
|
* tree. An additional intellectual property rights grant can be found
|
||||||
|
* in the file PATENTS. All contributing project authors may
|
||||||
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
|
*/
|
||||||
|
#ifndef CALL_TEST_MOCK_BITRATE_ALLOCATOR_H_
|
||||||
|
#define CALL_TEST_MOCK_BITRATE_ALLOCATOR_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "call/bitrate_allocator.h"
|
||||||
|
#include "test/gmock.h"
|
||||||
|
|
||||||
|
namespace webrtc {
|
||||||
|
class MockBitrateAllocator : public BitrateAllocatorInterface {
|
||||||
|
public:
|
||||||
|
MOCK_METHOD2(AddObserver,
|
||||||
|
void(BitrateAllocatorObserver*, MediaStreamAllocationConfig));
|
||||||
|
MOCK_METHOD1(RemoveObserver, void(BitrateAllocatorObserver*));
|
||||||
|
MOCK_METHOD1(GetStartBitrate, int(BitrateAllocatorObserver*));
|
||||||
|
};
|
||||||
|
} // namespace webrtc
|
||||||
|
#endif // CALL_TEST_MOCK_BITRATE_ALLOCATOR_H_
|
||||||
Loading…
x
Reference in New Issue
Block a user