Update pc/ to not use implicit T* --> scoped_refptr<T> conversion

Bug: webrtc:13464
Change-Id: I729ec2306ec0d6df2e546b5dbb530f57065d60da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244090
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35623}
diff --git a/pc/media_stream.cc b/pc/media_stream.cc
index 08a2a72..f353af7 100644
--- a/pc/media_stream.cc
+++ b/pc/media_stream.cc
@@ -12,6 +12,7 @@
 
 #include <stddef.h>
 
+#include <utility>
 #include <vector>
 
 #include "rtc_base/checks.h"
@@ -41,11 +42,13 @@
 }
 
 bool MediaStream::AddTrack(VideoTrackInterface* track) {
-  return AddTrack<VideoTrackVector, VideoTrackInterface>(&video_tracks_, track);
+  return AddTrack<VideoTrackVector, VideoTrackInterface>(
+      &video_tracks_, rtc::scoped_refptr<VideoTrackInterface>(track));
 }
 
 bool MediaStream::RemoveTrack(AudioTrackInterface* track) {
-  return RemoveTrack<AudioTrackVector>(&audio_tracks_, track);
+  return RemoveTrack<AudioTrackVector>(
+      &audio_tracks_, rtc::scoped_refptr<AudioTrackInterface>(track));
 }
 
 bool MediaStream::RemoveTrack(VideoTrackInterface* track) {
@@ -69,11 +72,12 @@
 }
 
 template <typename TrackVector, typename Track>
-bool MediaStream::AddTrack(TrackVector* tracks, Track* track) {
+bool MediaStream::AddTrack(TrackVector* tracks,
+                           rtc::scoped_refptr<Track> track) {
   typename TrackVector::iterator it = FindTrack(tracks, track->id());
   if (it != tracks->end())
     return false;
-  tracks->push_back(track);
+  tracks->emplace_back(std::move((track)));
   FireOnChanged();
   return true;
 }