From 4aeee03634e4a3d9074651e9ac2893d3e5c8e69f Mon Sep 17 00:00:00 2001 From: David Staessens Date: Mon, 3 Jun 2019 05:41:47 +0000 Subject: [PATCH] media/gpu/test: Allow overwriting output folder in new video decoder tests. This CL adds the --output_folder parameter to the video_decode_accelerator_tests and video_decode_accelerator_perf_tests binaries, so the default output folder for video frames and metrics can be overwritten. This is required to run the tests from Tast. TEST=ran new VDA (perf) tests on eve BUG=953114 Change-Id: Id536f0bc441dbf23ea3ab39434e340ec4503924e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1605324 Commit-Queue: David Staessens Reviewed-by: Hirokazu Honda Cr-Commit-Position: refs/heads/master@{#665461} --- .../gpu/video_decoder_perf_test_usage.md | 3 +++ docs/media/gpu/video_decoder_test_usage.md | 2 ++ media/gpu/test/video_frame_file_writer.h | 7 +------ .../video_player_test_environment.cc | 9 ++++++++- .../video_player_test_environment.h | 5 +++++ .../video_decode_accelerator_perf_tests.cc | 19 ++++++++++++++----- media/gpu/video_decode_accelerator_tests.cc | 18 ++++++++++++++---- 7 files changed, 47 insertions(+), 16 deletions(-) diff --git a/docs/media/gpu/video_decoder_perf_test_usage.md b/docs/media/gpu/video_decoder_perf_test_usage.md index 029288f53b49ca..be6b64e0198609 100644 --- a/docs/media/gpu/video_decoder_perf_test_usage.md +++ b/docs/media/gpu/video_decoder_perf_test_usage.md @@ -56,6 +56,9 @@ Multiple command line arguments can be given to the command: -v enable verbose mode, e.g. -v=2. --vmodule enable verbose mode for the specified module, e.g. --vmodule=*media/gpu*=2. + --output_folder overwrite the output folder used to store + performance metrics, if not specified results + will be stored in the current working directory. --use_vd use the new VD-based video decoders, instead of the default VDA-based video decoders. --gtest_help display the gtest help and exit. diff --git a/docs/media/gpu/video_decoder_test_usage.md b/docs/media/gpu/video_decoder_test_usage.md index cc1542f41cff00..6d0917377ce08a 100644 --- a/docs/media/gpu/video_decoder_test_usage.md +++ b/docs/media/gpu/video_decoder_test_usage.md @@ -67,6 +67,8 @@ Multiple command line arguments can be given to the command: platforms that don't support import mode. --output_frames write all decoded video frames to the "video_frames" folder. + --output_folder overwrite the default output folder used when + "--output_frames" is specified. --use_vd use the new VD-based video decoders, instead of the default VDA-based video decoders. --gtest_help display the gtest help and exit. diff --git a/media/gpu/test/video_frame_file_writer.h b/media/gpu/test/video_frame_file_writer.h index eda9f24152589d..92c4f24bcf7924 100644 --- a/media/gpu/test/video_frame_file_writer.h +++ b/media/gpu/test/video_frame_file_writer.h @@ -21,10 +21,6 @@ class VideoFrameMapper; namespace test { -// Default output folder used to store frames. -constexpr const base::FilePath::CharType* kDefaultOutputFolder = - FILE_PATH_LITERAL("video_frames"); - // The video frame file writer class implements functionality to write video // frames to file. The supported output formats are PNG and raw I420 YUV. class VideoFrameFileWriter : public VideoFrameProcessor { @@ -39,8 +35,7 @@ class VideoFrameFileWriter : public VideoFrameProcessor { // Create an instance of the video frame file writer. static std::unique_ptr Create( - const base::FilePath& output_folder = - base::FilePath(kDefaultOutputFolder), + const base::FilePath& output_folder, OutputFormat output_format = OutputFormat::kPNG); // Interface VideoFrameProcessor diff --git a/media/gpu/test/video_player/video_player_test_environment.cc b/media/gpu/test/video_player/video_player_test_environment.cc index 9d5b4b5087f5b7..895b299914a9a1 100644 --- a/media/gpu/test/video_player/video_player_test_environment.cc +++ b/media/gpu/test/video_player/video_player_test_environment.cc @@ -21,6 +21,7 @@ VideoPlayerTestEnvironment* VideoPlayerTestEnvironment::Create( const base::FilePath& video_metadata_path, bool enable_validator, bool output_frames, + const base::FilePath& output_folder, bool use_vd) { auto video = std::make_unique( video_path.empty() ? base::FilePath(kDefaultTestVideoPath) : video_path, @@ -31,17 +32,19 @@ VideoPlayerTestEnvironment* VideoPlayerTestEnvironment::Create( } return new VideoPlayerTestEnvironment(std::move(video), enable_validator, - output_frames, use_vd); + output_frames, output_folder, use_vd); } VideoPlayerTestEnvironment::VideoPlayerTestEnvironment( std::unique_ptr video, bool enable_validator, bool output_frames, + const base::FilePath& output_folder, bool use_vd) : video_(std::move(video)), enable_validator_(enable_validator), output_frames_(output_frames), + output_folder_(output_folder), use_vd_(use_vd) {} VideoPlayerTestEnvironment::~VideoPlayerTestEnvironment() = default; @@ -58,6 +61,10 @@ bool VideoPlayerTestEnvironment::IsFramesOutputEnabled() const { return output_frames_; } +const base::FilePath& VideoPlayerTestEnvironment::OutputFolder() const { + return output_folder_; +} + bool VideoPlayerTestEnvironment::UseVD() const { return use_vd_; } diff --git a/media/gpu/test/video_player/video_player_test_environment.h b/media/gpu/test/video_player/video_player_test_environment.h index db9b92b9f7cdb2..5507c8d40ef13f 100644 --- a/media/gpu/test/video_player/video_player_test_environment.h +++ b/media/gpu/test/video_player/video_player_test_environment.h @@ -24,6 +24,7 @@ class VideoPlayerTestEnvironment : public VideoTestEnvironment { const base::FilePath& video_metadata_path, bool enable_validator, bool output_frames, + const base::FilePath& output_folder, bool use_vd); ~VideoPlayerTestEnvironment() override; @@ -33,6 +34,8 @@ class VideoPlayerTestEnvironment : public VideoTestEnvironment { bool IsValidatorEnabled() const; // Check whether outputting frames is enabled. bool IsFramesOutputEnabled() const; + // Get the output folder. + const base::FilePath& OutputFolder() const; // Check whether we should use VD-based video decoders instead of VDA-based. bool UseVD() const; @@ -40,11 +43,13 @@ class VideoPlayerTestEnvironment : public VideoTestEnvironment { VideoPlayerTestEnvironment(std::unique_ptr video, bool enable_validator, bool output_frames, + const base::FilePath& output_folder, bool use_vd); const std::unique_ptr video_; const bool enable_validator_; const bool output_frames_; + const base::FilePath output_folder_; const bool use_vd_; }; } // namespace test diff --git a/media/gpu/video_decode_accelerator_perf_tests.cc b/media/gpu/video_decode_accelerator_perf_tests.cc index 9d971724254633..c9fdba46a28967 100644 --- a/media/gpu/video_decode_accelerator_perf_tests.cc +++ b/media/gpu/video_decode_accelerator_perf_tests.cc @@ -27,8 +27,9 @@ namespace { // making changes here. constexpr const char* usage_msg = "usage: video_decode_accelerator_perf_tests\n" - " [-v=] [--vmodule=] [--use_vd] [--gtest_help]\n" - " [--help] [