Remove cricket::MediaType as a separate enum definition
Using constants and alias names to ensure that existing code compiles.
The part that is not backwards compatible is switch statements that
don't have default; they will react to the new value ANY.
Bug: webrtc:42222911
Change-Id: I83320381d8f1b0acbf1adba3ac5c04bcd17e3d6f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/381660
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44164}
diff --git a/api/media_types.cc b/api/media_types.cc
index 850c8e2..9cd4532 100644
--- a/api/media_types.cc
+++ b/api/media_types.cc
@@ -14,7 +14,7 @@
#include "rtc_base/checks.h"
-namespace cricket {
+namespace webrtc {
const char kMediaTypeVideo[] = "video";
const char kMediaTypeAudio[] = "audio";
@@ -22,13 +22,13 @@
std::string MediaTypeToString(MediaType type) {
switch (type) {
- case MEDIA_TYPE_AUDIO:
+ case MediaType::AUDIO:
return kMediaTypeAudio;
- case MEDIA_TYPE_VIDEO:
+ case MediaType::VIDEO:
return kMediaTypeVideo;
- case MEDIA_TYPE_DATA:
+ case MediaType::DATA:
return kMediaTypeData;
- case MEDIA_TYPE_UNSUPPORTED:
+ default:
// Unsupported media stores the m=<mediatype> differently.
RTC_DCHECK_NOTREACHED();
return "";
@@ -36,4 +36,4 @@
RTC_CHECK_NOTREACHED();
}
-} // namespace cricket
+} // namespace webrtc
diff --git a/api/media_types.h b/api/media_types.h
index 430bab5..339c263 100644
--- a/api/media_types.h
+++ b/api/media_types.h
@@ -17,7 +17,30 @@
namespace webrtc {
-enum class MediaType { AUDIO, VIDEO, DATA, UNSUPPORTED, ANY };
+enum class MediaType {
+ AUDIO,
+ VIDEO,
+ DATA,
+ UNSUPPORTED,
+ ANY,
+ // Backwards compatibility values for cricket::MediaType users
+ // TODO: https://issues.webrtc.org/42222911 - deprecate and remove
+ MEDIA_TYPE_AUDIO = AUDIO,
+ MEDIA_TYPE_VIDEO = VIDEO,
+ MEDIA_TYPE_DATA = DATA,
+ MEDIA_TYPE_UNSUPPORTED = UNSUPPORTED,
+};
+
+RTC_EXPORT std::string MediaTypeToString(MediaType type);
+
+template <typename Sink>
+void AbslStringify(Sink& sink, MediaType type) {
+ sink.Append(MediaTypeToString(type));
+}
+
+extern const char kMediaTypeAudio[];
+extern const char kMediaTypeVideo[];
+extern const char kMediaTypeData[];
} // namespace webrtc
@@ -27,18 +50,18 @@
namespace cricket {
-enum MediaType {
- MEDIA_TYPE_AUDIO = static_cast<int>(webrtc::MediaType::AUDIO),
- MEDIA_TYPE_VIDEO = static_cast<int>(webrtc::MediaType::VIDEO),
- MEDIA_TYPE_DATA = static_cast<int>(webrtc::MediaType::DATA),
- MEDIA_TYPE_UNSUPPORTED = static_cast<int>(webrtc::MediaType::UNSUPPORTED),
-};
+using MediaType = webrtc::MediaType;
+using webrtc::kMediaTypeAudio;
+using webrtc::kMediaTypeData;
+using webrtc::kMediaTypeVideo;
+using webrtc::MediaTypeToString;
-extern const char kMediaTypeAudio[];
-extern const char kMediaTypeVideo[];
-extern const char kMediaTypeData[];
-
-RTC_EXPORT std::string MediaTypeToString(MediaType type);
+// Backwards compatibility values for cricket::MediaType users
+// TODO: https://issues.webrtc.org/42222911 - deprecate and remove
+constexpr MediaType MEDIA_TYPE_AUDIO = webrtc::MediaType::AUDIO;
+constexpr MediaType MEDIA_TYPE_VIDEO = webrtc::MediaType::VIDEO;
+constexpr MediaType MEDIA_TYPE_DATA = webrtc::MediaType::DATA;
+constexpr MediaType MEDIA_TYPE_UNSUPPORTED = webrtc::MediaType::UNSUPPORTED;
} // namespace cricket
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 349e919..2d7a0b9 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -751,7 +751,7 @@
char buf[1024];
SimpleStringBuilder mime_type(buf);
auto it = payload_type_map_.find(header.payloadType);
- mime_type << MediaTypeToString(cricket::MEDIA_TYPE_AUDIO) << "/"
+ mime_type << cricket::MediaTypeToString(cricket::MEDIA_TYPE_AUDIO) << "/"
<< (it != payload_type_map_.end() ? it->second.name
: "x-unknown");
frame_transformer_delegate_->Transform(payload_data, header, remote_ssrc_,
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 75f512f..01cf8a6 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -385,7 +385,7 @@
// is transformed, the delegate will call SendRtpAudio to send it.
char buf[1024];
SimpleStringBuilder mime_type(buf);
- mime_type << MediaTypeToString(cricket::MEDIA_TYPE_AUDIO) << "/"
+ mime_type << cricket::MediaTypeToString(cricket::MEDIA_TYPE_AUDIO) << "/"
<< encoder_format_.name;
frame_transformer_delegate_->Transform(
frameType, payloadType, rtp_timestamp + rtp_rtcp_->StartTimestamp(),
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index 849323c..2cb54d2 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -166,9 +166,7 @@
GetDefaultEnabledRtpHeaderExtensions(media_engine()->video());
return ToRtpCapabilities(cricket_codecs, extensions);
}
- case cricket::MEDIA_TYPE_DATA:
- return RtpCapabilities();
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
return RtpCapabilities();
}
RTC_DLOG(LS_ERROR) << "Got unexpected MediaType " << kind;
@@ -193,9 +191,7 @@
GetDefaultEnabledRtpHeaderExtensions(media_engine()->video());
return ToRtpCapabilities(cricket_codecs, extensions);
}
- case cricket::MEDIA_TYPE_DATA:
- return RtpCapabilities();
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
return RtpCapabilities();
}
RTC_DLOG(LS_ERROR) << "Got unexpected MediaType " << kind;
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 2aa66e7..61268c4 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -3222,8 +3222,7 @@
return "A";
case cricket::MEDIA_TYPE_VIDEO:
return "V";
- case cricket::MEDIA_TYPE_DATA:
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
RTC_DCHECK_NOTREACHED();
return "?";
}
@@ -3235,8 +3234,7 @@
return "audio";
case cricket::MEDIA_TYPE_VIDEO:
return "video";
- case cricket::MEDIA_TYPE_DATA:
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
RTC_DCHECK_NOTREACHED();
return "";
}
@@ -3285,7 +3283,7 @@
return;
}
case cricket::MEDIA_TYPE_DATA:
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
RTC_DCHECK_NOTREACHED();
}
}
diff --git a/pc/sdp_offer_answer.cc b/pc/sdp_offer_answer.cc
index 13a5d39..8986e921 100644
--- a/pc/sdp_offer_answer.cc
+++ b/pc/sdp_offer_answer.cc
@@ -731,6 +731,9 @@
return cricket::CN_DATA;
case cricket::MEDIA_TYPE_UNSUPPORTED:
return "not supported";
+ default:
+ // Fall through to RTC_CHECK_NOTREACHED
+ break;
}
RTC_DCHECK_NOTREACHED();
return "";
diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index c4a24c3..ba47e75 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -43,7 +43,6 @@
#include "media/base/rtp_utils.h"
#include "media/base/stream_params.h"
#include "media/sctp/sctp_transport_internal.h"
-#include "p2p/base/candidate_pair_interface.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/p2p_constants.h"
#include "p2p/base/port.h"
@@ -236,9 +235,9 @@
static const char kConnectionNettype[] = "IN";
static const char kConnectionIpv4Addrtype[] = "IP4";
static const char kConnectionIpv6Addrtype[] = "IP6";
-static const char kMediaTypeVideo[] = "video";
-static const char kMediaTypeAudio[] = "audio";
-static const char kMediaTypeData[] = "application";
+static const char kSdpMediaTypeVideo[] = "video";
+static const char kSdpMediaTypeAudio[] = "audio";
+static const char kSdpMediaTypeData[] = "application";
static const char kMediaPortRejected[] = "0";
// draft-ietf-mmusic-trickle-ice-01
// When no candidates have been gathered, set the connection
@@ -1414,14 +1413,14 @@
std::string fmt;
if (media_type == cricket::MEDIA_TYPE_AUDIO ||
media_type == cricket::MEDIA_TYPE_VIDEO) {
- type = media_type == cricket::MEDIA_TYPE_AUDIO ? kMediaTypeAudio
- : kMediaTypeVideo;
+ type = media_type == cricket::MEDIA_TYPE_AUDIO ? kSdpMediaTypeAudio
+ : kSdpMediaTypeVideo;
for (const cricket::Codec& codec : media_desc->codecs()) {
fmt.append(" ");
fmt.append(rtc::ToString(codec.id));
}
} else if (media_type == cricket::MEDIA_TYPE_DATA) {
- type = kMediaTypeData;
+ type = kSdpMediaTypeData;
const cricket::SctpDataContentDescription* sctp_data_desc =
media_desc->as_sctp();
if (sctp_data_desc) {
@@ -2717,21 +2716,23 @@
bool bundle_only = false;
int section_msid_signaling = cricket::kMsidSignalingNotUsed;
absl::string_view media_type = fields[0];
- if ((media_type == kMediaTypeVideo || media_type == kMediaTypeAudio) &&
+ if ((media_type == kSdpMediaTypeVideo ||
+ media_type == kSdpMediaTypeAudio) &&
!cricket::IsRtpProtocol(protocol)) {
return ParseFailed(*mline, "Unsupported protocol for media type", error);
}
- if (media_type == kMediaTypeVideo) {
+ if (media_type == kSdpMediaTypeVideo) {
content = ParseContentDescription(
message, cricket::MEDIA_TYPE_VIDEO, mline_index, protocol,
payload_types, pos, &content_name, &bundle_only,
§ion_msid_signaling, &transport, candidates, error);
- } else if (media_type == kMediaTypeAudio) {
+ } else if (media_type == kSdpMediaTypeAudio) {
content = ParseContentDescription(
message, cricket::MEDIA_TYPE_AUDIO, mline_index, protocol,
payload_types, pos, &content_name, &bundle_only,
§ion_msid_signaling, &transport, candidates, error);
- } else if (media_type == kMediaTypeData && cricket::IsDtlsSctp(protocol)) {
+ } else if (media_type == kSdpMediaTypeData &&
+ cricket::IsDtlsSctp(protocol)) {
// The draft-03 format is:
// m=application <port> DTLS/SCTP <sctp-port>...
// use_sctpmap should be false.
diff --git a/sdk/android/src/jni/pc/media_stream_track.cc b/sdk/android/src/jni/pc/media_stream_track.cc
index 225b608..297bbf6 100644
--- a/sdk/android/src/jni/pc/media_stream_track.cc
+++ b/sdk/android/src/jni/pc/media_stream_track.cc
@@ -21,7 +21,7 @@
ScopedJavaLocalRef<jobject> NativeToJavaMediaType(
JNIEnv* jni,
cricket::MediaType media_type) {
- return Java_MediaType_fromNativeIndex(jni, media_type);
+ return Java_MediaType_fromNativeIndex(jni, static_cast<int>(media_type));
}
cricket::MediaType JavaToNativeMediaType(JNIEnv* jni,
diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm b/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm
index f6f72e8..e972694 100644
--- a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm
+++ b/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm
@@ -47,10 +47,7 @@
case cricket::MEDIA_TYPE_VIDEO:
_kind = kRTCMediaStreamTrackKindVideo;
break;
- case cricket::MEDIA_TYPE_DATA:
- RTC_DCHECK_NOTREACHED();
- break;
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
RTC_DCHECK_NOTREACHED();
break;
}
diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm b/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
index fa69c36..579607b 100644
--- a/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
+++ b/sdk/objc/api/peerconnection/RTCRtpCodecParameters.mm
@@ -59,10 +59,7 @@
case cricket::MEDIA_TYPE_VIDEO:
_kind = kRTCMediaStreamTrackKindVideo;
break;
- case cricket::MEDIA_TYPE_DATA:
- RTC_DCHECK_NOTREACHED();
- break;
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ default:
RTC_DCHECK_NOTREACHED();
break;
}
diff --git a/sdk/objc/api/peerconnection/RTCRtpReceiver.h b/sdk/objc/api/peerconnection/RTCRtpReceiver.h
index d0c79fe..2877a4c 100644
--- a/sdk/objc/api/peerconnection/RTCRtpReceiver.h
+++ b/sdk/objc/api/peerconnection/RTCRtpReceiver.h
@@ -22,6 +22,7 @@
RTCRtpMediaTypeVideo,
RTCRtpMediaTypeData,
RTCRtpMediaTypeUnsupported,
+ RTCRtpMediaTypeAny,
};
@class RTC_OBJC_TYPE(RTCRtpReceiver);
diff --git a/sdk/objc/api/peerconnection/RTCRtpReceiver.mm b/sdk/objc/api/peerconnection/RTCRtpReceiver.mm
index bb5b01d..3f2dd10 100644
--- a/sdk/objc/api/peerconnection/RTCRtpReceiver.mm
+++ b/sdk/objc/api/peerconnection/RTCRtpReceiver.mm
@@ -140,29 +140,33 @@
}
+ (RTCRtpMediaType)mediaTypeForNativeMediaType:
- (cricket::MediaType)nativeMediaType {
+ (webrtc::MediaType)nativeMediaType {
switch (nativeMediaType) {
- case cricket::MEDIA_TYPE_AUDIO:
+ case webrtc::MediaType::AUDIO:
return RTCRtpMediaTypeAudio;
- case cricket::MEDIA_TYPE_VIDEO:
+ case webrtc::MediaType::VIDEO:
return RTCRtpMediaTypeVideo;
- case cricket::MEDIA_TYPE_DATA:
+ case webrtc::MediaType::DATA:
return RTCRtpMediaTypeData;
- case cricket::MEDIA_TYPE_UNSUPPORTED:
+ case webrtc::MediaType::UNSUPPORTED:
return RTCRtpMediaTypeUnsupported;
+ case webrtc::MediaType::ANY:
+ return RTCRtpMediaTypeAny;
}
}
-+ (cricket::MediaType)nativeMediaTypeForMediaType:(RTCRtpMediaType)mediaType {
++ (webrtc::MediaType)nativeMediaTypeForMediaType:(RTCRtpMediaType)mediaType {
switch (mediaType) {
case RTCRtpMediaTypeAudio:
- return cricket::MEDIA_TYPE_AUDIO;
+ return webrtc::MediaType::AUDIO;
case RTCRtpMediaTypeVideo:
- return cricket::MEDIA_TYPE_VIDEO;
+ return webrtc::MediaType::VIDEO;
case RTCRtpMediaTypeData:
- return cricket::MEDIA_TYPE_DATA;
+ return webrtc::MediaType::DATA;
case RTCRtpMediaTypeUnsupported:
- return cricket::MEDIA_TYPE_UNSUPPORTED;
+ return webrtc::MediaType::UNSUPPORTED;
+ case RTCRtpMediaTypeAny:
+ return webrtc::MediaType::ANY;
}
}
@@ -176,6 +180,8 @@
return @"DATA";
case RTCRtpMediaTypeUnsupported:
return @"UNSUPPORTED";
+ case RTCRtpMediaTypeAny:
+ return @"ANY";
}
}