Chromium Code Reviews| Index: webrtc/video/video_quality_test.h |
| diff --git a/webrtc/video/video_quality_test.h b/webrtc/video/video_quality_test.h |
| index f47140e3e836b116c8708164037c9d4074274d74..d7c07568e78c8a2e5e7903bb099c2c3d66cb86a2 100644 |
| --- a/webrtc/video/video_quality_test.h |
| +++ b/webrtc/video/video_quality_test.h |
| @@ -18,6 +18,8 @@ |
| namespace webrtc { |
| +#define AUTO_GRAPH_TITLE "__AUTO__" |
|
sprang_webrtc
2015/10/05 11:14:40
Not sure about this. You're using this just to get
ivica
2015/10/05 12:11:17
You are right, this is unnecessary. Probably no on
|
| + |
| class VideoQualityTest : public test::CallTest { |
| public: |
| // Parameters are grouped into smaller structs to make it easier to set |
| @@ -33,11 +35,11 @@ class VideoQualityTest : public test::CallTest { |
| int target_bitrate_bps; |
| int max_bitrate_bps; |
| std::string codec; |
| - size_t num_temporal_layers; |
| - |
| + int num_temporal_layers; |
| + int selected_tl; |
| int min_transmit_bps; |
| + |
| Call::Config::BitrateConfig call_bitrate_config; |
| - size_t tl_discard_threshold; |
| bool send_side_bwe; |
| } common; |
| struct { // Video-specific settings. |
| @@ -50,30 +52,55 @@ class VideoQualityTest : public test::CallTest { |
| } screenshare; |
| struct { // Analyzer settings. |
| std::string test_label; |
| - double avg_psnr_threshold; |
| - double avg_ssim_threshold; |
| + double avg_psnr_threshold; // (*) |
| + double avg_ssim_threshold; // (*) |
| int test_durations_secs; |
| std::string graph_data_output_filename; |
| + std::string graph_title; |
| } analyzer; |
| FakeNetworkPipe::Config pipe; |
| bool logs; |
| + struct { // Spatial scalability. |
| + std::vector<VideoStream> streams; // If empty, one stream is assumed. |
| + size_t selected_stream; |
| + int num_spatial_layers; |
| + int selected_sl; |
| + // If empty, bitrates are generated in VP9Impl automatically. |
| + std::vector<SpatialLayer> spatial_layers; |
| + } ss; |
| }; |
| + // (*) Set to -1.1 if generating graph data for simulcast or SVC and the |
| + // selected stream/layer doesn't have the same resolution as the largest |
| + // stream/layer (to ignore the PSNR and SSIM calculation errors). |
| VideoQualityTest(); |
| void RunWithAnalyzer(const Params& params); |
| void RunWithVideoRenderer(const Params& params); |
| + static void FillScalabilitySettings( |
| + Params* params, |
| + const std::vector<std::string>& stream_descriptors, |
| + size_t selected_stream, |
| + int num_spatial_layers, |
| + int selected_sl, |
| + const std::vector<std::string>& sl_descriptors); |
| protected: |
| // No-op implementation to be able to instantiate this class from non-TEST_F |
| // locations. |
| void TestBody() override; |
| - void CreateCapturer(const Params& params, VideoCaptureInput* input); |
| - void ValidateParams(const Params& params); |
| - void SetupFullStack(const Params& params, |
| - Transport* send_transport, |
| - Transport* recv_transport); |
| - void SetupScreenshare(const Params& params); |
| + // Helper methods accessing only params_. |
| + std::string GenerateGraphTitle() const; |
| + void CheckParams(); |
| + |
| + // Helper static methods. |
| + static VideoStream DefaultVideoStream(const Params& params); |
| + static std::vector<int> ParseCSV(const std::string& str); |
| + |
| + // Helper methods for setting up the call. |
| + void CreateCapturer(VideoCaptureInput* input); |
| + void SetupCommon(Transport* send_transport, Transport* recv_transport); |
| + void SetupScreenshare(); |
| // We need a more general capturer than the FrameGeneratorCapturer. |
| rtc::scoped_ptr<test::VideoCapturer> capturer_; |
| @@ -82,6 +109,8 @@ class VideoQualityTest : public test::CallTest { |
| rtc::scoped_ptr<VideoEncoder> encoder_; |
| VideoCodecUnion codec_settings_; |
| Clock* const clock_; |
| + |
| + Params params_; |
| }; |
| } // namespace webrtc |