diff --git a/api/rtp_transceiver_interface.h b/api/rtp_transceiver_interface.h index 2a60f98be6..2af42aaa34 100644 --- a/api/rtp_transceiver_interface.h +++ b/api/rtp_transceiver_interface.h @@ -31,7 +31,8 @@ enum class RtpTransceiverDirection { kSendRecv, kSendOnly, kRecvOnly, - kInactive + kInactive, + kStopped, }; // Structure for initializing an RtpTransceiver in a call to diff --git a/pc/media_session.cc b/pc/media_session.cc index 110258d2b3..9190f6eaf3 100644 --- a/pc/media_session.cc +++ b/pc/media_session.cc @@ -1749,9 +1749,10 @@ const AudioCodecs& MediaSessionDescriptionFactory::GetAudioCodecsForOffer( return audio_send_codecs_; case RtpTransceiverDirection::kRecvOnly: return audio_recv_codecs_; + case RtpTransceiverDirection::kStopped: + RTC_NOTREACHED(); + return audio_sendrecv_codecs_; } - RTC_NOTREACHED(); - return audio_sendrecv_codecs_; } const AudioCodecs& MediaSessionDescriptionFactory::GetAudioCodecsForAnswer( @@ -1768,9 +1769,10 @@ const AudioCodecs& MediaSessionDescriptionFactory::GetAudioCodecsForAnswer( return audio_send_codecs_; case RtpTransceiverDirection::kRecvOnly: return audio_recv_codecs_; + case RtpTransceiverDirection::kStopped: + RTC_NOTREACHED(); + return audio_sendrecv_codecs_; } - RTC_NOTREACHED(); - return audio_sendrecv_codecs_; } void MergeCodecsFromDescription( diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc index 41e2767601..548b778681 100644 --- a/pc/media_session_unittest.cc +++ b/pc/media_session_unittest.cc @@ -4785,6 +4785,8 @@ void TestAudioCodecsAnswer(RtpTransceiverDirection offer_direction, kResultSendrecv_SendrecvCodecs); } break; + default: + RTC_NOTREACHED(); } auto format_codecs = [](const std::vector& codecs) { diff --git a/pc/rtp_media_utils.cc b/pc/rtp_media_utils.cc index 6e8be589c7..8fbfca1f98 100644 --- a/pc/rtp_media_utils.cc +++ b/pc/rtp_media_utils.cc @@ -47,9 +47,10 @@ RtpTransceiverDirection RtpTransceiverDirectionReversed( return RtpTransceiverDirection::kRecvOnly; case RtpTransceiverDirection::kRecvOnly: return RtpTransceiverDirection::kSendOnly; + default: + RTC_NOTREACHED(); + return direction; } - RTC_NOTREACHED(); - return direction; } RtpTransceiverDirection RtpTransceiverDirectionWithSendSet( @@ -76,6 +77,8 @@ const char* RtpTransceiverDirectionToString(RtpTransceiverDirection direction) { return "kRecvOnly"; case RtpTransceiverDirection::kInactive: return "kInactive"; + case RtpTransceiverDirection::kStopped: + return "kStopped"; } RTC_NOTREACHED(); return ""; diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc index 29a9030483..7846e5e389 100644 --- a/pc/webrtc_sdp.cc +++ b/pc/webrtc_sdp.cc @@ -1596,7 +1596,12 @@ void BuildRtpContentAttributes(const MediaContentDescription* media_desc, InitAttrLine(kAttributeRecvOnly, &os); break; case RtpTransceiverDirection::kSendRecv: + InitAttrLine(kAttributeSendRecv, &os); + break; + case RtpTransceiverDirection::kStopped: default: + // kStopped shouldn't be used in signalling. + RTC_NOTREACHED(); InitAttrLine(kAttributeSendRecv, &os); break; } diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc index 476955d26b..f79fbb8786 100644 --- a/pc/webrtc_sdp_unittest.cc +++ b/pc/webrtc_sdp_unittest.cc @@ -979,7 +979,11 @@ static void ReplaceDirection(RtpTransceiverDirection direction, new_direction = "a=recvonly"; break; case RtpTransceiverDirection::kSendRecv: + new_direction = "a=sendrecv"; + break; + case RtpTransceiverDirection::kStopped: default: + RTC_NOTREACHED(); new_direction = "a=sendrecv"; break; } diff --git a/sdk/objc/api/peerconnection/RTCRtpTransceiver.h b/sdk/objc/api/peerconnection/RTCRtpTransceiver.h index 8ef3fc1d42..968dba395a 100644 --- a/sdk/objc/api/peerconnection/RTCRtpTransceiver.h +++ b/sdk/objc/api/peerconnection/RTCRtpTransceiver.h @@ -22,6 +22,7 @@ typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { RTCRtpTransceiverDirectionSendOnly, RTCRtpTransceiverDirectionRecvOnly, RTCRtpTransceiverDirectionInactive, + RTCRtpTransceiverDirectionStopped }; /** Structure for initializing an RTCRtpTransceiver in a call to diff --git a/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm b/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm index fe1ebb5c5d..74ea456fea 100644 --- a/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm +++ b/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm @@ -149,6 +149,8 @@ return webrtc::RtpTransceiverDirection::kRecvOnly; case RTCRtpTransceiverDirectionInactive: return webrtc::RtpTransceiverDirection::kInactive; + case RTCRtpTransceiverDirectionStopped: + return webrtc::RtpTransceiverDirection::kStopped; } } @@ -163,6 +165,8 @@ return RTCRtpTransceiverDirectionRecvOnly; case webrtc::RtpTransceiverDirection::kInactive: return RTCRtpTransceiverDirectionInactive; + case webrtc::RtpTransceiverDirection::kStopped: + return RTCRtpTransceiverDirectionStopped; } }