diff --git a/content/media/DOMMediaStream.cpp b/content/media/DOMMediaStream.cpp index 9fdaf090931..e99ac451790 100644 --- a/content/media/DOMMediaStream.cpp +++ b/content/media/DOMMediaStream.cpp @@ -324,6 +324,9 @@ DOMMediaStream::OnTracksAvailable(OnTracksAvailableCallback* aRunnable) void DOMMediaStream::CheckTracksAvailable() { + if (mTrackTypesAvailable == 0) { + return; + } nsTArray > callbacks; callbacks.SwapElements(mRunOnTracksAvailable); diff --git a/content/media/DOMMediaStream.h b/content/media/DOMMediaStream.h index 641be783ac6..f7bd781594b 100644 --- a/content/media/DOMMediaStream.h +++ b/content/media/DOMMediaStream.h @@ -164,6 +164,7 @@ public: // We only care about track additions, we'll fire the notification even if // some of the tracks have been removed. // Takes ownership of aCallback. + // If GetExpectedTracks() returns 0, the callback will be fired as soon as there are any tracks. void OnTracksAvailable(OnTracksAvailableCallback* aCallback); /** @@ -182,6 +183,7 @@ protected: void InitSourceStream(nsIDOMWindow* aWindow, TrackTypeHints aHintContents); void InitTrackUnionStream(nsIDOMWindow* aWindow, TrackTypeHints aHintContents); void InitStreamCommon(MediaStream* aStream); + void CheckTracksAvailable(); class StreamListener;