NetEq: Deprecate playout modes Fax, Off and Streaming
The playout modes other than Normal have not been reachable for a long time, other than through tests. It is time to deprecate them. The only meaningful use was that Fax mode was sometimes set from tests, in order to avoid time-stretching operations (accelerate and pre-emptive expand) from messing with the test results. With this CL, a new config is added instead, which lets the user specify exactly this: don't do time-stretching. As a result of Fax and Off modes being removed, the following code clean-up was done: - Fold DecisionLogicNormal into DecisionLogic. - Remove AudioRepetition and AlternativePlc operations, since they can no longer be reached. Bug: webrtc:9421 Change-Id: I651458e9c1931a99f3b07e242817d303bac119df Reviewed-on: https://webrtc-review.googlesource.com/84123 Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org> Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Minyue Li <minyue@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23704}
This commit is contained in:
committed by
Commit Bot
parent
c0260b4f2b
commit
80c4cca491
@ -25,6 +25,8 @@
|
||||
#include "common_types.h" // NOLINT(build/include)
|
||||
#include "modules/audio_coding/codecs/pcm16b/pcm16b.h"
|
||||
#include "modules/audio_coding/neteq/tools/audio_loop.h"
|
||||
#include "modules/audio_coding/neteq/tools/neteq_packet_source_input.h"
|
||||
#include "modules/audio_coding/neteq/tools/neteq_test.h"
|
||||
#include "modules/audio_coding/neteq/tools/rtp_file_source.h"
|
||||
#include "rtc_base/ignore_wundef.h"
|
||||
#include "rtc_base/messagedigest.h"
|
||||
@ -555,7 +557,7 @@ TEST_F(NetEqDecodingTest, MAYBE_TestOpusDtxBitExactness) {
|
||||
class NetEqDecodingTestFaxMode : public NetEqDecodingTest {
|
||||
protected:
|
||||
NetEqDecodingTestFaxMode() : NetEqDecodingTest() {
|
||||
config_.playout_mode = kPlayoutFax;
|
||||
config_.for_test_no_time_stretching = true;
|
||||
}
|
||||
void TestJitterBufferDelay(bool apply_packet_loss);
|
||||
};
|
||||
@ -1723,4 +1725,37 @@ TEST_F(NetEqDecodingTestFaxMode, TestJitterBufferDelayWithLoss) {
|
||||
TestJitterBufferDelay(true);
|
||||
}
|
||||
|
||||
namespace test {
|
||||
// TODO(henrik.lundin) NetEqRtpDumpInput requires protobuf support. It shouldn't
|
||||
// need it, but because it is bundled with NetEqEventLogInput, it is neded.
|
||||
// This should be refactored.
|
||||
#if WEBRTC_ENABLE_PROTOBUF
|
||||
TEST(NetEqNoTimeStretchingMode, RunTest) {
|
||||
NetEq::Config config;
|
||||
config.for_test_no_time_stretching = true;
|
||||
auto codecs = NetEqTest::StandardDecoderMap();
|
||||
NetEqTest::ExtDecoderMap ext_codecs;
|
||||
NetEqPacketSourceInput::RtpHeaderExtensionMap rtp_ext_map = {
|
||||
{1, kRtpExtensionAudioLevel},
|
||||
{3, kRtpExtensionAbsoluteSendTime},
|
||||
{5, kRtpExtensionTransportSequenceNumber},
|
||||
{7, kRtpExtensionVideoContentType},
|
||||
{8, kRtpExtensionVideoTiming}};
|
||||
std::unique_ptr<NetEqInput> input(new NetEqRtpDumpInput(
|
||||
webrtc::test::ResourcePath("audio_coding/neteq_universal_new", "rtp"),
|
||||
rtp_ext_map));
|
||||
std::unique_ptr<TimeLimitedNetEqInput> input_time_limit(
|
||||
new TimeLimitedNetEqInput(std::move(input), 20000));
|
||||
std::unique_ptr<AudioSink> output(new VoidAudioSink);
|
||||
NetEqTest::Callbacks callbacks;
|
||||
NetEqTest test(config, codecs, ext_codecs, std::move(input_time_limit),
|
||||
std::move(output), callbacks);
|
||||
test.Run();
|
||||
const auto stats = test.SimulationStats();
|
||||
EXPECT_EQ(0, stats.accelerate_rate);
|
||||
EXPECT_EQ(0, stats.preemptive_rate);
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user