Bug 1390748 - Remove OggDecoder::CreateStateMachine(). r=jwwang
MozReview-Commit-ID: 2JgZ2Ppv6as
--- a/dom/media/DecoderTraits.cpp
+++ b/dom/media/DecoderTraits.cpp
@@ -306,17 +306,20 @@ DecoderTraits::CreateReader(const MediaC
} else
if (WaveDecoder::IsSupportedType(aType)) {
decoderReader = new MediaFormatReader(aInit, new WAVDemuxer(resource));
} else
if (FlacDecoder::IsSupportedType(aType)) {
decoderReader = new MediaFormatReader(aInit, new FlacDemuxer(resource));
} else
if (OggDecoder::IsSupportedType(aType)) {
- decoderReader = new MediaFormatReader(aInit, new OggDemuxer(resource));
+ RefPtr<OggDemuxer> demuxer = new OggDemuxer(resource);
+ decoderReader = new MediaFormatReader(aInit, demuxer);
+ demuxer->SetChainingEvents(&decoderReader->TimedMetadataProducer(),
+ &decoderReader->MediaNotSeekableProducer());
} else
if (WebMDecoder::IsSupportedType(aType)) {
decoderReader = new MediaFormatReader(aInit, new WebMDemuxer(resource));
}
return decoderReader;
}
--- a/dom/media/ogg/OggDecoder.cpp
+++ b/dom/media/ogg/OggDecoder.cpp
@@ -8,30 +8,16 @@
#include "MediaContainerType.h"
#include "MediaDecoderStateMachine.h"
#include "MediaFormatReader.h"
#include "OggDemuxer.h"
#include "OggDecoder.h"
namespace mozilla {
-MediaDecoderStateMachine* OggDecoder::CreateStateMachine()
-{
- RefPtr<OggDemuxer> demuxer = new OggDemuxer(mResource);
- MediaFormatReaderInit init;
- init.mVideoFrameContainer = GetVideoFrameContainer();
- init.mKnowsCompositor = GetCompositor();
- init.mCrashHelper = GetOwner()->CreateGMPCrashHelper();
- init.mFrameStats = mFrameStats;
- mReader = new MediaFormatReader(init, demuxer);
- demuxer->SetChainingEvents(&mReader->TimedMetadataProducer(),
- &mReader->MediaNotSeekableProducer());
- return new MediaDecoderStateMachine(this, mReader);
-}
-
/* static */
bool
OggDecoder::IsSupportedType(const MediaContainerType& aContainerType)
{
if (!MediaPrefs::OggEnabled()) {
return false;
}
--- a/dom/media/ogg/OggDecoder.h
+++ b/dom/media/ogg/OggDecoder.h
@@ -14,18 +14,16 @@ class MediaContainerType;
class OggDecoder : public ChannelMediaDecoder
{
public:
explicit OggDecoder(MediaDecoderInit& aInit)
: ChannelMediaDecoder(aInit)
{}
- MediaDecoderStateMachine* CreateStateMachine() override;
-
// Returns true if aContainerType is an Ogg type that we think we can render
// with an enabled platform decoder backend.
// If provided, codecs are checked for support.
static bool IsSupportedType(const MediaContainerType& aContainerType);
private:
ChannelMediaDecoder* CloneImpl(MediaDecoderInit& aInit) override
{