| /* | 
 |  *  Copyright (c) 2014 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 TEST_ENCODER_SETTINGS_H_ | 
 | #define TEST_ENCODER_SETTINGS_H_ | 
 |  | 
 | #include <stddef.h> | 
 |  | 
 | #include <string> | 
 | #include <vector> | 
 |  | 
 | #include "api/video_codecs/video_encoder_config.h" | 
 | #include "call/video_receive_stream.h" | 
 | #include "call/video_send_stream.h" | 
 |  | 
 | namespace webrtc { | 
 | namespace test { | 
 |  | 
 | class DefaultVideoStreamFactory | 
 |     : public VideoEncoderConfig::VideoStreamFactoryInterface { | 
 |  public: | 
 |   DefaultVideoStreamFactory(); | 
 |  | 
 |   static const size_t kMaxNumberOfStreams = 3; | 
 |   // Defined as {150000, 450000, 1500000}; | 
 |   static const int kMaxBitratePerStream[]; | 
 |   // Defined as {50000, 200000, 700000}; | 
 |   static const int kDefaultMinBitratePerStream[]; | 
 |  | 
 |  private: | 
 |   std::vector<VideoStream> CreateEncoderStreams( | 
 |       int width, | 
 |       int height, | 
 |       const VideoEncoderConfig& encoder_config) override; | 
 | }; | 
 |  | 
 | // Creates |encoder_config.number_of_streams| VideoStreams where index | 
 | // |encoder_config.number_of_streams -1| have width = |width|, height = | 
 | // |height|. The total max bitrate of all VideoStreams is | 
 | // |encoder_config.max_bitrate_bps|. | 
 | std::vector<VideoStream> CreateVideoStreams( | 
 |     int width, | 
 |     int height, | 
 |     const webrtc::VideoEncoderConfig& encoder_config); | 
 |  | 
 | void FillEncoderConfiguration(VideoCodecType codec_type, | 
 |                               size_t num_streams, | 
 |                               VideoEncoderConfig* configuration); | 
 |  | 
 | VideoReceiveStream::Decoder CreateMatchingDecoder( | 
 |     int payload_type, | 
 |     const std::string& payload_name); | 
 |  | 
 | VideoReceiveStream::Decoder CreateMatchingDecoder( | 
 |     const VideoSendStream::Config& config); | 
 | }  // namespace test | 
 | }  // namespace webrtc | 
 |  | 
 | #endif  // TEST_ENCODER_SETTINGS_H_ |