Bug 1259788 - Allow MediaStreamTrack::ForwardTrackContentsTo to take an explicit TrackID. r?jesup
MozReview-Commit-ID: EqsRdVJVuWu
--- 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);