Add webrtc::AudioSendStream and methods on webrtc::Call to create and delete AudioSendStreams.
AudioSendStream will be replacing the send side of VoiceEngine channels and associated APIs. Hence, they will be used transform recorded audio into RTP/RTCP packets that can be transmitted to another party, according to given parameters. BUG=webrtc:4690 Review URL: https://codereview.webrtc.org/1397123003 Cr-Commit-Position: refs/heads/master@{#10307}
This commit is contained in:
104
webrtc/call/call_unittest.cc
Normal file
104
webrtc/call/call_unittest.cc
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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 <list>
|
||||
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
|
||||
#include "webrtc/call.h"
|
||||
|
||||
namespace {
|
||||
|
||||
struct CallHelper {
|
||||
CallHelper() {
|
||||
webrtc::Call::Config config;
|
||||
// TODO(solenberg): Fill in with VoiceEngine* etc.
|
||||
call_.reset(webrtc::Call::Create(config));
|
||||
}
|
||||
|
||||
webrtc::Call* operator->() { return call_.get(); }
|
||||
|
||||
private:
|
||||
rtc::scoped_ptr<webrtc::Call> call_;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
TEST(CallTest, ConstructDestruct) {
|
||||
CallHelper call;
|
||||
}
|
||||
|
||||
TEST(CallTest, CreateDestroy_AudioSendStream) {
|
||||
CallHelper call;
|
||||
AudioSendStream::Config config(nullptr);
|
||||
config.rtp.ssrc = 42;
|
||||
config.voe_channel_id = 123;
|
||||
AudioSendStream* stream = call->CreateAudioSendStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
call->DestroyAudioSendStream(stream);
|
||||
}
|
||||
|
||||
TEST(CallTest, CreateDestroy_AudioReceiveStream) {
|
||||
CallHelper call;
|
||||
AudioReceiveStream::Config config;
|
||||
config.rtp.remote_ssrc = 42;
|
||||
config.voe_channel_id = 123;
|
||||
AudioReceiveStream* stream = call->CreateAudioReceiveStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
call->DestroyAudioReceiveStream(stream);
|
||||
}
|
||||
|
||||
TEST(CallTest, CreateDestroy_AudioSendStreams) {
|
||||
CallHelper call;
|
||||
AudioSendStream::Config config(nullptr);
|
||||
config.voe_channel_id = 123;
|
||||
std::list<AudioSendStream*> streams;
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
for (uint32_t ssrc = 0; ssrc < 1234567; ssrc += 34567) {
|
||||
config.rtp.ssrc = ssrc;
|
||||
AudioSendStream* stream = call->CreateAudioSendStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
if (ssrc & 1) {
|
||||
streams.push_back(stream);
|
||||
} else {
|
||||
streams.push_front(stream);
|
||||
}
|
||||
}
|
||||
for (auto s : streams) {
|
||||
call->DestroyAudioSendStream(s);
|
||||
}
|
||||
streams.clear();
|
||||
}
|
||||
}
|
||||
|
||||
TEST(CallTest, CreateDestroy_AudioReceiveStreams) {
|
||||
CallHelper call;
|
||||
AudioReceiveStream::Config config;
|
||||
config.voe_channel_id = 123;
|
||||
std::list<AudioReceiveStream*> streams;
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
for (uint32_t ssrc = 0; ssrc < 1234567; ssrc += 34567) {
|
||||
config.rtp.remote_ssrc = ssrc;
|
||||
AudioReceiveStream* stream = call->CreateAudioReceiveStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
if (ssrc & 1) {
|
||||
streams.push_back(stream);
|
||||
} else {
|
||||
streams.push_front(stream);
|
||||
}
|
||||
}
|
||||
for (auto s : streams) {
|
||||
call->DestroyAudioReceiveStream(s);
|
||||
}
|
||||
streams.clear();
|
||||
}
|
||||
}
|
||||
} // namespace webrtc
|
||||
Reference in New Issue
Block a user