Bug 1259788 - Allow MediaStreamTrack::ForwardTrackContentsTo to take an explicit TrackID. r?jesup draft
authorAndreas Pehrson <pehrsons@gmail.com>
Wed, 06 Jul 2016 10:37:28 +0200
changeset 404926 48287071eaed215f3b29e8419eaf10bcbc6c9a71
parent 404925 2bf33193013cb20714e42bdeb10d21177eae3200
child 404927 ed99246365be8357f17db9c485d61bfebbfcf042
push id27359
push userpehrsons@gmail.com
push dateWed, 24 Aug 2016 14:53:56 +0000
reviewersjesup
bugs1259788
milestone51.0a1
Bug 1259788 - Allow MediaStreamTrack::ForwardTrackContentsTo to take an explicit TrackID. r?jesup MozReview-Commit-ID: EqsRdVJVuWu
dom/media/MediaStreamTrack.cpp
dom/media/MediaStreamTrack.h
--- a/dom/media/MediaStreamTrack.cpp
+++ b/dom/media/MediaStreamTrack.cpp
@@ -474,22 +474,23 @@ MediaStreamTrack::RemoveDirectListener(D
 
   if (GetOwnedStream()) {
     GetOwnedStream()->RemoveDirectTrackListener(aListener, mTrackID);
     mDirectTrackListeners.RemoveElement(aListener);
   }
 }
 
 already_AddRefed<MediaInputPort>
-MediaStreamTrack::ForwardTrackContentsTo(ProcessedMediaStream* aStream)
+MediaStreamTrack::ForwardTrackContentsTo(ProcessedMediaStream* aStream,
+                                         TrackID aDestinationTrackID)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_RELEASE_ASSERT(aStream);
   RefPtr<MediaInputPort> port =
-    aStream->AllocateInputPort(GetOwnedStream(), mTrackID);
+    aStream->AllocateInputPort(GetOwnedStream(), mTrackID, aDestinationTrackID);
   return port.forget();
 }
 
 bool
 MediaStreamTrack::IsForwardedThrough(MediaInputPort* aPort)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(aPort);
--- a/dom/media/MediaStreamTrack.h
+++ b/dom/media/MediaStreamTrack.h
@@ -383,17 +383,18 @@ public:
    */
   void AddDirectListener(DirectMediaStreamTrackListener *aListener);
   void RemoveDirectListener(DirectMediaStreamTrackListener  *aListener);
 
   /**
    * Sets up a MediaInputPort from the underlying track that this
    * MediaStreamTrack represents, to aStream, and returns it.
    */
-  already_AddRefed<MediaInputPort> ForwardTrackContentsTo(ProcessedMediaStream* aStream);
+  already_AddRefed<MediaInputPort> ForwardTrackContentsTo(ProcessedMediaStream* aStream,
+                                                          TrackID aDestinationTrackID = TRACK_ANY);
 
   /**
    * Returns true if this track is connected to aPort and forwarded to aPort's
    * output stream.
    */
   bool IsForwardedThrough(MediaInputPort* aPort);
 
   void SetMediaStreamSizeListener(DirectMediaStreamTrackListener* aListener);