New target for api/rtp_parameters.h and api/media_types.h.

The new target does not depend on libjingle_peerconnection_api, and to
do this, the named "audio" and "video" string literals had to be moved from
media_stream_interface.cc to media_types.cc.

In this cl, the dependency on libjingle_peerconnection_api can be
dropped from a few targets.

No-Presubmit: True
Bug: webrtc:8733
Change-Id: Icc675280d5c3c537f2255a9389ff18a482049921
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/53861
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28998}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 68bb3d1..d55fe52 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -134,8 +134,6 @@
     "media_transport_config.h",
     "media_transport_interface.cc",
     "media_transport_interface.h",
-    "media_types.cc",
-    "media_types.h",
     "notifier.h",
     "peer_connection_factory_proxy.h",
     "peer_connection_interface.cc",
@@ -145,8 +143,6 @@
     "proxy.h",
     "rtc_error.cc",
     "rtc_error.h",
-    "rtp_parameters.cc",
-    "rtp_parameters.h",
     "rtp_receiver_interface.cc",
     "rtp_receiver_interface.h",
     "rtp_sender_interface.cc",
@@ -222,6 +218,7 @@
     ":fec_controller_api",
     ":libjingle_peerconnection_api",
     ":network_state_predictor_api",
+    ":rtp_parameters",
     ":simulated_network_api",
     "../call:fake_network",
     "../call:rtp_interfaces",
@@ -256,10 +253,21 @@
   ]
 }
 
-# TODO(bugs.webrtc.org/8733): Move media_types.* and rtp_parameters.*
-# to this target.
 rtc_source_set("rtp_parameters") {
   visibility = [ "*" ]
+  sources = [
+    "media_types.cc",
+    "media_types.h",
+    "rtp_parameters.cc",
+    "rtp_parameters.h",
+  ]
+  deps = [
+    ":array_view",
+    "../rtc_base:checks",
+    "../rtc_base:stringutils",
+    "../rtc_base/system:rtc_export",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
 }
 
 rtc_source_set("audio_quality_analyzer_api") {
@@ -284,6 +292,7 @@
 
   deps = [
     ":libjingle_peerconnection_api",
+    ":rtp_parameters",
   ]
 }
 
@@ -707,6 +716,7 @@
     deps = [
       ":array_view",
       ":libjingle_peerconnection_api",
+      ":rtp_parameters",
       "..:webrtc_common",
       "../rtc_base:checks",
       "../rtc_base:rtc_base_approved",
@@ -722,6 +732,7 @@
     deps = [
       ":array_view",
       ":libjingle_peerconnection_api",
+      ":rtp_parameters",
       "..:webrtc_common",
       "../rtc_base:checks",
       "../rtc_base:rtc_base_approved",
@@ -874,6 +885,7 @@
       ":loopback_media_transport",
       ":rtc_event_log_output_file",
       ":rtp_packet_info",
+      ":rtp_parameters",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_approved",
diff --git a/api/media_stream_interface.cc b/api/media_stream_interface.cc
index 73566c4..e079079 100644
--- a/api/media_stream_interface.cc
+++ b/api/media_stream_interface.cc
@@ -9,11 +9,14 @@
  */
 
 #include "api/media_stream_interface.h"
+#include "api/media_types.h"
 
 namespace webrtc {
 
-const char MediaStreamTrackInterface::kVideoKind[] = "video";
-const char MediaStreamTrackInterface::kAudioKind[] = "audio";
+const char* const MediaStreamTrackInterface::kVideoKind =
+    cricket::kMediaTypeVideo;
+const char* const MediaStreamTrackInterface::kAudioKind =
+    cricket::kMediaTypeAudio;
 
 VideoTrackInterface::ContentHint VideoTrackInterface::content_hint() const {
   return ContentHint::kNone;
diff --git a/api/media_stream_interface.h b/api/media_stream_interface.h
index f4ea4a6..113b284 100644
--- a/api/media_stream_interface.h
+++ b/api/media_stream_interface.h
@@ -76,8 +76,8 @@
     kEnded,
   };
 
-  static const char kAudioKind[];
-  static const char kVideoKind[];
+  static const char* const kAudioKind;
+  static const char* const kVideoKind;
 
   // The kind() method must return kAudioKind only if the object is a
   // subclass of AudioTrackInterface, and kVideoKind only if the
diff --git a/api/media_types.cc b/api/media_types.cc
index 79269db..6bc6938 100644
--- a/api/media_types.cc
+++ b/api/media_types.cc
@@ -10,21 +10,20 @@
 
 #include "api/media_types.h"
 
-#include "api/media_stream_interface.h"
 #include "rtc_base/checks.h"
 
-namespace {
-static const char* kMediaTypeData = "data";
-}  // namespace
-
 namespace cricket {
 
+const char kMediaTypeVideo[] = "video";
+const char kMediaTypeAudio[] = "audio";
+const char kMediaTypeData[] = "data";
+
 std::string MediaTypeToString(MediaType type) {
   switch (type) {
     case MEDIA_TYPE_AUDIO:
-      return webrtc::MediaStreamTrackInterface::kAudioKind;
+      return kMediaTypeAudio;
     case MEDIA_TYPE_VIDEO:
-      return webrtc::MediaStreamTrackInterface::kVideoKind;
+      return kMediaTypeVideo;
     case MEDIA_TYPE_DATA:
       return kMediaTypeData;
   }
diff --git a/api/media_types.h b/api/media_types.h
index bb61305..8c6ba3d 100644
--- a/api/media_types.h
+++ b/api/media_types.h
@@ -22,6 +22,10 @@
 
 enum MediaType { MEDIA_TYPE_AUDIO, MEDIA_TYPE_VIDEO, MEDIA_TYPE_DATA };
 
+extern const char kMediaTypeAudio[];
+extern const char kMediaTypeVideo[];
+extern const char kMediaTypeData[];
+
 RTC_EXPORT std::string MediaTypeToString(MediaType type);
 
 }  // namespace cricket
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
index ffc0ac4..5a9d33b 100644
--- a/api/video/BUILD.gn
+++ b/api/video/BUILD.gn
@@ -227,6 +227,7 @@
     ":video_bitrate_allocator_factory",
     ":video_frame",
     "../:fec_controller_api",
+    "../:rtp_parameters",
     "../units:data_rate",
 
     # For rtpparameters.h
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 6dc6dc2..a627e6b 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -43,6 +43,7 @@
     "../api:function_view",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:transport_api",
     "../api/audio:aec3_factory",
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 6443074..a198103 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -34,6 +34,7 @@
     "../api:libjingle_peerconnection_api",
     "../api:network_state_predictor_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:transport_api",
     "../api/audio:audio_mixer_api",
@@ -76,6 +77,7 @@
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api/rtc_event_log",
     "../api/transport:bitrate_settings",
     "../api/units:timestamp",
@@ -129,6 +131,7 @@
     "../api:array_view",
     "../api:fec_controller_api",
     "../api:network_state_predictor_api",
+    "../api:rtp_parameters",
     "../api:transport_api",
     "../api/rtc_event_log",
     "../api/transport:field_trial_based_config",
@@ -226,6 +229,7 @@
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api:simulated_network_api",
     "../api:transport_api",
     "../api/rtc_event_log",
@@ -273,6 +277,7 @@
     ":rtp_interfaces",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api:transport_api",
     "../api/video:video_frame",
     "../api/video:video_rtp_headers",
@@ -324,7 +329,7 @@
     ":call_interfaces",
     ":simulated_network",
     ":simulated_packet_receiver",
-    "../api:libjingle_peerconnection_api",
+    "../api:rtp_parameters",
     "../api:simulated_network_api",
     "../api:transport_api",
     "../modules/utility",
@@ -370,6 +375,7 @@
       "../api:libjingle_peerconnection_api",
       "../api:mock_audio_mixer",
       "../api:rtp_headers",
+      "../api:rtp_parameters",
       "../api:transport_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/rtc_event_log",
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 537c069..875e06b 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -34,7 +34,7 @@
   ]
 
   deps = [
-    "../api:libjingle_logging_api",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api/rtc_event_log",
     "../api/task_queue",
@@ -53,6 +53,7 @@
     ":rtc_event_log_api",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
   ]
 }
 
@@ -190,8 +191,8 @@
   defines = []
 
   deps = [
-    "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api/transport:network_control",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
@@ -318,8 +319,8 @@
       ":rtc_event_log_proto",
       ":rtc_stream_config",
       "../api:function_view",
-      "../api:libjingle_peerconnection_api",
       "../api:rtp_headers",
+      "../api:rtp_parameters",
       "../api/rtc_event_log",
       "../api/units:data_rate",
       "../api/units:time_delta",
@@ -369,9 +370,9 @@
         ":rtc_event_video",
         ":rtc_stream_config",
         "../api:array_view",
-        "../api:libjingle_peerconnection_api",
         "../api:rtc_event_log_output_file",
         "../api:rtp_headers",
+        "../api:rtp_parameters",
         "../api/rtc_event_log",
         "../api/rtc_event_log:rtc_event_log_factory",
         "../api/task_queue:default_task_queue_factory",
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 7cb77a5..383f6a7 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -75,6 +75,7 @@
     "../api:array_view",
     "../api:audio_options_api",
     "../api:libjingle_peerconnection_api",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api/audio_codecs:audio_codecs_api",
     "../api/video:video_bitrate_allocation",
@@ -260,6 +261,7 @@
     "..:webrtc_common",
     "../api:call_api",
     "../api:libjingle_peerconnection_api",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:transport_api",
     "../api/audio:audio_mixer_api",
@@ -517,6 +519,7 @@
       "../api:mock_video_bitrate_allocator_factory",
       "../api:mock_video_codec_factory",
       "../api:mock_video_encoder",
+      "../api:rtp_parameters",
       "../api:scoped_refptr",
       "../api:simulcast_test_fixture_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 3d6c0e7..06ed9bd 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -102,6 +102,7 @@
     "../../api:function_view",
     "../../api:libjingle_peerconnection_api",
     "../../api:rtp_headers",
+    "../../api:rtp_parameters",
     "../../api/audio_codecs:audio_codecs_api",
     "../../api/transport:network_control",
     "../../api/video:video_frame",
@@ -222,6 +223,7 @@
     "../../api:libjingle_peerconnection_api",
     "../../api:rtp_headers",
     "../../api:rtp_packet_info",
+    "../../api:rtp_parameters",
     "../../api:scoped_refptr",
     "../../api:transport_api",
     "../../api/audio_codecs:audio_codecs_api",
@@ -469,6 +471,7 @@
       "../../api:libjingle_peerconnection_api",
       "../../api:rtp_headers",
       "../../api:rtp_packet_info",
+      "../../api:rtp_parameters",
       "../../api:scoped_refptr",
       "../../api:transport_api",
       "../../api/transport:field_trial_based_config",
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index c3d8d4b..814720f 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -83,6 +83,8 @@
     "../api:call_api",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api/rtc_event_log",
     "../api/video:builtin_video_bitrate_allocator_factory",
@@ -92,6 +94,7 @@
     "../call:rtp_interfaces",
     "../call:rtp_receiver",
     "../common_video",
+    "../common_video:common_video",
     "../logging:ice_log",
     "../media:rtc_data",
     "../media:rtc_h264_profile_id",
@@ -218,6 +221,7 @@
     "../api:network_state_predictor_api",
     "../api:rtc_event_log_output_file",
     "../api:rtc_stats_api",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api/rtc_event_log",
     "../api/task_queue",
@@ -306,6 +310,7 @@
       "../api:libjingle_peerconnection_api",
       "../api:loopback_media_transport",
       "../api:rtp_headers",
+      "../api:rtp_parameters",
       "../api/video:builtin_video_bitrate_allocator_factory",
       "../call:rtp_interfaces",
       "../call:rtp_receiver",
@@ -388,6 +393,7 @@
       "../api:function_view",
       "../api:libjingle_peerconnection_api",
       "../api:rtc_stats_api",
+      "../api:rtp_parameters",
       "../api:scoped_refptr",
       "../pc:peerconnection",
       "../rtc_base:checks",
@@ -567,6 +573,7 @@
       "../api:fake_media_transport",
       "../api:rtc_event_log_output_file",
       "../api:rtc_stats_api",
+      "../api:rtp_parameters",
       "../api/audio_codecs:audio_codecs_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index fb86ef8..c262f67 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -153,7 +153,7 @@
     ]
 
     deps = [
-      "../api:libjingle_peerconnection_api",
+      "../api:rtp_parameters",
       "../api:transport_api",
       "../api/rtc_event_log",
       "../api/task_queue:default_task_queue_factory",
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 277a9a0..1158229 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -922,6 +922,7 @@
         "../api:libjingle_peerconnection_api",
         "../api:rtc_event_log_output_file",
         "../api:rtc_stats_api",
+        "../api:rtp_parameters",
         "../api:scoped_refptr",
         "../api/audio_codecs:audio_codecs_api",
         "../api/audio_codecs:builtin_audio_decoder_factory",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 0eca65f..862f3a8 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -760,6 +760,7 @@
       "../../api:callfactory_api",
       "../../api:libjingle_peerconnection_api",
       "../../api:rtc_event_log_output_file",
+      "../../api:rtp_parameters",
       "../../api/rtc_event_log:rtc_event_log_factory",
       "../../api/task_queue:default_task_queue_factory",
       "../../api/video_codecs:video_codecs_api",
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 7dafa3a..60da223 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -737,6 +737,7 @@
     ":video_test_common",
     "../api:libjingle_peerconnection_api",
     "../api:rtp_headers",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:simulated_network_api",
     "../api:transport_api",
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index 440064b..9c49781 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -502,6 +502,7 @@
   deps = [
     "../../../api:array_view",
     "../../../api:libjingle_peerconnection_api",
+    "../../../api:rtp_parameters",
     "../../../media:rtc_media_base",
     "../../../p2p:rtc_p2p",
     "../../../pc:peerconnection",
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 2a7d883..9792271 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -82,6 +82,7 @@
       "../../api:fec_controller_api",
       "../../api:libjingle_peerconnection_api",
       "../../api:rtc_event_log_output_file",
+      "../../api:rtp_parameters",
       "../../api:transport_api",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../api/audio_codecs:builtin_audio_encoder_factory",
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 2e4cde2..4679153 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -55,6 +55,7 @@
     "../api:array_view",
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
+    "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:transport_api",
     "../api/rtc_event_log",
@@ -565,6 +566,7 @@
       "../api:mock_fec_controller_override",
       "../api:mock_frame_decryptor",
       "../api:rtp_headers",
+      "../api:rtp_parameters",
       "../api:scoped_refptr",
       "../api:simulated_network_api",
       "../api/rtc_event_log",