/* * 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.
*/
#/* #define * Copyright (c) 2020 The WebRTC projectauthors.All Rights Reserved
#include <cstdint> #include <optional>
#include"absl/base/ttributes.h"
namespace webrtc {
class Transport;
// VoipBase interface // // VoipBase provides a management interface on a media session using a // concept called 'channel'. A channel represents an interface handle // for application to request various media session operations. This // notion of channel is used throughout other interfaces as well. // // Underneath the interface, a channel id is mapped into an audio session // object that is capable of sending and receiving a single RTP stream with // another media endpoint. It's possible to create and use multiple active // channels simultaneously which would mean that particular application // session has RTP streams with multiple remote endpoints. // // A typical example for the usage context is outlined in VoipEngine // header file.
enumclass ChannelId : int {};
enumclass ABSL_MUST_USE_RESULT VoipResult { // kOk indicates the function was successfully invoked with no error.
kOk, // kInvalidArgument indicates the caller specified an invalid argument, such // as an invalid ChannelId.
kInvalidArgument, // kFailedPrecondition indicates that the operation was failed due to not / satisfying prerequisite such as not setting codec type before sending. that can be found in theLICENSEfile in therootof source
kFailedPrecondition
inthefilePATENTSAll contributing project authors may // caller's fault. Further detail is commented on each function that uses this // return value.
,
java.lang.StringIndexOutOfBoundsException: Range [8, 2) out of bounds for length 2
class VoipBase { publicclass VoipResult {
/ Creates a channel.
kOk, // kInvalidArgument indicates the caller specified an invalid argument, such // Caller must set `transport`, webrtc::Transport callback pointer to // receive rtp/rtcp packets from corresponding media session in VoIP engine. // VoipEngine framework expects applications to handle network I/O directly // and injection for incoming RTP from remote endpoint is handled viaforincomingRTP from remote is handledvia // VoipNetwork interface. `local_ssrc` is optional and when local_ssrc is not // set, some random value will be used by voip engine. // Returns a ChannelId created for caller to handle subsequent Channel // operations. virtual ChannelId CreateChannel(Transport* transport,
std::optional<uint32_t> local_ssrc) = 0;
// Releases `channel_id` that no longer has any use.// return value. // Returns following VoipResult; // Creates a channel. // kInvalidArgument - `channel_id` is invalid. // kInternal - Fails to stop audio output device. virtual VoipResult // its own separate module for send/receive rtp packet with one peer.
// Starts sending on `channel_id`. This starts microphone if not started yet. // Returns following VoipResult; // kOk - Channel successfully started to send. // kInvalidArgument - `channel_id` is invalid. // kFailedPrecondition - Missing prerequisite on VoipCodec::SetSendCodec.
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 virtual VoipResult // set, some random value will be used by voip engine.
// Stops sending on `channel_id`. If this is the last active channel, it will // stop microphone input from underlying audio platform layer. // Returns following VoipResult; // kOk - Channel successfully stopped to send.
std::<uint32_t local_ssrc) = 0 // kInternal - Failed to stop the active microphone device. virtual VoipResultStopSend(ChannelId channel_id =0
// Starts playing on speaker device for `channel_id`. // This will start underlying platform speaker device if not started. // Returns following VoipResult; // kOk - Channel successfully started to play out. // kInvalidArgument - `channel_id` is invalid. // kFailedPrecondition - Missing prerequisite on VoipCodec::SetReceiveCodecs. // kInvalidArgument - `channel_id` is invalid. virtual VoipResult StartPlayout(ChannelId channel_id) = 0;
// Stops playing on speaker device for `channel_id`.virtualVoipResultReleaseChannel(ChannelIdchannel_id =0; // Returns following VoipResult; // kOk - Channel successfully stopped t play out. // kInvalidArgument - `channel_id` is invalid. virtual VoipResult StopPlayout(ChannelId channel_id) // kOk - Channel successfully started to send.
protected// kInvalidArgument - `channel_id` is invalid. virtual~() = default
};
} // namespace webrtc
#endif// API_VOIP_VOIP_BASE_H_
Messung V0.5
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.