Files
platform-external-webrtc/pc/test/fake_periodic_video_track_source.h
Henrik Boström 4c1e7cc19b [Adaptation] Add ability to inject resources on the PeerConnection.
This unblocks injecting platform-specific resources, such as power
usage signals in Chrome.

This CL adds AddAdaptationResource to PeerConnectionInterface and
integration tests verifying that if an injected resource is overusing,
resolution will soon be reduced.

To aid testing, some testing-only classes have been updated.

Bug: webrtc:11525
Change-Id: I820099e79f18d910fd641ee1412ad064b99ebce9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177003
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31505}
2020-06-11 14:17:01 +00:00

46 lines
1.4 KiB
C++

/*
* 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 PC_TEST_FAKE_PERIODIC_VIDEO_TRACK_SOURCE_H_
#define PC_TEST_FAKE_PERIODIC_VIDEO_TRACK_SOURCE_H_
#include "pc/test/fake_periodic_video_source.h"
#include "pc/video_track_source.h"
namespace webrtc {
// A VideoTrackSource generating frames with configured size and frame interval.
class FakePeriodicVideoTrackSource : public VideoTrackSource {
public:
explicit FakePeriodicVideoTrackSource(bool remote)
: FakePeriodicVideoTrackSource(FakePeriodicVideoSource::Config(),
remote) {}
FakePeriodicVideoTrackSource(FakePeriodicVideoSource::Config config,
bool remote)
: VideoTrackSource(remote), source_(config) {}
~FakePeriodicVideoTrackSource() = default;
const FakePeriodicVideoSource& fake_periodic_source() const {
return source_;
}
protected:
rtc::VideoSourceInterface<VideoFrame>* source() override { return &source_; }
private:
FakePeriodicVideoSource source_;
};
} // namespace webrtc
#endif // PC_TEST_FAKE_PERIODIC_VIDEO_TRACK_SOURCE_H_