Split out RtpSource from libjingle_peerconnection_api

And moved declaration into a new api directory, as
api/transport/rtp/rtp_source.h.

Bug: webrtc:8733
Change-Id: Ia73b7b0630e6065de4707a37633adddfa00a2b8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150880
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29039}
diff --git a/api/rtp_receiver_interface.h b/api/rtp_receiver_interface.h
index a6ee546..ffd7497 100644
--- a/api/rtp_receiver_interface.h
+++ b/api/rtp_receiver_interface.h
@@ -24,63 +24,12 @@
 #include "api/proxy.h"
 #include "api/rtp_parameters.h"
 #include "api/scoped_refptr.h"
+#include "api/transport/rtp/rtp_source.h"
 #include "rtc_base/deprecation.h"
 #include "rtc_base/ref_count.h"
 
 namespace webrtc {
 
-enum class RtpSourceType {
-  SSRC,
-  CSRC,
-};
-
-class RtpSource {
- public:
-  RtpSource() = delete;
-
-  RtpSource(int64_t timestamp_ms,
-            uint32_t source_id,
-            RtpSourceType source_type,
-            absl::optional<uint8_t> audio_level,
-            uint32_t rtp_timestamp);
-
-  RtpSource(const RtpSource&);
-  RtpSource& operator=(const RtpSource&);
-  ~RtpSource();
-
-  int64_t timestamp_ms() const { return timestamp_ms_; }
-  void update_timestamp_ms(int64_t timestamp_ms) {
-    RTC_DCHECK_LE(timestamp_ms_, timestamp_ms);
-    timestamp_ms_ = timestamp_ms;
-  }
-
-  // The identifier of the source can be the CSRC or the SSRC.
-  uint32_t source_id() const { return source_id_; }
-
-  // The source can be either a contributing source or a synchronization source.
-  RtpSourceType source_type() const { return source_type_; }
-
-  absl::optional<uint8_t> audio_level() const { return audio_level_; }
-  void set_audio_level(const absl::optional<uint8_t>& level) {
-    audio_level_ = level;
-  }
-
-  uint32_t rtp_timestamp() const { return rtp_timestamp_; }
-
-  bool operator==(const RtpSource& o) const {
-    return timestamp_ms_ == o.timestamp_ms() && source_id_ == o.source_id() &&
-           source_type_ == o.source_type() && audio_level_ == o.audio_level_ &&
-           rtp_timestamp_ == o.rtp_timestamp();
-  }
-
- private:
-  int64_t timestamp_ms_;
-  uint32_t source_id_;
-  RtpSourceType source_type_;
-  absl::optional<uint8_t> audio_level_;
-  uint32_t rtp_timestamp_;
-};
-
 class RtpReceiverObserverInterface {
  public:
   // Note: Currently if there are multiple RtpReceivers of the same media type,