blob: 25cfa29897574b39590e28769fa37b561bb32b62 [file] [log] [blame]
pbos@webrtc.orgf577ae92014-03-19 08:43:57 +00001/*
2 * Copyright (c) 2014 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 */
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020010#ifndef TEST_ENCODER_SETTINGS_H_
11#define TEST_ENCODER_SETTINGS_H_
pbos@webrtc.orgf577ae92014-03-19 08:43:57 +000012
perkjfa10b552016-10-02 23:45:26 -070013#include <vector>
14
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020015#include "call/video_receive_stream.h"
16#include "call/video_send_stream.h"
pbos@webrtc.orgf577ae92014-03-19 08:43:57 +000017
18namespace webrtc {
19namespace test {
perkjfa10b552016-10-02 23:45:26 -070020
21class DefaultVideoStreamFactory
22 : public VideoEncoderConfig::VideoStreamFactoryInterface {
23 public:
24 DefaultVideoStreamFactory();
25
26 static const size_t kMaxNumberOfStreams = 3;
27 // Defined as {150000, 450000, 1500000};
28 static const int kMaxBitratePerStream[];
29 // Defined as {50000, 200000, 700000};
30 static const int kDefaultMinBitratePerStream[];
31
32 private:
33 std::vector<VideoStream> CreateEncoderStreams(
34 int width,
35 int height,
36 const VideoEncoderConfig& encoder_config) override;
37};
38
39// Creates |encoder_config.number_of_streams| VideoStreams where index
40// |encoder_config.number_of_streams -1| have width = |width|, height =
41// |height|. The total max bitrate of all VideoStreams is
42// |encoder_config.max_bitrate_bps|.
43std::vector<VideoStream> CreateVideoStreams(
44 int width,
45 int height,
46 const webrtc::VideoEncoderConfig& encoder_config);
47
48void FillEncoderConfiguration(size_t num_streams,
49 VideoEncoderConfig* configuration);
pbos@webrtc.orgf577ae92014-03-19 08:43:57 +000050
pbos@webrtc.org776e6f22014-10-29 15:28:39 +000051VideoReceiveStream::Decoder CreateMatchingDecoder(
pbos@webrtc.org6ae48c62014-06-06 10:49:19 +000052 const VideoSendStream::Config::EncoderSettings& encoder_settings);
pbos@webrtc.orgf577ae92014-03-19 08:43:57 +000053} // namespace test
54} // namespace webrtc
55
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020056#endif // TEST_ENCODER_SETTINGS_H_