Chromium Code Reviews| Index: webrtc/test/video_codec_settings.h |
| diff --git a/webrtc/test/video_codec_settings.h b/webrtc/test/video_codec_settings.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1487393999ee4845abcc73bc68e56f67ef1567d7 |
| --- /dev/null |
| +++ b/webrtc/test/video_codec_settings.h |
| @@ -0,0 +1,111 @@ |
| +/* |
| + * 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 WEBRTC_TEST_VIDEO_CODEC_SETTINGS_H_ |
| +#define WEBRTC_TEST_VIDEO_CODEC_SETTINGS_H_ |
| + |
| +#include "webrtc/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) { |
|
mflodman
2017/08/08 15:21:21
Renamed and moved from codec_database.cc, no funct
|
| + memset(settings, 0, sizeof(VideoCodec)); |
| + switch (codec_type) { |
| + case kVideoCodecVP8: |
| + strncpy(settings->plName, "VP8", 4); |
| + settings->codecType = kVideoCodecVP8; |
| + // 96 to 127 dynamic payload types for video codecs. |
| + settings->plType = kTestPayloadType; |
| + settings->startBitrate = kTestStartBitrateKbps; |
| + settings->minBitrate = kTestMinBitrateKbps; |
| + settings->maxBitrate = 0; |
| + settings->maxFramerate = kTestFrameRate; |
| + settings->width = kTestWidth; |
| + settings->height = kTestHeight; |
| + settings->numberOfSimulcastStreams = 0; |
| + settings->qpMax = 56; |
| + settings->timing_frame_thresholds = { |
| + kTestTimingFramesDelayMs, kTestOutlierFrameSizePercent, |
| + }; |
| + *(settings->VP8()) = VideoEncoder::GetDefaultVp8Settings(); |
| + return; |
| + case kVideoCodecVP9: |
| + strncpy(settings->plName, "VP9", 4); |
| + settings->codecType = kVideoCodecVP9; |
| + // 96 to 127 dynamic payload types for video codecs. |
| + settings->plType = kTestPayloadType; |
| + settings->startBitrate = 100; |
| + settings->minBitrate = kTestMinBitrateKbps; |
| + settings->maxBitrate = 0; |
| + settings->maxFramerate = kTestFrameRate; |
| + settings->width = kTestWidth; |
| + settings->height = kTestHeight; |
| + settings->numberOfSimulcastStreams = 0; |
| + settings->qpMax = 56; |
| + settings->timing_frame_thresholds = { |
| + kTestTimingFramesDelayMs, kTestOutlierFrameSizePercent, |
| + }; |
| + *(settings->VP9()) = VideoEncoder::GetDefaultVp9Settings(); |
| + return; |
| + case kVideoCodecH264: |
| + strncpy(settings->plName, "H264", 5); |
| + settings->codecType = kVideoCodecH264; |
| + // 96 to 127 dynamic payload types for video codecs. |
| + settings->plType = kTestPayloadType; |
| + settings->startBitrate = kTestStartBitrateKbps; |
| + settings->minBitrate = kTestMinBitrateKbps; |
| + settings->maxBitrate = 0; |
| + settings->maxFramerate = kTestFrameRate; |
| + settings->width = kTestWidth; |
| + settings->height = kTestHeight; |
| + settings->numberOfSimulcastStreams = 0; |
| + settings->qpMax = 56; |
| + settings->timing_frame_thresholds = { |
| + kTestTimingFramesDelayMs, kTestOutlierFrameSizePercent, |
| + }; |
| + *(settings->H264()) = VideoEncoder::GetDefaultH264Settings(); |
| + return; |
| + case kVideoCodecI420: |
| + strncpy(settings->plName, "I420", 5); |
| + settings->codecType = kVideoCodecI420; |
| + // 96 to 127 dynamic payload types for video codecs. |
| + settings->plType = kTestPayloadType; |
| + // Bitrate needed for this size and framerate. |
| + settings->startBitrate = |
| + 3 * kTestWidth * kTestHeight * 8 * kTestFrameRate / 1000 / 2; |
| + settings->maxBitrate = settings->startBitrate; |
| + settings->maxFramerate = kTestFrameRate; |
| + settings->width = kTestWidth; |
| + settings->height = kTestHeight; |
| + settings->minBitrate = kTestMinBitrateKbps; |
| + settings->numberOfSimulcastStreams = 0; |
| + return; |
| + case kVideoCodecRED: |
| + case kVideoCodecULPFEC: |
| + case kVideoCodecFlexfec: |
| + case kVideoCodecGeneric: |
| + case kVideoCodecUnknown: |
| + RTC_NOTREACHED(); |
| + return; |
| + } |
| +} |
| +} // namespace test |
| +} // namespace webrtc |
| + |
| +#endif // WEBRTC_TEST_VIDEO_CODEC_SETTINGS_H_ |