mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 12:15:33 +00:00
Bug 1383628. P2 - move the call to Load() into Clone(). r=gerald
MozReview-Commit-ID: 9k8BXLwAepI --HG-- extra : rebase_source : 52d3fb871bad53691585e774c2745f328592eb3f extra : source : cdc492f87aa634eaaae0809aacb261ad25be7b08
This commit is contained in:
parent
09bd1a691e
commit
a8a917b8bb
@ -4721,10 +4721,6 @@ HTMLMediaElement::InitializeDecoderAsClone(ChannelMediaDecoder* aOriginal)
|
||||
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
|
||||
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
|
||||
|
||||
MediaResource* originalResource = aOriginal->GetResource();
|
||||
if (!originalResource)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
MediaDecoderInit decoderInit(this,
|
||||
mAudioChannel,
|
||||
mMuted ? 0.0 : mVolume,
|
||||
@ -4742,14 +4738,6 @@ HTMLMediaElement::InitializeDecoderAsClone(ChannelMediaDecoder* aOriginal)
|
||||
|
||||
LOG(LogLevel::Debug, ("%p Cloned decoder %p from %p", this, decoder.get(), aOriginal));
|
||||
|
||||
nsresult rv = decoder->Load(originalResource);
|
||||
if (NS_FAILED(rv)) {
|
||||
decoder->Shutdown();
|
||||
LOG(LogLevel::Debug,
|
||||
("%p Failed to load for decoder %p", this, decoder.get()));
|
||||
return rv;
|
||||
}
|
||||
|
||||
return FinishDecoderSetup(decoder);
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,18 @@ ChannelMediaDecoder::ChannelMediaDecoder(MediaDecoderInit& aInit)
|
||||
already_AddRefed<ChannelMediaDecoder>
|
||||
ChannelMediaDecoder::Clone(MediaDecoderInit& aInit)
|
||||
{
|
||||
if (!mResource) {
|
||||
return nullptr;
|
||||
}
|
||||
RefPtr<ChannelMediaDecoder> decoder = CloneImpl(aInit);
|
||||
if (!decoder) {
|
||||
return nullptr;
|
||||
}
|
||||
nsresult rv = decoder->Load(mResource);
|
||||
if (NS_FAILED(rv)) {
|
||||
decoder->Shutdown();
|
||||
return nullptr;
|
||||
}
|
||||
return decoder.forget();
|
||||
}
|
||||
|
||||
|
@ -70,11 +70,11 @@ public:
|
||||
virtual nsresult Load(nsIChannel* aChannel,
|
||||
bool aIsPrivateBrowsing,
|
||||
nsIStreamListener** aStreamListener);
|
||||
virtual nsresult Load(MediaResource* aOriginal);
|
||||
|
||||
private:
|
||||
virtual ChannelMediaDecoder* CloneImpl(MediaDecoderInit& aInit) = 0;
|
||||
nsresult OpenResource(nsIStreamListener** aStreamListener);
|
||||
virtual nsresult Load(MediaResource* aOriginal);
|
||||
};
|
||||
|
||||
} // namespace mozilla
|
||||
|
Loading…
Reference in New Issue
Block a user