Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1014)

Unified Diff: Source/core/html/HTMLMediaElement.h

Issue 913133003: Move text track active list management to CueTimeline (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rename to CueTimeline. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/html/HTMLMediaElement.h
diff --git a/Source/core/html/HTMLMediaElement.h b/Source/core/html/HTMLMediaElement.h
index 6f539a0bd30757c50c9e939d57f7547960ee2ceb..f9c1d3cb4855f0a3563d0ae669f926d965a1cb71 100644
--- a/Source/core/html/HTMLMediaElement.h
+++ b/Source/core/html/HTMLMediaElement.h
@@ -30,9 +30,6 @@
#include "core/events/GenericEventQueue.h"
#include "core/html/HTMLElement.h"
#include "core/html/track/TextTrack.h"
-#include "core/html/track/TextTrackCue.h"
-#include "core/html/track/vtt/VTTCue.h"
-#include "platform/PODIntervalTree.h"
#include "platform/Supplementable.h"
#include "platform/graphics/media/MediaPlayer.h"
#include "public/platform/WebMediaPlayerClient.h"
@@ -51,6 +48,7 @@ class AudioSourceProviderClient;
#endif
class AudioTrackList;
class ContentType;
+class CueTimeline;
class Event;
class ExceptionState;
class HTMLSourceElement;
@@ -65,10 +63,6 @@ class TimeRanges;
class URLRegistry;
class VideoTrackList;
-typedef PODIntervalTree<double, TextTrackCue*> CueIntervalTree;
-typedef CueIntervalTree::IntervalType CueInterval;
-typedef Vector<CueInterval> CueList;
-
// FIXME: The inheritance from MediaPlayerClient here should be private inheritance.
// But it can't be until the Chromium WebMediaPlayerClientImpl class is fixed so it
// no longer depends on typecasting a MediaPlayerClient to an HTMLMediaElement.
@@ -178,7 +172,7 @@ public:
PassRefPtrWillBeRawPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState&);
TextTrackList* textTracks();
- CueList currentlyActiveCues() const { return m_currentlyActiveCues; }
+ CueTimeline& cueTimeline();
void addTextTrack(TextTrack*);
void removeTextTrack(TextTrack*);
@@ -210,14 +204,11 @@ public:
};
void configureTextTrackDisplay(VisibilityChangeAssumption);
void updateTextTrackDisplay();
+ double lastSeekTime() const { return m_lastSeekTime; }
void textTrackReadyStateChanged(TextTrack*);
void textTrackKindChanged(TextTrack*);
void textTrackModeChanged(TextTrack*);
- void textTrackAddCues(TextTrack*, const TextTrackCueList*);
- void textTrackRemoveCues(TextTrack*, const TextTrackCueList*);
- void textTrackAddCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>);
- void textTrackRemoveCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>);
// EventTarget function.
// Both Node (via HTMLElement) and ActiveDOMObject define this method, which
@@ -267,6 +258,7 @@ public:
void setController(PassRefPtrWillBeRawPtr<MediaController>); // Resets the MediaGroup and sets the MediaController.
void scheduleEvent(PassRefPtrWillBeRawPtr<Event>);
+ void scheduleTimeupdateEvent(bool periodicEvent);
// Returns the "effective media volume" value as specified in the HTML5 spec.
double effectiveMediaVolume() const;
@@ -305,10 +297,6 @@ protected:
void setControllerInternal(PassRefPtrWillBeRawPtr<MediaController>);
- bool ignoreTrackDisplayUpdateRequests() const { return m_ignoreTrackDisplayUpdate > 0; }
- void beginIgnoringTrackDisplayUpdateRequests();
- void endIgnoringTrackDisplayUpdateRequests();
-
private:
void createMediaPlayer();
@@ -361,7 +349,6 @@ private:
void checkIfSeekNeeded();
void addPlayedRange(double start, double end);
- void scheduleTimeupdateEvent(bool periodicEvent);
void scheduleEvent(const AtomicString& eventName); // FIXME: Rename to scheduleNamedEvent for clarity.
// loading
@@ -396,7 +383,6 @@ private:
void executeDeferredLoad();
void deferredLoadTimerFired(Timer<HTMLMediaElement>*);
- void updateActiveTextTrackCues(double);
HTMLTrackElement* showingTrackWithSameKind(HTMLTrackElement*) const;
void markCaptionAndSubtitleTracksAsUnconfigured();
@@ -559,7 +545,6 @@ private:
bool m_isFinalizing : 1;
bool m_closeMediaSourceWhenFinalizing : 1;
#endif
- double m_lastTextTrackUpdateTime;
bool m_initialPlayWithoutUserGestures : 1;
bool m_autoplayMediaCounted : 1;
@@ -568,10 +553,7 @@ private:
RefPtrWillBeMember<TextTrackList> m_textTracks;
WillBeHeapVector<RefPtrWillBeMember<TextTrack>> m_textTracksWhenResourceSelectionBegan;
- CueIntervalTree m_cueTree;
-
- CueList m_currentlyActiveCues;
- int m_ignoreTrackDisplayUpdate;
+ OwnPtrWillBeMember<CueTimeline> m_cueTimeline;
#if ENABLE(WEB_AUDIO)
// This is a weak reference, since m_audioSourceNode holds a reference to us.
@@ -589,25 +571,6 @@ private:
static URLRegistry* s_mediaStreamRegistry;
};
-#ifndef NDEBUG
-// Template specializations required by PodIntervalTree in debug mode.
-template <>
-struct ValueToString<double> {
- static String string(const double value)
- {
- return String::number(value);
- }
-};
-
-template <>
-struct ValueToString<TextTrackCue*> {
- static String string(TextTrackCue* const& cue)
- {
- return cue->toString();
- }
-};
-#endif
-
inline bool isHTMLMediaElement(const HTMLElement& element)
{
return isHTMLAudioElement(element) || isHTMLVideoElement(element);

Powered by Google App Engine
This is Rietveld 408576698