| Index: webrtc/test/call_test.h
|
| diff --git a/webrtc/test/call_test.h b/webrtc/test/call_test.h
|
| index 32820edea625d87128d2a8e66f7fda8e85ef68fc..46fbe7f1247261ba6c925174c196c6aa8b2f7269 100644
|
| --- a/webrtc/test/call_test.h
|
| +++ b/webrtc/test/call_test.h
|
| @@ -7,19 +7,26 @@
|
| * in the file PATENTS. All contributing project authors may
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
| -#ifndef WEBRTC_TEST_COMMON_CALL_TEST_H_
|
| -#define WEBRTC_TEST_COMMON_CALL_TEST_H_
|
| +#ifndef WEBRTC_TEST_CALL_TEST_H_
|
| +#define WEBRTC_TEST_CALL_TEST_H_
|
|
|
| #include <vector>
|
|
|
| #include "webrtc/call.h"
|
| +#include "webrtc/call/transport_adapter.h"
|
| #include "webrtc/system_wrappers/include/scoped_vector.h"
|
| +#include "webrtc/test/fake_audio_device.h"
|
| #include "webrtc/test/fake_decoder.h"
|
| #include "webrtc/test/fake_encoder.h"
|
| #include "webrtc/test/frame_generator_capturer.h"
|
| #include "webrtc/test/rtp_rtcp_observer.h"
|
|
|
| namespace webrtc {
|
| +
|
| +class VoEBase;
|
| +class VoECodec;
|
| +class VoENetwork;
|
| +
|
| namespace test {
|
|
|
| class BaseTest;
|
| @@ -27,24 +34,30 @@ class BaseTest;
|
| class CallTest : public ::testing::Test {
|
| public:
|
| CallTest();
|
| - ~CallTest();
|
| + virtual ~CallTest();
|
|
|
| static const size_t kNumSsrcs = 3;
|
|
|
| static const int kDefaultTimeoutMs;
|
| static const int kLongTimeoutMs;
|
| - static const uint8_t kSendPayloadType;
|
| + static const uint8_t kVideoSendPayloadType;
|
| static const uint8_t kSendRtxPayloadType;
|
| - static const uint8_t kFakeSendPayloadType;
|
| + static const uint8_t kFakeVideoSendPayloadType;
|
| static const uint8_t kRedPayloadType;
|
| static const uint8_t kRtxRedPayloadType;
|
| static const uint8_t kUlpfecPayloadType;
|
| + static const uint8_t kAudioSendPayloadType;
|
| static const uint32_t kSendRtxSsrcs[kNumSsrcs];
|
| - static const uint32_t kSendSsrcs[kNumSsrcs];
|
| - static const uint32_t kReceiverLocalSsrc;
|
| + static const uint32_t kVideoSendSsrcs[kNumSsrcs];
|
| + static const uint32_t kAudioSendSsrc;
|
| + static const uint32_t kReceiverLocalVideoSsrc;
|
| + static const uint32_t kReceiverLocalAudioSsrc;
|
| static const int kNackRtpHistoryMs;
|
|
|
| protected:
|
| + // RunBaseTest overwrites the audio_state and the voice_engine of the send and
|
| + // receive Call configs to simplify test code and avoid having old VoiceEngine
|
| + // APIs in the tests.
|
| void RunBaseTest(BaseTest* test, const FakeNetworkPipe::Config& config);
|
|
|
| void CreateCalls(const Call::Config& sender_config,
|
| @@ -53,12 +66,16 @@ class CallTest : public ::testing::Test {
|
| void CreateReceiverCall(const Call::Config& config);
|
| void DestroyCalls();
|
|
|
| - void CreateSendConfig(size_t num_streams, Transport* send_transport);
|
| + void CreateSendConfig(size_t num_video_streams,
|
| + size_t num_audio_streams,
|
| + Transport* send_transport);
|
| void CreateMatchingReceiveConfigs(Transport* rtcp_send_transport);
|
|
|
| void CreateFrameGeneratorCapturer();
|
| + void CreateFakeAudioDevices();
|
|
|
| - void CreateStreams();
|
| + void CreateVideoStreams();
|
| + void CreateAudioStreams();
|
| void Start();
|
| void Stop();
|
| void DestroyStreams();
|
| @@ -70,15 +87,54 @@ class CallTest : public ::testing::Test {
|
| VideoSendStream::Config video_send_config_;
|
| VideoEncoderConfig video_encoder_config_;
|
| VideoSendStream* video_send_stream_;
|
| + AudioSendStream::Config audio_send_config_;
|
| + AudioSendStream* audio_send_stream_;
|
|
|
| rtc::scoped_ptr<Call> receiver_call_;
|
| rtc::scoped_ptr<PacketTransport> receive_transport_;
|
| std::vector<VideoReceiveStream::Config> video_receive_configs_;
|
| std::vector<VideoReceiveStream*> video_receive_streams_;
|
| + std::vector<AudioReceiveStream::Config> audio_receive_configs_;
|
| + std::vector<AudioReceiveStream*> audio_receive_streams_;
|
|
|
| rtc::scoped_ptr<test::FrameGeneratorCapturer> frame_generator_capturer_;
|
| test::FakeEncoder fake_encoder_;
|
| ScopedVector<VideoDecoder> allocated_decoders_;
|
| + size_t num_video_streams_;
|
| + size_t num_audio_streams_;
|
| +
|
| + private:
|
| + // TODO(holmer): Remove once VoiceEngine is fully refactored to the new API.
|
| + // These methods are used to set up legacy voice engines and channels which is
|
| + // necessary while voice engine is being refactored to the new stream API.
|
| + struct VoiceEngineState {
|
| + VoiceEngineState()
|
| + : voice_engine(nullptr),
|
| + base(nullptr),
|
| + network(nullptr),
|
| + codec(nullptr),
|
| + channel_id(-1),
|
| + transport_adapter(nullptr) {}
|
| +
|
| + VoiceEngine* voice_engine;
|
| + VoEBase* base;
|
| + VoENetwork* network;
|
| + VoECodec* codec;
|
| + int channel_id;
|
| + rtc::scoped_ptr<internal::TransportAdapter> transport_adapter;
|
| + };
|
| +
|
| + void CreateVoiceEngines();
|
| + void SetupVoiceEngineTransports(PacketTransport* send_transport,
|
| + PacketTransport* recv_transport);
|
| + void DestroyVoiceEngines();
|
| +
|
| + VoiceEngineState voe_send_;
|
| + VoiceEngineState voe_recv_;
|
| +
|
| + // The audio devices must outlive the voice engines.
|
| + rtc::scoped_ptr<test::FakeAudioDevice> fake_send_audio_device_;
|
| + rtc::scoped_ptr<test::FakeAudioDevice> fake_recv_audio_device_;
|
| };
|
|
|
| class BaseTest : public RtpRtcpObserver {
|
| @@ -89,7 +145,8 @@ class BaseTest : public RtpRtcpObserver {
|
| virtual void PerformTest() = 0;
|
| virtual bool ShouldCreateReceivers() const = 0;
|
|
|
| - virtual size_t GetNumStreams() const;
|
| + virtual size_t GetNumVideoStreams() const;
|
| + virtual size_t GetNumAudioStreams() const;
|
|
|
| virtual Call::Config GetSenderCallConfig();
|
| virtual Call::Config GetReceiverCallConfig();
|
| @@ -105,6 +162,13 @@ class BaseTest : public RtpRtcpObserver {
|
| VideoSendStream* send_stream,
|
| const std::vector<VideoReceiveStream*>& receive_streams);
|
|
|
| + virtual void ModifyAudioConfigs(
|
| + AudioSendStream::Config* send_config,
|
| + std::vector<AudioReceiveStream::Config>* receive_configs);
|
| + virtual void OnAudioStreamsCreated(
|
| + AudioSendStream* send_stream,
|
| + const std::vector<AudioReceiveStream*>& receive_streams);
|
| +
|
| virtual void OnFrameGeneratorCapturerCreated(
|
| FrameGeneratorCapturer* frame_generator_capturer);
|
| };
|
| @@ -126,4 +190,4 @@ class EndToEndTest : public BaseTest {
|
| } // namespace test
|
| } // namespace webrtc
|
|
|
| -#endif // WEBRTC_TEST_COMMON_CALL_TEST_H_
|
| +#endif // WEBRTC_TEST_CALL_TEST_H_
|
|
|