Define cricket::MediaType in terms of webrtc::MediaType

This is one step in getting rid of cricket::MediaType.

Bug: webrtc:12754
Fixes: webrtc:12764
Change-Id: Idee832572bdc4c0e3bfdec6fb31ec0ba9db3e995
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218346
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33994}
diff --git a/api/media_types.h b/api/media_types.h
index b2ff08c..cd8b27b 100644
--- a/api/media_types.h
+++ b/api/media_types.h
@@ -15,16 +15,23 @@
 
 #include "rtc_base/system/rtc_export.h"
 
+namespace webrtc {
+
+enum class MediaType { ANY, AUDIO, VIDEO, DATA, UNSUPPORTED };
+
+}  // namespace webrtc
+
 // The cricket and webrtc have separate definitions for what a media type is.
-// They're not compatible. Watch out for this.
+// They used to be incompatible, but now cricket is defined in terms of the
+// webrtc definition.
 
 namespace cricket {
 
 enum MediaType {
-  MEDIA_TYPE_AUDIO,
-  MEDIA_TYPE_VIDEO,
-  MEDIA_TYPE_DATA,
-  MEDIA_TYPE_UNSUPPORTED
+  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),
 };
 
 extern const char kMediaTypeAudio[];
@@ -35,10 +42,4 @@
 
 }  // namespace cricket
 
-namespace webrtc {
-
-enum class MediaType { ANY, AUDIO, VIDEO, DATA };
-
-}  // namespace webrtc
-
 #endif  // API_MEDIA_TYPES_H_
diff --git a/media/engine/fake_webrtc_call.cc b/media/engine/fake_webrtc_call.cc
index 76a70aa..c3d3755 100644
--- a/media/engine/fake_webrtc_call.cc
+++ b/media/engine/fake_webrtc_call.cc
@@ -452,6 +452,7 @@
       return video_network_state_;
     case webrtc::MediaType::DATA:
     case webrtc::MediaType::ANY:
+    case webrtc::MediaType::UNSUPPORTED:
       ADD_FAILURE() << "GetNetworkState called with unknown parameter.";
       return webrtc::kNetworkDown;
   }
@@ -638,6 +639,7 @@
       break;
     case webrtc::MediaType::DATA:
     case webrtc::MediaType::ANY:
+    case webrtc::MediaType::UNSUPPORTED:
       ADD_FAILURE()
           << "SignalChannelNetworkState called with unknown parameter.";
   }
diff --git a/pc/peer_connection_header_extension_unittest.cc b/pc/peer_connection_header_extension_unittest.cc
index 8bf6c7a..6ace2fe 100644
--- a/pc/peer_connection_header_extension_unittest.cc
+++ b/pc/peer_connection_header_extension_unittest.cc
@@ -199,9 +199,9 @@
 INSTANTIATE_TEST_SUITE_P(
     ,
     PeerConnectionHeaderExtensionTest,
-    Combine(Values(SdpSemantics::kPlanB, SdpSemantics::kUnifiedPlan),
-            Values(cricket::MediaType::MEDIA_TYPE_AUDIO,
-                   cricket::MediaType::MEDIA_TYPE_VIDEO)),
+    Combine(Values(cricket::MediaType::MEDIA_TYPE_AUDIO,
+                   cricket::MediaType::MEDIA_TYPE_VIDEO),
+            Values(SdpSemantics::kPlanB, SdpSemantics::kUnifiedPlan)),
     [](const testing::TestParamInfo<
         PeerConnectionHeaderExtensionTest::ParamType>& info) {
       cricket::MediaType media_type;
diff --git a/sdk/android/api/org/webrtc/MediaStreamTrack.java b/sdk/android/api/org/webrtc/MediaStreamTrack.java
index 0249ffb..fc93bd8 100644
--- a/sdk/android/api/org/webrtc/MediaStreamTrack.java
+++ b/sdk/android/api/org/webrtc/MediaStreamTrack.java
@@ -30,8 +30,8 @@
 
   // Must be kept in sync with cricket::MediaType.
   public enum MediaType {
-    MEDIA_TYPE_AUDIO(0),
-    MEDIA_TYPE_VIDEO(1);
+    MEDIA_TYPE_AUDIO(1),
+    MEDIA_TYPE_VIDEO(2);
 
     private final int nativeIndex;