Reland of https://codereview.webrtc.org/2072753002/ which broke chromium due to how their build was setup. This issue should now be resolved. Changed WebRtcVoiceEngine to present receive codecs from the formats provided by its decoder factory. Added supported formats to BuiltinAudioDecoderFactory. Added helper functions for creating some simple decoder factories for mocking. Created a PayloadTypeMapper for assigning payload types to formats. I think we'll eventually want to use this further up, or possibly in both the audio and video sides. It would be best if the engines didn't have to talk payload types at all, but it might be more difficult to get around when payload types depend on each-other, like the RTX codecs for video. BUG=webrtc:5805 TBR=ivoc@webrtc.org Review-Url: https://codereview.webrtc.org/2250683002 Cr-Commit-Position: refs/heads/master@{#13793}
45 lines
1.6 KiB
C++
45 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) 2016 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 "testing/gtest/include/gtest/gtest.h"
|
|
|
|
#include "webrtc/media/engine/nullwebrtcvideoengine.h"
|
|
#include "webrtc/media/engine/webrtcvoiceengine.h"
|
|
#include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h"
|
|
|
|
namespace cricket {
|
|
|
|
class WebRtcMediaEngineNullVideo
|
|
: public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> {
|
|
public:
|
|
WebRtcMediaEngineNullVideo(
|
|
webrtc::AudioDeviceModule* adm,
|
|
const rtc::scoped_refptr<webrtc::AudioDecoderFactory>&
|
|
audio_decoder_factory,
|
|
WebRtcVideoEncoderFactory* video_encoder_factory,
|
|
WebRtcVideoDecoderFactory* video_decoder_factory)
|
|
: CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>(
|
|
adm, audio_decoder_factory) {
|
|
video_.SetExternalDecoderFactory(video_decoder_factory);
|
|
video_.SetExternalEncoderFactory(video_encoder_factory);
|
|
}
|
|
};
|
|
|
|
// Simple test to check if NullWebRtcVideoEngine implements the methods
|
|
// required by CompositeMediaEngine.
|
|
TEST(NullWebRtcVideoEngineTest, CheckInterface) {
|
|
WebRtcMediaEngineNullVideo engine(
|
|
nullptr, webrtc::MockAudioDecoderFactory::CreateUnusedFactory(), nullptr,
|
|
nullptr);
|
|
EXPECT_TRUE(engine.Init());
|
|
}
|
|
|
|
} // namespace cricket
|