代码拉取完成,页面将自动刷新
同步操作将从 egege/webrtc-src 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* Copyright (c) 2020 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.
*/
#ifndef API_VOIP_VOIP_ENGINE_H_
#define API_VOIP_VOIP_ENGINE_H_
namespace webrtc {
class VoipBase;
class VoipCodec;
class VoipNetwork;
class VoipDtmf;
class VoipStatistics;
class VoipVolumeControl;
// VoipEngine is the main interface serving as the entry point for all VoIP
// APIs. A single instance of VoipEngine should suffice the most of the need for
// typical VoIP applications as it handles multiple media sessions including a
// specialized session type like ad-hoc conference. Below example code
// describes the typical sequence of API usage. Each API header contains more
// description on what the methods are used for.
//
// // Caller is responsible of setting desired audio components.
// VoipEngineConfig config;
// config.encoder_factory = CreateBuiltinAudioEncoderFactory();
// config.decoder_factory = CreateBuiltinAudioDecoderFactory();
// config.task_queue_factory = CreateDefaultTaskQueueFactory();
// config.audio_device =
// AudioDeviceModule::Create(AudioDeviceModule::kPlatformDefaultAudio,
// config.task_queue_factory.get());
// config.audio_processing = AudioProcessingBuilder().Create();
//
// auto voip_engine = CreateVoipEngine(std::move(config));
//
// auto& voip_base = voip_engine->Base();
// auto& voip_codec = voip_engine->Codec();
// auto& voip_network = voip_engine->Network();
//
// ChannelId channel = voip_base.CreateChannel(&app_transport_);
//
// // After SDP offer/answer, set payload type and codecs that have been
// // decided through SDP negotiation.
// // VoipResult handling omitted here.
// voip_codec.SetSendCodec(channel, ...);
// voip_codec.SetReceiveCodecs(channel, ...);
//
// // Start sending and playing RTP on voip channel.
// // VoipResult handling omitted here.
// voip_base.StartSend(channel);
// voip_base.StartPlayout(channel);
//
// // Inject received RTP/RTCP through VoipNetwork interface.
// // VoipResult handling omitted here.
// voip_network.ReceivedRTPPacket(channel, ...);
// voip_network.ReceivedRTCPPacket(channel, ...);
//
// // Stop and release voip channel.
// // VoipResult handling omitted here.
// voip_base.StopSend(channel);
// voip_base.StopPlayout(channel);
// voip_base.ReleaseChannel(channel);
//
class VoipEngine {
public:
virtual ~VoipEngine() = default;
// VoipBase is the audio session management interface that
// creates/releases/starts/stops an one-to-one audio media session.
virtual VoipBase& Base() = 0;
// VoipNetwork provides injection APIs that would enable application
// to send and receive RTP/RTCP packets. There is no default network module
// that provides RTP transmission and reception.
virtual VoipNetwork& Network() = 0;
// VoipCodec provides codec configuration APIs for encoder and decoders.
virtual VoipCodec& Codec() = 0;
// VoipDtmf provides DTMF event APIs to register and send DTMF events.
virtual VoipDtmf& Dtmf() = 0;
// VoipStatistics provides performance metrics around audio decoding module
// and jitter buffer (NetEq).
virtual VoipStatistics& Statistics() = 0;
// VoipVolumeControl provides various input/output volume control.
virtual VoipVolumeControl& VolumeControl() = 0;
};
} // namespace webrtc
#endif // API_VOIP_VOIP_ENGINE_H_
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。