Media: harden TrackID handling.

This commit is contained in:
wolfbeast 2018-06-07 16:04:56 +02:00 committed by Roy Tam
commit 0bdecfc6ea
9 changed files with 183 additions and 37 deletions

View file

@ -675,6 +675,11 @@ public:
return mAudioCaptured;
}
/**
* Ensures any MediaStreamTracks captured from a MediaDecoder are ended.
*/
void EndPreCreatedCapturedDecoderTracks();
void MozGetMetadata(JSContext* aCx, JS::MutableHandle<JSObject*> aResult,
ErrorResult& aRv);
@ -815,13 +820,18 @@ protected:
~OutputMediaStream();
RefPtr<DOMMediaStream> mStream;
TrackID mNextAvailableTrackID;
bool mFinishWhenEnded;
bool mCapturingAudioOnly;
bool mCapturingDecoder;
bool mCapturingMediaStream;
// The following members are keeping state for a captured MediaDecoder.
// Tracks that were created on main thread before MediaDecoder fed them
// to the MediaStreamGraph.
nsTArray<RefPtr<MediaStreamTrack>> mPreCreatedTracks;
// The following members are keeping state for a captured MediaStream.
TrackID mNextAvailableTrackID;
nsTArray<Pair<nsString, RefPtr<MediaInputPort>>> mTrackPorts;
};