Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1126)

Side by Side Diff: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h

Issue 2919803002: Make error resilience configurable through VideoCodecVP9 resilience setting. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 int width; 75 int width;
76 int height; 76 int height;
77 77
78 int num_temporal_layers; 78 int num_temporal_layers;
79 int key_frame_interval; 79 int key_frame_interval;
80 bool error_concealment_on; 80 bool error_concealment_on;
81 bool denoising_on; 81 bool denoising_on;
82 bool frame_dropper_on; 82 bool frame_dropper_on;
83 bool spatial_resize_on; 83 bool spatial_resize_on;
84 bool resilience_on;
84 85
85 float packet_loss_probability; // [0.0, 1.0]. 86 float packet_loss_probability; // [0.0, 1.0].
86 87
87 std::string filename; 88 std::string filename;
88 bool verbose_logging; 89 bool verbose_logging;
89 90
90 // In batch mode, the VideoProcessor is fed all the frames for processing 91 // In batch mode, the VideoProcessor is fed all the frames for processing
91 // before any metrics are calculated. This is useful for pipelining HW codecs, 92 // before any metrics are calculated. This is useful for pipelining HW codecs,
92 // for which some calculated metrics otherwise would be incorrect. The 93 // for which some calculated metrics otherwise would be incorrect. The
93 // downside with batch mode is that mid-test rate allocation is not supported. 94 // downside with batch mode is that mid-test rate allocation is not supported.
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 config_.codec_settings->VP8()->errorConcealmentOn = 276 config_.codec_settings->VP8()->errorConcealmentOn =
276 process.error_concealment_on; 277 process.error_concealment_on;
277 config_.codec_settings->VP8()->denoisingOn = process.denoising_on; 278 config_.codec_settings->VP8()->denoisingOn = process.denoising_on;
278 config_.codec_settings->VP8()->numberOfTemporalLayers = 279 config_.codec_settings->VP8()->numberOfTemporalLayers =
279 num_temporal_layers_; 280 num_temporal_layers_;
280 config_.codec_settings->VP8()->frameDroppingOn = 281 config_.codec_settings->VP8()->frameDroppingOn =
281 process.frame_dropper_on; 282 process.frame_dropper_on;
282 config_.codec_settings->VP8()->automaticResizeOn = 283 config_.codec_settings->VP8()->automaticResizeOn =
283 process.spatial_resize_on; 284 process.spatial_resize_on;
284 config_.codec_settings->VP8()->keyFrameInterval = kBaseKeyFrameInterval; 285 config_.codec_settings->VP8()->keyFrameInterval = kBaseKeyFrameInterval;
286 config_.codec_settings->VP8()->resilience =
287 process.resilience_on ? kResilientStream : kResilienceOff;
285 break; 288 break;
286 case kVideoCodecVP9: 289 case kVideoCodecVP9:
287 config_.codec_settings->VP9()->denoisingOn = process.denoising_on; 290 config_.codec_settings->VP9()->denoisingOn = process.denoising_on;
288 config_.codec_settings->VP9()->numberOfTemporalLayers = 291 config_.codec_settings->VP9()->numberOfTemporalLayers =
289 num_temporal_layers_; 292 num_temporal_layers_;
290 config_.codec_settings->VP9()->frameDroppingOn = 293 config_.codec_settings->VP9()->frameDroppingOn =
291 process.frame_dropper_on; 294 process.frame_dropper_on;
292 config_.codec_settings->VP9()->automaticResizeOn = 295 config_.codec_settings->VP9()->automaticResizeOn =
293 process.spatial_resize_on; 296 process.spatial_resize_on;
294 config_.codec_settings->VP9()->keyFrameInterval = kBaseKeyFrameInterval; 297 config_.codec_settings->VP9()->keyFrameInterval = kBaseKeyFrameInterval;
298 config_.codec_settings->VP9()->resilienceOn = process.resilience_on;
295 break; 299 break;
296 default: 300 default:
297 RTC_NOTREACHED(); 301 RTC_NOTREACHED();
298 break; 302 break;
299 } 303 }
300 304
301 // Create file objects for quality analysis. 305 // Create file objects for quality analysis.
302 analysis_frame_reader_.reset(new test::YuvFrameReaderImpl( 306 analysis_frame_reader_.reset(new test::YuvFrameReaderImpl(
303 config_.input_filename, config_.codec_settings->width, 307 config_.input_filename, config_.codec_settings->width,
304 config_.codec_settings->height)); 308 config_.codec_settings->height));
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 VideoCodecType codec_type, 693 VideoCodecType codec_type,
690 bool hw_codec, 694 bool hw_codec,
691 bool use_single_core, 695 bool use_single_core,
692 float packet_loss_probability, 696 float packet_loss_probability,
693 int key_frame_interval, 697 int key_frame_interval,
694 int num_temporal_layers, 698 int num_temporal_layers,
695 bool error_concealment_on, 699 bool error_concealment_on,
696 bool denoising_on, 700 bool denoising_on,
697 bool frame_dropper_on, 701 bool frame_dropper_on,
698 bool spatial_resize_on, 702 bool spatial_resize_on,
703 bool resilience_on,
699 int width, 704 int width,
700 int height, 705 int height,
701 const std::string& filename, 706 const std::string& filename,
702 bool verbose_logging, 707 bool verbose_logging,
703 bool batch_mode) { 708 bool batch_mode) {
704 process_settings->codec_type = codec_type; 709 process_settings->codec_type = codec_type;
705 process_settings->hw_codec = hw_codec; 710 process_settings->hw_codec = hw_codec;
706 process_settings->use_single_core = use_single_core; 711 process_settings->use_single_core = use_single_core;
707 process_settings->packet_loss_probability = packet_loss_probability; 712 process_settings->packet_loss_probability = packet_loss_probability;
708 process_settings->key_frame_interval = key_frame_interval; 713 process_settings->key_frame_interval = key_frame_interval;
709 process_settings->num_temporal_layers = num_temporal_layers, 714 process_settings->num_temporal_layers = num_temporal_layers,
710 process_settings->error_concealment_on = error_concealment_on; 715 process_settings->error_concealment_on = error_concealment_on;
711 process_settings->denoising_on = denoising_on; 716 process_settings->denoising_on = denoising_on;
712 process_settings->frame_dropper_on = frame_dropper_on; 717 process_settings->frame_dropper_on = frame_dropper_on;
713 process_settings->spatial_resize_on = spatial_resize_on; 718 process_settings->spatial_resize_on = spatial_resize_on;
719 process_settings->resilience_on = resilience_on;
714 process_settings->width = width; 720 process_settings->width = width;
715 process_settings->height = height; 721 process_settings->height = height;
716 process_settings->filename = filename; 722 process_settings->filename = filename;
717 process_settings->verbose_logging = verbose_logging; 723 process_settings->verbose_logging = verbose_logging;
718 process_settings->batch_mode = batch_mode; 724 process_settings->batch_mode = batch_mode;
719 } 725 }
720 726
721 static void SetCodecParams(CodecParams* process_settings, 727 static void SetCodecParams(CodecParams* process_settings,
722 VideoCodecType codec_type, 728 VideoCodecType codec_type,
723 bool hw_codec, 729 bool hw_codec,
724 bool use_single_core, 730 bool use_single_core,
725 float packet_loss_probability, 731 float packet_loss_probability,
726 int key_frame_interval, 732 int key_frame_interval,
727 int num_temporal_layers, 733 int num_temporal_layers,
728 bool error_concealment_on, 734 bool error_concealment_on,
729 bool denoising_on, 735 bool denoising_on,
730 bool frame_dropper_on, 736 bool frame_dropper_on,
731 bool spatial_resize_on) { 737 bool spatial_resize_on,
738 bool resilience_on) {
732 SetCodecParams(process_settings, codec_type, hw_codec, use_single_core, 739 SetCodecParams(process_settings, codec_type, hw_codec, use_single_core,
733 packet_loss_probability, key_frame_interval, 740 packet_loss_probability, key_frame_interval,
734 num_temporal_layers, error_concealment_on, denoising_on, 741 num_temporal_layers, error_concealment_on, denoising_on,
735 frame_dropper_on, spatial_resize_on, kCifWidth, kCifHeight, 742 frame_dropper_on, spatial_resize_on, resilience_on,
736 kFilenameForemanCif, false /* verbose_logging */, 743 kCifWidth, kCifHeight, kFilenameForemanCif,
737 false /* batch_mode */); 744 false /* verbose_logging */, false /* batch_mode */);
738 } 745 }
739 746
740 static void SetQualityThresholds(QualityThresholds* quality_thresholds, 747 static void SetQualityThresholds(QualityThresholds* quality_thresholds,
741 double min_avg_psnr, 748 double min_avg_psnr,
742 double min_min_psnr, 749 double min_min_psnr,
743 double min_avg_ssim, 750 double min_avg_ssim,
744 double min_min_ssim) { 751 double min_min_ssim) {
745 quality_thresholds->min_avg_psnr = min_avg_psnr; 752 quality_thresholds->min_avg_psnr = min_avg_psnr;
746 quality_thresholds->min_min_psnr = min_min_psnr; 753 quality_thresholds->min_min_psnr = min_min_psnr;
747 quality_thresholds->min_avg_ssim = min_avg_ssim; 754 quality_thresholds->min_avg_ssim = min_avg_ssim;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 834
828 // Codec and network settings. 835 // Codec and network settings.
829 float packet_loss_probability_; 836 float packet_loss_probability_;
830 int num_temporal_layers_; 837 int num_temporal_layers_;
831 }; 838 };
832 839
833 } // namespace test 840 } // namespace test
834 } // namespace webrtc 841 } // namespace webrtc
835 842
836 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_INTEGRATIONTES T_H_ 843 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_INTEGRATIONTES T_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698