Bug 1390748 - Remove OggDecoder::CreateStateMachine(). r=jwwang draft
authorChris Pearce <cpearce@mozilla.com>
Tue, 15 Aug 2017 16:21:35 +1200
changeset 648057 5ce2fe9136dcd32f62f7de0e85523cdcda8fa206
parent 648056 acfd7f5161744355769eee2a8e9ed8a6033c007c
child 648058 5a9932bf98992e13ba850dd640d2623ad8bcccbb
push id74604
push userbmo:cpearce@mozilla.com
push dateThu, 17 Aug 2017 06:10:02 +0000
reviewersjwwang
bugs1390748
milestone57.0a1
Bug 1390748 - Remove OggDecoder::CreateStateMachine(). r=jwwang MozReview-Commit-ID: 2JgZ2Ppv6as
dom/media/DecoderTraits.cpp
dom/media/ogg/OggDecoder.cpp
dom/media/ogg/OggDecoder.h
--- 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
   {