Adds support for finch experiments to video_loopback.
Adds support for logging to stderr via -logs. Enables abs-send-time by default. R=mflodman@webrtc.org, pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/23329004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7613 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
52b42cb069
commit
b3265accd9
@ -22,13 +22,18 @@
|
||||
#include "webrtc/test/direct_transport.h"
|
||||
#include "webrtc/test/encoder_settings.h"
|
||||
#include "webrtc/test/fake_encoder.h"
|
||||
#include "webrtc/test/field_trial.h"
|
||||
#include "webrtc/test/run_loop.h"
|
||||
#include "webrtc/test/run_test.h"
|
||||
#include "webrtc/test/testsupport/trace_to_stderr.h"
|
||||
#include "webrtc/test/video_capturer.h"
|
||||
#include "webrtc/test/video_renderer.h"
|
||||
#include "webrtc/typedefs.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
static const int kAbsSendTimeExtensionId = 7;
|
||||
|
||||
namespace flags {
|
||||
|
||||
DEFINE_int32(width, 640, "Video width.");
|
||||
@ -82,6 +87,16 @@ DEFINE_int32(std_propagation_delay_ms,
|
||||
int StdPropagationDelayMs() {
|
||||
return static_cast<int>(FLAGS_std_propagation_delay_ms);
|
||||
}
|
||||
|
||||
DEFINE_bool(logs, false, "print logs to stderr");
|
||||
|
||||
DEFINE_string(
|
||||
force_fieldtrials,
|
||||
"",
|
||||
"Field trials control experimental feature code which can be forced. "
|
||||
"E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/"
|
||||
" will assign the group Enable to field trial WebRTC-FooFeature. Multiple "
|
||||
"trials are separated by \"/\"");
|
||||
} // namespace flags
|
||||
|
||||
static const uint32_t kSendSsrc = 0x654321;
|
||||
@ -91,6 +106,10 @@ static const uint32_t kReceiverLocalSsrc = 0x123456;
|
||||
static const uint8_t kRtxPayloadType = 96;
|
||||
|
||||
void Loopback() {
|
||||
scoped_ptr<test::TraceToStderr> trace_to_stderr_;
|
||||
if (webrtc::flags::FLAGS_logs)
|
||||
trace_to_stderr_.reset(new test::TraceToStderr);
|
||||
|
||||
scoped_ptr<test::VideoRenderer> local_preview(test::VideoRenderer::Create(
|
||||
"Local Preview", flags::Width(), flags::Height()));
|
||||
scoped_ptr<test::VideoRenderer> loopback_video(test::VideoRenderer::Create(
|
||||
@ -116,6 +135,8 @@ void Loopback() {
|
||||
send_config.rtp.rtx.ssrcs.push_back(kSendRtxSsrc);
|
||||
send_config.rtp.rtx.payload_type = kRtxPayloadType;
|
||||
send_config.rtp.nack.rtp_history_ms = 1000;
|
||||
send_config.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
|
||||
|
||||
send_config.local_renderer = local_preview.get();
|
||||
scoped_ptr<VideoEncoder> encoder;
|
||||
@ -158,6 +179,8 @@ void Loopback() {
|
||||
receive_config.rtp.nack.rtp_history_ms = 1000;
|
||||
receive_config.rtp.rtx[kRtxPayloadType].ssrc = kSendRtxSsrc;
|
||||
receive_config.rtp.rtx[kRtxPayloadType].payload_type = kRtxPayloadType;
|
||||
receive_config.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeExtensionId));
|
||||
receive_config.renderer = loopback_video.get();
|
||||
VideoReceiveStream::Decoder decoder =
|
||||
test::CreateMatchingDecoder(send_config.encoder_settings);
|
||||
@ -188,7 +211,8 @@ void Loopback() {
|
||||
int main(int argc, char* argv[]) {
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
google::ParseCommandLineFlags(&argc, &argv, true);
|
||||
|
||||
webrtc::test::InitFieldTrialsFromString(
|
||||
webrtc::flags::FLAGS_force_fieldtrials);
|
||||
webrtc::test::RunTest(webrtc::Loopback);
|
||||
return 0;
|
||||
}
|
||||
|
@ -59,6 +59,7 @@
|
||||
'<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
|
||||
'<(webrtc_root)/modules/modules.gyp:video_render_module_impl',
|
||||
'<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers_default',
|
||||
'test/test.gyp:test_main',
|
||||
'webrtc',
|
||||
],
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user