| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 } else if (codec_settings.codecType == kVideoCodecVP9) { | 64 } else if (codec_settings.codecType == kVideoCodecVP9) { |
| 65 return codec_settings.VP9().numberOfTemporalLayers; | 65 return codec_settings.VP9().numberOfTemporalLayers; |
| 66 } else { | 66 } else { |
| 67 return 1; | 67 return 1; |
| 68 } | 68 } |
| 69 } | 69 } |
| 70 | 70 |
| 71 } // namespace | 71 } // namespace |
| 72 | 72 |
| 73 VideoProcessorIntegrationTest::VideoProcessorIntegrationTest() { | 73 VideoProcessorIntegrationTest::VideoProcessorIntegrationTest() { |
| 74 #if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED) && \ | 74 #if defined(WEBRTC_ANDROID) |
| 75 defined(WEBRTC_ANDROID) | |
| 76 InitializeAndroidObjects(); | 75 InitializeAndroidObjects(); |
| 77 #endif | 76 #endif |
| 78 } | 77 } |
| 79 | 78 |
| 80 VideoProcessorIntegrationTest::~VideoProcessorIntegrationTest() = default; | 79 VideoProcessorIntegrationTest::~VideoProcessorIntegrationTest() = default; |
| 81 | 80 |
| 82 void VideoProcessorIntegrationTest::SetCodecSettings(TestConfig* config, | 81 void VideoProcessorIntegrationTest::SetCodecSettings(TestConfig* config, |
| 83 VideoCodecType codec_type, | 82 VideoCodecType codec_type, |
| 84 int num_temporal_layers, | 83 int num_temporal_layers, |
| 85 bool error_concealment_on, | 84 bool error_concealment_on, |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 | 268 |
| 270 // Remove analysis file. | 269 // Remove analysis file. |
| 271 if (remove(config_.output_filename.c_str()) < 0) { | 270 if (remove(config_.output_filename.c_str()) < 0) { |
| 272 fprintf(stderr, "Failed to remove temporary file!\n"); | 271 fprintf(stderr, "Failed to remove temporary file!\n"); |
| 273 } | 272 } |
| 274 } | 273 } |
| 275 | 274 |
| 276 void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() { | 275 void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() { |
| 277 std::unique_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory; | 276 std::unique_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory; |
| 278 if (config_.hw_encoder) { | 277 if (config_.hw_encoder) { |
| 279 #if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED) | |
| 280 #if defined(WEBRTC_ANDROID) | 278 #if defined(WEBRTC_ANDROID) |
| 281 encoder_factory.reset(new jni::MediaCodecVideoEncoderFactory()); | 279 encoder_factory.reset(new jni::MediaCodecVideoEncoderFactory()); |
| 282 #elif defined(WEBRTC_IOS) | 280 #elif defined(WEBRTC_IOS) |
| 283 EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType) | 281 EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType) |
| 284 << "iOS HW codecs only support H264."; | 282 << "iOS HW codecs only support H264."; |
| 285 encoder_factory = CreateObjCEncoderFactory(); | 283 encoder_factory = CreateObjCEncoderFactory(); |
| 286 #else | 284 #else |
| 287 RTC_NOTREACHED() << "Only support HW encoder on Android and iOS."; | 285 RTC_NOTREACHED() << "Only support HW encoder on Android and iOS."; |
| 288 #endif | 286 #endif |
| 289 #endif // WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED | |
| 290 } else { | 287 } else { |
| 291 encoder_factory.reset(new cricket::InternalEncoderFactory()); | 288 encoder_factory.reset(new cricket::InternalEncoderFactory()); |
| 292 } | 289 } |
| 293 | 290 |
| 294 if (config_.hw_decoder) { | 291 if (config_.hw_decoder) { |
| 295 #if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED) | |
| 296 #if defined(WEBRTC_ANDROID) | 292 #if defined(WEBRTC_ANDROID) |
| 297 decoder_factory_.reset(new jni::MediaCodecVideoDecoderFactory()); | 293 decoder_factory_.reset(new jni::MediaCodecVideoDecoderFactory()); |
| 298 #elif defined(WEBRTC_IOS) | 294 #elif defined(WEBRTC_IOS) |
| 299 EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType) | 295 EXPECT_EQ(kVideoCodecH264, config_.codec_settings.codecType) |
| 300 << "iOS HW codecs only support H264."; | 296 << "iOS HW codecs only support H264."; |
| 301 decoder_factory_ = CreateObjCDecoderFactory(); | 297 decoder_factory_ = CreateObjCDecoderFactory(); |
| 302 #else | 298 #else |
| 303 RTC_NOTREACHED() << "Only support HW decoder on Android and iOS."; | 299 RTC_NOTREACHED() << "Only support HW decoder on Android and iOS."; |
| 304 #endif | 300 #endif |
| 305 #endif // WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED | |
| 306 } else { | 301 } else { |
| 307 decoder_factory_.reset(new cricket::InternalDecoderFactory()); | 302 decoder_factory_.reset(new cricket::InternalDecoderFactory()); |
| 308 } | 303 } |
| 309 | 304 |
| 310 cricket::VideoCodec encoder_codec; | 305 cricket::VideoCodec encoder_codec; |
| 311 switch (config_.codec_settings.codecType) { | 306 switch (config_.codec_settings.codecType) { |
| 312 case kVideoCodecVP8: | 307 case kVideoCodecVP8: |
| 313 encoder_codec = cricket::VideoCodec(cricket::kVp8CodecName); | 308 encoder_codec = cricket::VideoCodec(cricket::kVp8CodecName); |
| 314 encoder_.reset(encoder_factory->CreateVideoEncoder(encoder_codec)); | 309 encoder_.reset(encoder_factory->CreateVideoEncoder(encoder_codec)); |
| 315 decoder_ = decoder_factory_->CreateVideoDecoder(kVideoCodecVP8); | 310 decoder_ = decoder_factory_->CreateVideoDecoder(kVideoCodecVP8); |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 perc_encoding_rate_mismatch_ = 0.0f; | 643 perc_encoding_rate_mismatch_ = 0.0f; |
| 649 num_frames_to_hit_target_ = | 644 num_frames_to_hit_target_ = |
| 650 rate_profile.frame_index_rate_update[rate_update_index + 1]; | 645 rate_profile.frame_index_rate_update[rate_update_index + 1]; |
| 651 encoding_rate_within_target_ = false; | 646 encoding_rate_within_target_ = false; |
| 652 sum_key_frame_size_mismatch_ = 0.0; | 647 sum_key_frame_size_mismatch_ = 0.0; |
| 653 num_key_frames_ = 0; | 648 num_key_frames_ = 0; |
| 654 } | 649 } |
| 655 | 650 |
| 656 } // namespace test | 651 } // namespace test |
| 657 } // namespace webrtc | 652 } // namespace webrtc |
| OLD | NEW |