
The main purpose was the interface-> include rename, but other files were also moved, eliminating the "main" dir. To avoid breaking downstream, the "interface" directories were copied into a new "video_coding/include" dir. The old headers got pragma warnings added about deprecation (a very short deprecation since I plan to remove them as soon downstream is updated). Other files also moved: video_coding/main/source -> video_coding video_coding/main/test -> video_coding/test BUG=webrtc:5095 TESTED=Passing compile-trybots with --clobber flag: git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc R=stefan@webrtc.org, tommi@webrtc.org Review URL: https://codereview.webrtc.org/1417283007 . Cr-Commit-Position: refs/heads/master@{#10694}
89 lines
3.1 KiB
C++
89 lines
3.1 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "webrtc/modules/video_coding/test/receiver_tests.h"
|
|
#include "webrtc/modules/video_coding/test/vcm_payload_sink_factory.h"
|
|
#include "webrtc/system_wrappers/include/trace.h"
|
|
#include "webrtc/test/testsupport/fileutils.h"
|
|
|
|
namespace {
|
|
|
|
const bool kConfigProtectionEnabled = true;
|
|
const webrtc::VCMVideoProtection kConfigProtectionMethod =
|
|
webrtc::kProtectionNack;
|
|
const float kConfigLossRate = 0.0f;
|
|
const bool kConfigReordering = false;
|
|
const int64_t kConfigRttMs = 0;
|
|
const uint32_t kConfigRenderDelayMs = 0;
|
|
const uint32_t kConfigMinPlayoutDelayMs = 0;
|
|
const int64_t kConfigMaxRuntimeMs = -1;
|
|
const uint8_t kDefaultUlpFecPayloadType = 97;
|
|
const uint8_t kDefaultRedPayloadType = 96;
|
|
const uint8_t kDefaultVp8PayloadType = 100;
|
|
} // namespace
|
|
|
|
int RtpPlay(const CmdArgs& args) {
|
|
std::string trace_file = webrtc::test::OutputPath() + "receiverTestTrace.txt";
|
|
webrtc::Trace::CreateTrace();
|
|
webrtc::Trace::SetTraceFile(trace_file.c_str());
|
|
webrtc::Trace::set_level_filter(webrtc::kTraceAll);
|
|
|
|
webrtc::rtpplayer::PayloadTypes payload_types;
|
|
payload_types.push_back(webrtc::rtpplayer::PayloadCodecTuple(
|
|
kDefaultUlpFecPayloadType, "ULPFEC", webrtc::kVideoCodecULPFEC));
|
|
payload_types.push_back(webrtc::rtpplayer::PayloadCodecTuple(
|
|
kDefaultRedPayloadType, "RED", webrtc::kVideoCodecRED));
|
|
payload_types.push_back(webrtc::rtpplayer::PayloadCodecTuple(
|
|
kDefaultVp8PayloadType, "VP8", webrtc::kVideoCodecVP8));
|
|
|
|
std::string output_file = args.outputFile;
|
|
if (output_file.empty())
|
|
output_file = webrtc::test::OutputPath() + "RtpPlay_decoded.yuv";
|
|
|
|
webrtc::SimulatedClock clock(0);
|
|
webrtc::rtpplayer::VcmPayloadSinkFactory factory(output_file, &clock,
|
|
kConfigProtectionEnabled, kConfigProtectionMethod, kConfigRttMs,
|
|
kConfigRenderDelayMs, kConfigMinPlayoutDelayMs);
|
|
rtc::scoped_ptr<webrtc::rtpplayer::RtpPlayerInterface> rtp_player(
|
|
webrtc::rtpplayer::Create(args.inputFile, &factory, &clock, payload_types,
|
|
kConfigLossRate, kConfigRttMs,
|
|
kConfigReordering));
|
|
if (rtp_player.get() == NULL) {
|
|
return -1;
|
|
}
|
|
|
|
int ret = 0;
|
|
while ((ret = rtp_player->NextPacket(clock.TimeInMilliseconds())) == 0) {
|
|
ret = factory.DecodeAndProcessAll(true);
|
|
if (ret < 0 || (kConfigMaxRuntimeMs > -1 &&
|
|
clock.TimeInMilliseconds() >= kConfigMaxRuntimeMs)) {
|
|
break;
|
|
}
|
|
clock.AdvanceTimeMilliseconds(1);
|
|
}
|
|
|
|
rtp_player->Print();
|
|
|
|
switch (ret) {
|
|
case 1:
|
|
printf("Success\n");
|
|
return 0;
|
|
case -1:
|
|
printf("Failed\n");
|
|
return -1;
|
|
case 0:
|
|
printf("Timeout\n");
|
|
return -1;
|
|
}
|
|
|
|
webrtc::Trace::ReturnTrace();
|
|
return 0;
|
|
}
|