Bug 1300529 - Remove default arguments from HTMLMediaElement::CaptureStreamInternal. r?padenot
MozReview-Commit-ID: IL7odCBP74
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -2539,33 +2539,28 @@ HTMLMediaElement::AddCaptureMediaTrackTo
track.get(), destinationTrackID, inputTrack, port.get()));
}
already_AddRefed<DOMMediaStream>
HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded,
bool aCaptureAudio,
MediaStreamGraph* aGraph)
{
+ MOZ_RELEASE_ASSERT(aGraph);
+
nsPIDOMWindowInner* window = OwnerDoc()->GetInnerWindow();
if (!window) {
return nullptr;
}
#ifdef MOZ_EME
if (ContainsRestrictedContent()) {
return nullptr;
}
#endif
- if (!aGraph) {
- MediaStreamGraph::GraphDriverType graphDriverType =
- HasAudio() ? MediaStreamGraph::AUDIO_THREAD_DRIVER
- : MediaStreamGraph::SYSTEM_THREAD_DRIVER;
- aGraph = MediaStreamGraph::GetInstance(graphDriverType, mAudioChannel);
- }
-
if (!mOutputStreams.IsEmpty() &&
aGraph != mOutputStreams[0].mStream->GetInputStream()->Graph()) {
return nullptr;
}
OutputMediaStream* out = mOutputStreams.AppendElement();
MediaStreamTrackSourceGetter* getter = new CaptureStreamTrackSourceGetter(this);
out->mStream = DOMMediaStream::CreateTrackUnionStreamAsInput(window, aGraph, getter);
@@ -2650,43 +2645,58 @@ HTMLMediaElement::CaptureStreamInternal(
RefPtr<DOMMediaStream> result = out->mStream;
return result.forget();
}
already_AddRefed<DOMMediaStream>
HTMLMediaElement::CaptureAudio(ErrorResult& aRv,
MediaStreamGraph* aGraph)
{
- RefPtr<DOMMediaStream> stream = CaptureStreamInternal(false, aGraph);
+ MOZ_RELEASE_ASSERT(aGraph);
+
+ RefPtr<DOMMediaStream> stream =
+ CaptureStreamInternal(false, true, aGraph);
if (!stream) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
return stream.forget();
}
already_AddRefed<DOMMediaStream>
-HTMLMediaElement::MozCaptureStream(ErrorResult& aRv,
- MediaStreamGraph* aGraph)
-{
- RefPtr<DOMMediaStream> stream = CaptureStreamInternal(false, aGraph);
+HTMLMediaElement::MozCaptureStream(ErrorResult& aRv)
+{
+ MediaStreamGraph::GraphDriverType graphDriverType =
+ HasAudio() ? MediaStreamGraph::AUDIO_THREAD_DRIVER
+ : MediaStreamGraph::SYSTEM_THREAD_DRIVER;
+ MediaStreamGraph* graph =
+ MediaStreamGraph::GetInstance(graphDriverType, mAudioChannel);
+
+ RefPtr<DOMMediaStream> stream =
+ CaptureStreamInternal(false, false, graph);
if (!stream) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
return stream.forget();
}
already_AddRefed<DOMMediaStream>
-HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv,
- MediaStreamGraph* aGraph)
-{
- RefPtr<DOMMediaStream> stream = CaptureStreamInternal(true, aGraph);
+HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv)
+{
+ MediaStreamGraph::GraphDriverType graphDriverType =
+ HasAudio() ? MediaStreamGraph::AUDIO_THREAD_DRIVER
+ : MediaStreamGraph::SYSTEM_THREAD_DRIVER;
+ MediaStreamGraph* graph =
+ MediaStreamGraph::GetInstance(graphDriverType, mAudioChannel);
+
+ RefPtr<DOMMediaStream> stream =
+ CaptureStreamInternal(true, false, graph);
if (!stream) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
return stream.forget();
}
@@ -6560,17 +6570,18 @@ HTMLMediaElement::AudioCaptureStreamChan
uint64_t id = window->WindowID();
MediaStreamGraph* msg =
MediaStreamGraph::GetInstance(MediaStreamGraph::AUDIO_THREAD_DRIVER,
mAudioChannel);
if (GetSrcMediaStream()) {
mCaptureStreamPort = msg->ConnectToCaptureStream(id, GetSrcMediaStream());
} else {
- RefPtr<DOMMediaStream> stream = CaptureStreamInternal(false, msg);
+ RefPtr<DOMMediaStream> stream =
+ CaptureStreamInternal(false, false, msg);
mCaptureStreamPort = msg->ConnectToCaptureStream(id, stream->GetPlaybackStream());
}
} else if (!mAudioCapturedByWindow && mCaptureStreamPort) {
if (mDecoder) {
ProcessedMediaStream* ps =
mCaptureStreamPort->GetSource()->AsProcessedStream();
MOZ_ASSERT(ps);
--- a/dom/html/HTMLMediaElement.h
+++ b/dom/html/HTMLMediaElement.h
@@ -650,23 +650,21 @@ public:
void CannotDecryptWaitingForKey();
bool MozAutoplayEnabled() const
{
return mAutoplayEnabled;
}
already_AddRefed<DOMMediaStream> CaptureAudio(ErrorResult& aRv,
- MediaStreamGraph* aGraph = nullptr);
+ MediaStreamGraph* aGraph);
- already_AddRefed<DOMMediaStream> MozCaptureStream(ErrorResult& aRv,
- MediaStreamGraph* aGraph = nullptr);
+ already_AddRefed<DOMMediaStream> MozCaptureStream(ErrorResult& aRv);
- already_AddRefed<DOMMediaStream> MozCaptureStreamUntilEnded(ErrorResult& aRv,
- MediaStreamGraph* aGraph = nullptr);
+ already_AddRefed<DOMMediaStream> MozCaptureStreamUntilEnded(ErrorResult& aRv);
bool MozAudioCaptured() const
{
return mAudioCaptured;
}
void MozGetMetadata(JSContext* aCx, JS::MutableHandle<JSObject*> aResult,
ErrorResult& aRv);
@@ -892,17 +890,17 @@ protected:
* The stream will never finish.
*
* When aCaptureAudio is true, we stop playout of audio and instead route it
* to the DOMMediaStream. Volume and mute state will be applied to the audio
* reaching the stream. No video tracks will be captured in this case.
*/
already_AddRefed<DOMMediaStream> CaptureStreamInternal(bool aFinishWhenEnded,
bool aCaptureAudio,
- MediaStreamGraph* aGraph = nullptr);
+ MediaStreamGraph* aGraph);
/**
* Initialize a decoder as a clone of an existing decoder in another
* element.
* mLoadingSrc must already be set.
*/
nsresult InitializeDecoderAsClone(MediaDecoder* aOriginal);