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

Unified Diff: webrtc/video/video_quality_test.cc

Issue 2997393002: Move rtp dump writer from quality test to test transport (Closed)
Patch Set: Deps Created 3 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/video_loopback.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/video_quality_test.cc
diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc
index 7caa6367b001444c14cde8f3f764e609c3abde21..7c2a70221b82deafcd0803cd99334c81548d64f2 100644
--- a/webrtc/video/video_quality_test.cc
+++ b/webrtc/video/video_quality_test.cc
@@ -46,6 +46,7 @@
#include "webrtc/system_wrappers/include/field_trial.h"
#include "webrtc/test/gtest.h"
#include "webrtc/test/layer_filtering_transport.h"
+#include "webrtc/test/rtp_file_writer.h"
#include "webrtc/test/run_loop.h"
#include "webrtc/test/statistics.h"
#include "webrtc/test/testsupport/fileutils.h"
@@ -55,8 +56,6 @@
#include "webrtc/test/video_renderer.h"
#include "webrtc/voice_engine/include/voe_base.h"
-#include "webrtc/test/rtp_file_writer.h"
-
DEFINE_bool(save_worst_frame,
false,
"Enable saving a frame with the lowest PSNR to a jpeg file in the "
@@ -162,8 +161,7 @@ class VideoAnalyzer : public PacketReceiver,
int selected_sl,
int selected_tl,
bool is_quick_test_enabled,
- Clock* clock,
- std::string rtp_dump_name)
+ Clock* clock)
: transport_(transport),
receiver_(nullptr),
call_(nullptr),
@@ -199,9 +197,7 @@ class VideoAnalyzer : public PacketReceiver,
is_quick_test_enabled_(is_quick_test_enabled),
stats_polling_thread_(&PollStatsThread, this, "StatsPoller"),
comparison_available_event_(false, false),
- done_(true, false),
- clock_(clock),
- start_ms_(clock->TimeInMilliseconds()) {
+ done_(true, false) {
// Create thread pool for CPU-expensive PSNR/SSIM calculations.
// Try to use about as many threads as cores, but leave kMinCoresLeft alone,
@@ -227,12 +223,6 @@ class VideoAnalyzer : public PacketReceiver,
thread->Start();
comparison_thread_pool_.push_back(thread);
}
-
- if (!rtp_dump_name.empty()) {
- fprintf(stdout, "Writing rtp dump to %s\n", rtp_dump_name.c_str());
- rtp_file_writer_.reset(test::RtpFileWriter::Create(
- test::RtpFileWriter::kRtpDump, rtp_dump_name));
- }
}
~VideoAnalyzer() {
@@ -286,15 +276,6 @@ class VideoAnalyzer : public PacketReceiver,
return receiver_->DeliverPacket(media_type, packet, length, packet_time);
}
- if (rtp_file_writer_) {
- test::RtpPacket p;
- memcpy(p.data, packet, length);
- p.length = length;
- p.original_length = length;
- p.time_ms = clock_->TimeInMilliseconds() - start_ms_;
- rtp_file_writer_->WritePacket(&p);
- }
-
RtpUtility::RtpHeaderParser parser(packet, length);
RTPHeader header;
parser.Parse(&header);
@@ -1120,10 +1101,6 @@ class VideoAnalyzer : public PacketReceiver,
rtc::Event comparison_available_event_;
std::deque<FrameComparison> comparisons_ GUARDED_BY(comparison_lock_);
rtc::Event done_;
-
- std::unique_ptr<test::RtpFileWriter> rtp_file_writer_;
- Clock* const clock_;
- const int64_t start_ms_;
};
class Vp8EncoderFactory : public cricket::WebRtcVideoEncoderFactory {
@@ -1808,13 +1785,21 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) {
&recv_transport]() {
CreateCalls(call_config, call_config);
+ std::unique_ptr<test::RtpFileWriter> rtp_file_writer;
+ if (!params_.logging.rtp_dump_name.empty()) {
+ LOG(LS_INFO) << "Writing rtp dump to " << params_.logging.rtp_dump_name;
+ rtp_file_writer.reset(test::RtpFileWriter::Create(
+ test::RtpFileWriter::kRtpDump, params_.logging.rtp_dump_name));
+ }
+
send_transport = rtc::MakeUnique<test::LayerFilteringTransport>(
&task_queue_, params_.pipe, sender_call_.get(), kPayloadTypeVP8,
kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl,
- payload_type_map_);
+ payload_type_map_, std::move(rtp_file_writer));
recv_transport = rtc::MakeUnique<test::DirectTransport>(
- &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_);
+ &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_,
+ std::unique_ptr<test::RtpFileWriter>());
});
std::string graph_title = params_.analyzer.graph_title;
@@ -1831,8 +1816,7 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) {
kVideoSendSsrcs[params_.ss.selected_stream],
kSendRtxSsrcs[params_.ss.selected_stream],
static_cast<size_t>(params_.ss.selected_stream), params.ss.selected_sl,
- params_.video.selected_tl, is_quick_test_enabled, clock_,
- params_.logging.rtp_dump_name);
+ params_.video.selected_tl, is_quick_test_enabled, clock_);
task_queue_.SendTask([&]() {
analyzer->SetCall(sender_call_.get());
@@ -1994,15 +1978,23 @@ void VideoQualityTest::RunWithRenderers(const Params& params) {
CreateCalls(call_config, call_config);
+ std::unique_ptr<test::RtpFileWriter> rtp_file_writer;
+ if (!params_.logging.rtp_dump_name.empty()) {
+ LOG(LS_INFO) << "Writing rtp dump to " << params_.logging.rtp_dump_name;
+ rtp_file_writer.reset(test::RtpFileWriter::Create(
+ test::RtpFileWriter::kRtpDump, params_.logging.rtp_dump_name));
+ }
+
// TODO(minyue): consider if this is a good transport even for audio only
// calls.
send_transport = rtc::MakeUnique<test::LayerFilteringTransport>(
&task_queue_, params.pipe, sender_call_.get(), kPayloadTypeVP8,
kPayloadTypeVP9, params.video.selected_tl, params_.ss.selected_sl,
- payload_type_map_);
+ payload_type_map_, std::move(rtp_file_writer));
recv_transport = rtc::MakeUnique<test::DirectTransport>(
- &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_);
+ &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_,
+ std::unique_ptr<test::RtpFileWriter>());
// TODO(ivica): Use two calls to be able to merge with RunWithAnalyzer or at
// least share as much code as possible. That way this test would also match
« no previous file with comments | « webrtc/video/video_loopback.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698