Switch psnr_ssim_analyzer to ABSL_FLAG.
Bug: webrtc:10616 Change-Id: Ic1a60143c799fc994d8b2411e32ec9435f893906 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143480 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28363}
This commit is contained in:
committed by
Commit Bot
parent
2308bb223e
commit
8e032c8b7a
@ -200,17 +200,19 @@ if (!build_with_chromium) {
|
||||
}
|
||||
|
||||
rtc_executable("psnr_ssim_analyzer") {
|
||||
testonly = true
|
||||
sources = [
|
||||
"psnr_ssim_analyzer/psnr_ssim_analyzer.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":command_line_parser",
|
||||
":video_file_reader",
|
||||
":video_quality_analysis",
|
||||
"../api:scoped_refptr",
|
||||
"../api/video:video_frame",
|
||||
"../api/video:video_rtp_headers",
|
||||
"//third_party/abseil-cpp/absl/flags:flag",
|
||||
"//third_party/abseil-cpp/absl/flags:parse",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@ -13,12 +13,26 @@
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "api/scoped_refptr.h"
|
||||
#include "api/video/video_frame_buffer.h"
|
||||
#include "rtc_tools/frame_analyzer/video_quality_analysis.h"
|
||||
#include "rtc_tools/simple_command_line_parser.h"
|
||||
#include "rtc_tools/video_file_reader.h"
|
||||
|
||||
ABSL_FLAG(std::string,
|
||||
results_file,
|
||||
"results.txt",
|
||||
"The full name of the file where the results will be written");
|
||||
ABSL_FLAG(std::string,
|
||||
reference_file,
|
||||
"ref.yuv",
|
||||
"The reference YUV file to compare against");
|
||||
ABSL_FLAG(std::string,
|
||||
test_file,
|
||||
"test.yuv",
|
||||
"The test YUV file to run the analysis for");
|
||||
|
||||
void CompareFiles(
|
||||
const rtc::scoped_refptr<webrtc::test::Video>& reference_video,
|
||||
const rtc::scoped_refptr<webrtc::test::Video>& test_video,
|
||||
@ -59,45 +73,27 @@ void CompareFiles(
|
||||
* --results_file=<name_of_file>
|
||||
*/
|
||||
int main(int argc, char* argv[]) {
|
||||
std::string program_name = argv[0];
|
||||
std::string usage =
|
||||
"Runs PSNR and SSIM on two I420 videos and write the"
|
||||
"results in a file.\n"
|
||||
"Example usage:\n" +
|
||||
program_name +
|
||||
" --reference_file=ref.yuv "
|
||||
"--test_file=test.yuv --results_file=results.txt\n"
|
||||
"Command line flags:\n"
|
||||
" - reference_file(string): The reference YUV file to compare against."
|
||||
" Default: ref.yuv\n"
|
||||
" - test_file(string): The test YUV file to run the analysis for."
|
||||
" Default: test_file.yuv\n"
|
||||
" - results_file(string): The full name of the file where the results "
|
||||
"will be written. Default: results.txt\n";
|
||||
|
||||
webrtc::test::CommandLineParser parser;
|
||||
|
||||
// Init the parser and set the usage message
|
||||
parser.Init(argc, argv);
|
||||
parser.SetUsageMessage(usage);
|
||||
|
||||
parser.SetFlag("results_file", "results.txt");
|
||||
parser.SetFlag("reference_file", "ref.yuv");
|
||||
parser.SetFlag("test_file", "test.yuv");
|
||||
parser.SetFlag("results_file", "results.txt");
|
||||
parser.SetFlag("help", "false");
|
||||
|
||||
parser.ProcessFlags();
|
||||
if (parser.GetFlag("help") == "true") {
|
||||
parser.PrintUsageMessage();
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
parser.PrintEnteredFlags();
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// TODO(bugs.webrtc.org/10616): Add program usage message when Abseil
|
||||
// flags supports it.
|
||||
// std::string usage =
|
||||
// "Runs PSNR and SSIM on two I420 videos and write the"
|
||||
// "results in a file.\n"
|
||||
// "Example usage:\n" +
|
||||
// program_name +
|
||||
// " --reference_file=ref.yuv "
|
||||
// "--test_file=test.yuv --results_file=results.txt\n"
|
||||
// "Command line flags:\n"
|
||||
// " - reference_file(string): The reference YUV file to compare
|
||||
// against." " Default: ref.yuv\n" " - test_file(string): The test YUV
|
||||
// file to run the analysis for." " Default: test_file.yuv\n" " -
|
||||
// results_file(string): The full name of the file where the results "
|
||||
// "will be written. Default: results.txt\n";
|
||||
|
||||
rtc::scoped_refptr<webrtc::test::Video> reference_video =
|
||||
webrtc::test::OpenY4mFile(parser.GetFlag("reference_file"));
|
||||
webrtc::test::OpenY4mFile(absl::GetFlag(FLAGS_reference_file));
|
||||
rtc::scoped_refptr<webrtc::test::Video> test_video =
|
||||
webrtc::test::OpenY4mFile(parser.GetFlag("test_file"));
|
||||
webrtc::test::OpenY4mFile(absl::GetFlag(FLAGS_test_file));
|
||||
|
||||
if (!reference_video || !test_video) {
|
||||
fprintf(stderr, "Error opening video files\n");
|
||||
@ -114,6 +110,6 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
|
||||
CompareFiles(reference_video, test_video,
|
||||
parser.GetFlag("results_file").c_str());
|
||||
absl::GetFlag(FLAGS_results_file).c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user