summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLMediaElement.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLMediaElement.h')
-rw-r--r--WebCore/html/HTMLMediaElement.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/WebCore/html/HTMLMediaElement.h b/WebCore/html/HTMLMediaElement.h
index ab0ab11..65c542b 100644
--- a/WebCore/html/HTMLMediaElement.h
+++ b/WebCore/html/HTMLMediaElement.h
@@ -39,6 +39,7 @@
namespace WebCore {
class Event;
+class HTMLSourceElement;
class MediaError;
class KURL;
class TimeRanges;
@@ -51,6 +52,7 @@ public:
bool checkDTD(const Node* newChild);
void attributeChanged(Attribute*, bool preserveDecls);
+ void parseMappedAttribute(MappedAttribute *);
virtual bool rendererIsNeeded(RenderStyle*);
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
@@ -84,9 +86,11 @@ public:
enum NetworkState { NETWORK_EMPTY, NETWORK_IDLE, NETWORK_LOADING, NETWORK_LOADED, NETWORK_NO_SOURCE };
NetworkState networkState() const;
+ bool autobuffer() const;
+ void setAutobuffer(bool);
+
PassRefPtr<TimeRanges> buffered() const;
void load(ExceptionCode&);
-
String canPlayType(const String& mimeType) const;
// ready state
@@ -97,6 +101,7 @@ public:
// playback state
float currentTime() const;
void setCurrentTime(float, ExceptionCode&);
+ float startTime() const;
float duration() const;
bool paused() const;
float defaultPlaybackRate() const;
@@ -154,6 +159,7 @@ private: // MediaPlayerObserver
virtual void mediaPlayerDurationChanged(MediaPlayer*);
virtual void mediaPlayerRateChanged(MediaPlayer*);
virtual void mediaPlayerSizeChanged(MediaPlayer*);
+ virtual void mediaPlayerSawUnsupportedTracks(MediaPlayer*);
private:
void loadTimerFired(Timer<HTMLMediaElement>*);
@@ -174,13 +180,17 @@ private:
// loading
void selectMediaResource();
- void loadResource(String url, ContentType& contentType);
+ void loadResource(const KURL&, ContentType&);
void loadNextSourceChild();
void userCancelledLoad();
- String nextSourceChild(ContentType* contentType = 0);
bool havePotentialSourceChild();
void noneSupported();
void mediaEngineError(PassRefPtr<MediaError> err);
+ void cancelPendingEventsAndCallbacks();
+
+ enum InvalidSourceAction { DoNothing, Complain };
+ bool isSafeToLoadURL(const KURL&, InvalidSourceAction);
+ KURL selectNextSourceChild(ContentType*, InvalidSourceAction);
// These "internal" functions do not check user gesture restrictions.
void loadInternal();
@@ -214,6 +224,7 @@ protected:
Timer<HTMLMediaElement> m_progressEventTimer;
Timer<HTMLMediaElement> m_playbackProgressTimer;
Vector<RefPtr<Event> > m_pendingEvents;
+ RefPtr<TimeRanges> m_playedTimeRanges;
float m_playbackRate;
float m_defaultPlaybackRate;
@@ -224,7 +235,7 @@ protected:
RefPtr<MediaError> m_error;
float m_volume;
- float m_currentTimeDuringSeek;
+ float m_lastSeekTime;
unsigned m_previousProgress;
double m_previousProgressTime;
@@ -238,12 +249,14 @@ protected:
// loading state
enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElement };
LoadState m_loadState;
- Node *m_currentSourceNode;
+ HTMLSourceElement *m_currentSourceNode;
OwnPtr<MediaPlayer> m_player;
BehaviorRestrictions m_restrictions;
+ bool m_playing;
+
// counter incremented while processing a callback from the media player, so we can avoid
// calling the media engine recursively
int m_processingMediaPlayerCallback;