diff options
Diffstat (limited to 'third_party/libwebrtc/test/video_codec_settings.h')
-rw-r--r-- | third_party/libwebrtc/test/video_codec_settings.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/third_party/libwebrtc/test/video_codec_settings.h b/third_party/libwebrtc/test/video_codec_settings.h new file mode 100644 index 0000000000..5ef4ed3e4a --- /dev/null +++ b/third_party/libwebrtc/test/video_codec_settings.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2017 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_VIDEO_CODEC_SETTINGS_H_ +#define TEST_VIDEO_CODEC_SETTINGS_H_ + +#include "api/video_codecs/video_encoder.h" + +namespace webrtc { +namespace test { + +const uint16_t kTestWidth = 352; +const uint16_t kTestHeight = 288; +const uint32_t kTestFrameRate = 30; +const unsigned int kTestMinBitrateKbps = 30; +const unsigned int kTestStartBitrateKbps = 300; +const uint8_t kTestPayloadType = 100; +const int64_t kTestTimingFramesDelayMs = 200; +const uint16_t kTestOutlierFrameSizePercent = 250; + +static void CodecSettings(VideoCodecType codec_type, VideoCodec* settings) { + *settings = {}; + + settings->width = kTestWidth; + settings->height = kTestHeight; + + settings->startBitrate = kTestStartBitrateKbps; + settings->maxBitrate = 0; + settings->minBitrate = kTestMinBitrateKbps; + + settings->maxFramerate = kTestFrameRate; + + settings->active = true; + + settings->qpMax = 56; // See webrtcvideoengine.h. + settings->numberOfSimulcastStreams = 0; + + settings->timing_frame_thresholds = { + kTestTimingFramesDelayMs, + kTestOutlierFrameSizePercent, + }; + + settings->codecType = codec_type; + switch (codec_type) { + case kVideoCodecVP8: + *(settings->VP8()) = VideoEncoder::GetDefaultVp8Settings(); + return; + case kVideoCodecVP9: + *(settings->VP9()) = VideoEncoder::GetDefaultVp9Settings(); + return; + case kVideoCodecH264: + // TODO(brandtr): Set `qpMax` here, when the OpenH264 wrapper supports it. + *(settings->H264()) = VideoEncoder::GetDefaultH264Settings(); + return; + default: + return; + } +} +} // namespace test +} // namespace webrtc + +#endif // TEST_VIDEO_CODEC_SETTINGS_H_ |