This is a slight refactoring while doing some other changes, so not strictly necessary, but the error param is always supplied in practice so it made sense to update the tests to reflect that, test that error values are reported in (at least) some cases and remove the additional code that checks for whether or not error information is requested. Bug: none Change-Id: Ia5739a18ea2beb6970eabf9d809c24dfa43466b1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244097 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35632}
78 lines
2.6 KiB
C++
78 lines
2.6 KiB
C++
/*
|
|
* Copyright 2018 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 PC_CHANNEL_INTERFACE_H_
|
|
#define PC_CHANNEL_INTERFACE_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "absl/strings/string_view.h"
|
|
#include "api/jsep.h"
|
|
#include "api/media_types.h"
|
|
#include "media/base/media_channel.h"
|
|
#include "pc/rtp_transport_internal.h"
|
|
|
|
namespace cricket {
|
|
|
|
class MediaContentDescription;
|
|
|
|
// ChannelInterface contains methods common to voice, video and data channels.
|
|
// As more methods are added to BaseChannel, they should be included in the
|
|
// interface as well.
|
|
class ChannelInterface {
|
|
public:
|
|
virtual cricket::MediaType media_type() const = 0;
|
|
|
|
virtual MediaChannel* media_channel() const = 0;
|
|
|
|
// Returns a string view for the transport name. Fetching the transport name
|
|
// must be done on the network thread only and note that the lifetime of
|
|
// the returned object should be assumed to only be the calling scope.
|
|
// TODO(deadbeef): This is redundant; remove this.
|
|
virtual absl::string_view transport_name() const = 0;
|
|
|
|
virtual const std::string& content_name() const = 0;
|
|
|
|
// Enables or disables this channel
|
|
virtual void Enable(bool enable) = 0;
|
|
|
|
// Used for latency measurements.
|
|
virtual void SetFirstPacketReceivedCallback(
|
|
std::function<void()> callback) = 0;
|
|
|
|
// Channel control
|
|
virtual bool SetLocalContent(const MediaContentDescription* content,
|
|
webrtc::SdpType type,
|
|
std::string& error_desc) = 0;
|
|
virtual bool SetRemoteContent(const MediaContentDescription* content,
|
|
webrtc::SdpType type,
|
|
std::string& error_desc) = 0;
|
|
virtual bool SetPayloadTypeDemuxingEnabled(bool enabled) = 0;
|
|
|
|
// Access to the local and remote streams that were set on the channel.
|
|
virtual const std::vector<StreamParams>& local_streams() const = 0;
|
|
virtual const std::vector<StreamParams>& remote_streams() const = 0;
|
|
|
|
// Set an RTP level transport.
|
|
// Some examples:
|
|
// * An RtpTransport without encryption.
|
|
// * An SrtpTransport for SDES.
|
|
// * A DtlsSrtpTransport for DTLS-SRTP.
|
|
virtual bool SetRtpTransport(webrtc::RtpTransportInternal* rtp_transport) = 0;
|
|
|
|
protected:
|
|
virtual ~ChannelInterface() = default;
|
|
};
|
|
|
|
} // namespace cricket
|
|
|
|
#endif // PC_CHANNEL_INTERFACE_H_
|