Step 1: Add RemoveTrackNew which returns an RTCError
Bug: webrtc:9534 Change-Id: I400bdcd0eb2e993b3f2252a2c7606cd105854e6b Reviewed-on: https://webrtc-review.googlesource.com/89480 Commit-Queue: Steve Anton <steveanton@webrtc.org> Reviewed-by: Henrik Boström <hbos@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24070}
This commit is contained in:
@ -46,6 +46,16 @@ PeerConnectionInterface::AddTrack(
|
|||||||
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
|
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PeerConnectionInterface::RemoveTrack(RtpSenderInterface* sender) {
|
||||||
|
return RemoveTrackNew(sender).ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
RTCError PeerConnectionInterface::RemoveTrackNew(
|
||||||
|
rtc::scoped_refptr<RtpSenderInterface> sender) {
|
||||||
|
return RTCError(RemoveTrack(sender) ? RTCErrorType::NONE
|
||||||
|
: RTCErrorType::INTERNAL_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
RTCErrorOr<rtc::scoped_refptr<RtpTransceiverInterface>>
|
RTCErrorOr<rtc::scoped_refptr<RtpTransceiverInterface>>
|
||||||
PeerConnectionInterface::AddTransceiver(
|
PeerConnectionInterface::AddTransceiver(
|
||||||
rtc::scoped_refptr<MediaStreamTrackInterface> track) {
|
rtc::scoped_refptr<MediaStreamTrackInterface> track) {
|
||||||
|
@ -664,7 +664,21 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
|
|||||||
|
|
||||||
// Remove an RtpSender from this PeerConnection.
|
// Remove an RtpSender from this PeerConnection.
|
||||||
// Returns true on success.
|
// Returns true on success.
|
||||||
virtual bool RemoveTrack(RtpSenderInterface* sender) = 0;
|
// TODO(steveanton): Replace with signature that returns RTCError.
|
||||||
|
virtual bool RemoveTrack(RtpSenderInterface* sender);
|
||||||
|
|
||||||
|
// Plan B semantics: Removes the RtpSender from this PeerConnection.
|
||||||
|
// Unified Plan semantics: Stop sending on the RtpSender and mark the
|
||||||
|
// corresponding RtpTransceiver direction as no longer sending.
|
||||||
|
//
|
||||||
|
// Errors:
|
||||||
|
// - INVALID_PARAMETER: |sender| is null or (Plan B only) the sender is not
|
||||||
|
// associated with this PeerConnection.
|
||||||
|
// - INVALID_STATE: PeerConnection is closed.
|
||||||
|
// TODO(bugs.webrtc.org/9534): Rename to RemoveTrack once the other signature
|
||||||
|
// is removed.
|
||||||
|
virtual RTCError RemoveTrackNew(
|
||||||
|
rtc::scoped_refptr<RtpSenderInterface> sender);
|
||||||
|
|
||||||
// AddTransceiver creates a new RtpTransceiver and adds it to the set of
|
// AddTransceiver creates a new RtpTransceiver and adds it to the set of
|
||||||
// transceivers. Adding a transceiver will cause future calls to CreateOffer
|
// transceivers. Adding a transceiver will cause future calls to CreateOffer
|
||||||
|
@ -1294,10 +1294,10 @@ PeerConnection::FindFirstTransceiverForAddedTrack(
|
|||||||
|
|
||||||
bool PeerConnection::RemoveTrack(RtpSenderInterface* sender) {
|
bool PeerConnection::RemoveTrack(RtpSenderInterface* sender) {
|
||||||
TRACE_EVENT0("webrtc", "PeerConnection::RemoveTrack");
|
TRACE_EVENT0("webrtc", "PeerConnection::RemoveTrack");
|
||||||
return RemoveTrackInternal(sender).ok();
|
return RemoveTrackNew(sender).ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
RTCError PeerConnection::RemoveTrackInternal(
|
RTCError PeerConnection::RemoveTrackNew(
|
||||||
rtc::scoped_refptr<RtpSenderInterface> sender) {
|
rtc::scoped_refptr<RtpSenderInterface> sender) {
|
||||||
if (!sender) {
|
if (!sender) {
|
||||||
LOG_AND_RETURN_ERROR(RTCErrorType::INVALID_PARAMETER, "Sender is null.");
|
LOG_AND_RETURN_ERROR(RTCErrorType::INVALID_PARAMETER, "Sender is null.");
|
||||||
|
@ -88,6 +88,8 @@ class PeerConnection : public PeerConnectionInternal,
|
|||||||
rtc::scoped_refptr<MediaStreamTrackInterface> track,
|
rtc::scoped_refptr<MediaStreamTrackInterface> track,
|
||||||
const std::vector<std::string>& stream_ids) override;
|
const std::vector<std::string>& stream_ids) override;
|
||||||
bool RemoveTrack(RtpSenderInterface* sender) override;
|
bool RemoveTrack(RtpSenderInterface* sender) override;
|
||||||
|
RTCError RemoveTrackNew(
|
||||||
|
rtc::scoped_refptr<RtpSenderInterface> sender) override;
|
||||||
|
|
||||||
RTCErrorOr<rtc::scoped_refptr<RtpTransceiverInterface>> AddTransceiver(
|
RTCErrorOr<rtc::scoped_refptr<RtpTransceiverInterface>> AddTransceiver(
|
||||||
rtc::scoped_refptr<MediaStreamTrackInterface> track) override;
|
rtc::scoped_refptr<MediaStreamTrackInterface> track) override;
|
||||||
@ -345,9 +347,6 @@ class PeerConnection : public PeerConnectionInternal,
|
|||||||
FindFirstTransceiverForAddedTrack(
|
FindFirstTransceiverForAddedTrack(
|
||||||
rtc::scoped_refptr<MediaStreamTrackInterface> track);
|
rtc::scoped_refptr<MediaStreamTrackInterface> track);
|
||||||
|
|
||||||
// RemoveTrack that returns an RTCError.
|
|
||||||
RTCError RemoveTrackInternal(rtc::scoped_refptr<RtpSenderInterface> sender);
|
|
||||||
|
|
||||||
rtc::scoped_refptr<RtpTransceiverProxyWithInternal<RtpTransceiver>>
|
rtc::scoped_refptr<RtpTransceiverProxyWithInternal<RtpTransceiver>>
|
||||||
FindTransceiverBySender(rtc::scoped_refptr<RtpSenderInterface> sender);
|
FindTransceiverBySender(rtc::scoped_refptr<RtpSenderInterface> sender);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user