Rename pageCache() to PageCache::shared() and return a reference
[WebKit-https.git] / Source / WebCore / Modules / mediasource / MediaSource.h
index 1d232f4..bec2c1b 100644 (file)
@@ -65,23 +65,29 @@ public:
     void removedFromRegistry();
     void openIfInEndedState();
     bool isOpen() const;
+    bool isClosed() const;
+    bool isEnded() const;
     void sourceBufferDidChangeAcitveState(SourceBuffer*, bool);
     void streamEndedWithError(const AtomicString& error, ExceptionCode&);
 
     // MediaSourcePrivateClient
-    virtual void setPrivateAndOpen(PassRef<MediaSourcePrivate>) override;
-    virtual double duration() const override;
+    virtual void setPrivateAndOpen(Ref<MediaSourcePrivate>&&) override;
+    virtual MediaTime duration() const override;
     virtual std::unique_ptr<PlatformTimeRanges> buffered() const override;
+    virtual void seekToTime(const MediaTime&) override;
 
     bool attachToElement(HTMLMediaElement*);
     void close();
-    bool isClosed() const;
     void monitorSourceBuffers();
+    bool isSeeking() const { return m_pendingSeekTime.isValid(); }
+    void completeSeek();
 
     void setDuration(double, ExceptionCode&);
-    double currentTime() const;
+    void setDurationInternal(const MediaTime&);
+    MediaTime currentTime() const;
     const AtomicString& readyState() const { return m_readyState; }
     void setReadyState(const AtomicString&);
+    void endOfStream(ExceptionCode&);
     void endOfStream(const AtomicString& error, ExceptionCode&);
 
     HTMLMediaElement* mediaElement() const { return m_mediaElement; }
@@ -112,19 +118,25 @@ public:
 protected:
     explicit MediaSource(ScriptExecutionContext&);
 
+    virtual const char* activeDOMObjectName() const override { return "MediaSource"; }
+
     void onReadyStateChange(const AtomicString& oldState, const AtomicString& newState);
-    Vector<RefPtr<TimeRanges>> activeRanges() const;
+    Vector<PlatformTimeRanges> activeRanges() const;
 
     RefPtr<SourceBufferPrivate> createSourceBufferPrivate(const ContentType&, ExceptionCode&);
     void scheduleEvent(const AtomicString& eventName);
     GenericEventQueue& asyncEventQueue() { return m_asyncEventQueue; }
 
+    void regenerateActiveSourceBuffers();
+
     static URLRegistry* s_registry;
 
     RefPtr<MediaSourcePrivate> m_private;
     RefPtr<SourceBufferList> m_sourceBuffers;
     RefPtr<SourceBufferList> m_activeSourceBuffers;
     HTMLMediaElement* m_mediaElement;
+    MediaTime m_duration;
+    MediaTime m_pendingSeekTime;
     AtomicString m_readyState;
     GenericEventQueue m_asyncEventQueue;
 };