mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1214989. Part 2 - add MediaDecoderOwner to Clone() and overrides. r=gerald.
This commit is contained in:
parent
31039842e1
commit
78f4511dfc
@ -2758,7 +2758,7 @@ nsresult HTMLMediaElement::InitializeDecoderAsClone(MediaDecoder* aOriginal)
|
||||
MediaResource* originalResource = aOriginal->GetResource();
|
||||
if (!originalResource)
|
||||
return NS_ERROR_FAILURE;
|
||||
nsRefPtr<MediaDecoder> decoder = aOriginal->Clone();
|
||||
nsRefPtr<MediaDecoder> decoder = aOriginal->Clone(this);
|
||||
if (!decoder)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
|
@ -15,11 +15,11 @@
|
||||
namespace mozilla {
|
||||
|
||||
MediaDecoder*
|
||||
MP3Decoder::Clone() {
|
||||
MP3Decoder::Clone(MediaDecoderOwner* aOwner) {
|
||||
if (!IsEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new MP3Decoder();
|
||||
return new MP3Decoder(aOwner);
|
||||
}
|
||||
|
||||
MediaDecoderStateMachine*
|
||||
|
@ -14,7 +14,7 @@ class MP3Decoder : public MediaDecoder {
|
||||
public:
|
||||
// MediaDecoder interface.
|
||||
explicit MP3Decoder(MediaDecoderOwner* aOwner) : MediaDecoder(aOwner) {}
|
||||
MediaDecoder* Clone() override;
|
||||
MediaDecoder* Clone(MediaDecoderOwner* aOwner) override;
|
||||
MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
|
||||
// Returns true if the MP3 backend is preffed on, and we're running on a
|
||||
|
@ -306,7 +306,7 @@ public:
|
||||
virtual void ResetConnectionState();
|
||||
// Create a new decoder of the same type as this one.
|
||||
// Subclasses must implement this.
|
||||
virtual MediaDecoder* Clone() = 0;
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) = 0;
|
||||
// Create a new state machine to run this decoder.
|
||||
// Subclasses must implement this.
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() = 0;
|
||||
|
@ -22,7 +22,9 @@ public:
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
virtual MediaDecoder* Clone() { return new AndroidMediaDecoder(mType); }
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) {
|
||||
return new AndroidMediaDecoder(aOwner, mType);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||
};
|
||||
|
||||
|
@ -15,9 +15,9 @@ AppleDecoder::AppleDecoder(MediaDecoderOwner* aOwner)
|
||||
}
|
||||
|
||||
MediaDecoder *
|
||||
AppleDecoder::Clone()
|
||||
AppleDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
return new AppleDecoder();
|
||||
return new AppleDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaDecoderStateMachine *
|
||||
|
@ -14,7 +14,7 @@ class AppleDecoder : public MediaDecoder
|
||||
public:
|
||||
explicit AppleDecoder(MediaDecoderOwner* aOwner);
|
||||
|
||||
virtual MediaDecoder* Clone() override;
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override;
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
|
||||
};
|
||||
|
@ -19,11 +19,11 @@ public:
|
||||
explicit DirectShowDecoder(MediaDecoderOwner* aOwner);
|
||||
virtual ~DirectShowDecoder();
|
||||
|
||||
MediaDecoder* Clone() override {
|
||||
MediaDecoder* Clone(MediaDecoderOwner* aOwner) override {
|
||||
if (!IsEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new DirectShowDecoder();
|
||||
return new DirectShowDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
|
@ -16,11 +16,11 @@ class MP4Decoder : public MediaDecoder
|
||||
public:
|
||||
explicit MP4Decoder(MediaDecoderOwner* aOwner);
|
||||
|
||||
virtual MediaDecoder* Clone() override {
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override {
|
||||
if (!IsEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new MP4Decoder();
|
||||
return new MP4Decoder(aOwner);
|
||||
}
|
||||
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
|
@ -16,7 +16,9 @@ class GStreamerDecoder : public MediaDecoder
|
||||
{
|
||||
public:
|
||||
explicit GStreamerDecoder(MediaDecoderOwner* aOwner) : MediaDecoder(aOwner) {}
|
||||
virtual MediaDecoder* Clone() { return new GStreamerDecoder(); }
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) {
|
||||
return new GStreamerDecoder(aOwner);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||
static bool CanHandleMediaType(const nsACString& aMIMEType, const nsAString* aCodecs);
|
||||
};
|
||||
|
@ -35,7 +35,7 @@ MediaSourceDecoder::MediaSourceDecoder(dom::HTMLMediaElement* aElement)
|
||||
}
|
||||
|
||||
MediaDecoder*
|
||||
MediaSourceDecoder::Clone()
|
||||
MediaSourceDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
// TODO: Sort out cloning.
|
||||
return nullptr;
|
||||
|
@ -36,7 +36,7 @@ class MediaSourceDecoder : public MediaDecoder
|
||||
public:
|
||||
explicit MediaSourceDecoder(dom::HTMLMediaElement* aElement);
|
||||
|
||||
virtual MediaDecoder* Clone() override;
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override;
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
virtual nsresult Load(nsIStreamListener**) override;
|
||||
virtual media::TimeIntervals GetSeekable() override;
|
||||
|
@ -19,11 +19,11 @@ public:
|
||||
, mShutdownBit(false)
|
||||
{}
|
||||
|
||||
virtual MediaDecoder* Clone() override {
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override {
|
||||
if (!IsOggEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new OggDecoder();
|
||||
return new OggDecoder(aOwner);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() override;
|
||||
|
||||
|
@ -12,9 +12,9 @@
|
||||
namespace mozilla {
|
||||
|
||||
MediaDecoder*
|
||||
MediaCodecDecoder::Clone()
|
||||
MediaCodecDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
return new MediaCodecDecoder();
|
||||
return new MediaCodecDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaOmxCommonReader*
|
||||
|
@ -18,7 +18,7 @@ public:
|
||||
explicit MediaCodecDecoder(MediaDecoderOwner* aOwner)
|
||||
: MediaOmxCommonDecoder(aOwner) {}
|
||||
|
||||
virtual MediaDecoder* Clone();
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner);
|
||||
|
||||
virtual MediaOmxCommonReader* CreateReader();
|
||||
|
||||
|
@ -13,9 +13,9 @@ using namespace android;
|
||||
namespace mozilla {
|
||||
|
||||
MediaDecoder*
|
||||
MediaOmxDecoder::Clone()
|
||||
MediaOmxDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
return new MediaOmxDecoder();
|
||||
return new MediaOmxDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaOmxCommonReader*
|
||||
|
@ -15,7 +15,7 @@ class MediaOmxDecoder : public MediaOmxCommonDecoder
|
||||
public:
|
||||
explicit MediaOmxDecoder(MediaDecoderOwner* aOwner)
|
||||
: MediaOmxCommonDecoder(aOwner) {}
|
||||
virtual MediaDecoder* Clone();
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner);
|
||||
virtual MediaOmxCommonReader* CreateReader();
|
||||
virtual MediaDecoderStateMachine* CreateStateMachineFromReader(MediaOmxCommonReader* aReader);
|
||||
};
|
||||
|
@ -13,9 +13,9 @@
|
||||
namespace mozilla {
|
||||
|
||||
MediaDecoder*
|
||||
RtspMediaCodecDecoder::Clone()
|
||||
RtspMediaCodecDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
return new RtspMediaCodecDecoder();
|
||||
return new RtspMediaCodecDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaOmxCommonReader*
|
||||
|
@ -17,7 +17,7 @@ public:
|
||||
explicit RtspMediaCodecDecoder(MediaDecoderOwner* aOwner)
|
||||
: MediaOmxCommonDecoder(aOwner) {}
|
||||
|
||||
virtual MediaDecoder* Clone() override;
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override;
|
||||
|
||||
virtual MediaOmxCommonReader* CreateReader() override;
|
||||
|
||||
|
@ -11,9 +11,9 @@
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
MediaDecoder* RtspOmxDecoder::Clone()
|
||||
MediaDecoder* RtspOmxDecoder::Clone(MediaDecoderOwner* aOwner)
|
||||
{
|
||||
return new RtspOmxDecoder();
|
||||
return new RtspOmxDecoder(aOwner);
|
||||
}
|
||||
|
||||
MediaDecoderStateMachine*
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
MOZ_COUNT_DTOR(RtspOmxDecoder);
|
||||
}
|
||||
|
||||
virtual MediaDecoder* Clone() override final;
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) override final;
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine() override final;
|
||||
virtual void ChangeState(PlayState aState) override final;
|
||||
};
|
||||
|
@ -13,11 +13,11 @@ class RawDecoder : public MediaDecoder
|
||||
{
|
||||
public:
|
||||
explicit RawDecoder(MediaDecoderOwner* aOwner) : MediaDecoder(aOwner) {}
|
||||
virtual MediaDecoder* Clone() {
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) {
|
||||
if (!IsRawEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new RawDecoder();
|
||||
return new RawDecoder(aOwner);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||
};
|
||||
|
@ -25,11 +25,11 @@ class WaveDecoder : public MediaDecoder
|
||||
{
|
||||
public:
|
||||
explicit WaveDecoder(MediaDecoderOwner* aOwner) : MediaDecoder(aOwner) {}
|
||||
virtual MediaDecoder* Clone() {
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) {
|
||||
if (!IsWaveEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new WaveDecoder();
|
||||
return new WaveDecoder(aOwner);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||
};
|
||||
|
@ -14,11 +14,11 @@ class WebMDecoder : public MediaDecoder
|
||||
{
|
||||
public:
|
||||
explicit WebMDecoder(MediaDecoderOwner* aOwner) : MediaDecoder(aOwner) {}
|
||||
virtual MediaDecoder* Clone() {
|
||||
virtual MediaDecoder* Clone(MediaDecoderOwner* aOwner) {
|
||||
if (!IsWebMEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
return new WebMDecoder();
|
||||
return new WebMDecoder(aOwner);
|
||||
}
|
||||
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user