| Index: Source/core/html/HTMLMediaElement.h
|
| diff --git a/Source/core/html/HTMLMediaElement.h b/Source/core/html/HTMLMediaElement.h
|
| index 8508fc2d52de60904aa3943c0ad6c87c40492652..4e2806f4fd64311b13b25f0adbeed0c84423dfc2 100644
|
| --- a/Source/core/html/HTMLMediaElement.h
|
| +++ b/Source/core/html/HTMLMediaElement.h
|
| @@ -41,6 +41,7 @@ namespace blink {
|
| class WebContentDecryptionModule;
|
| class WebInbandTextTrack;
|
| class WebLayer;
|
| +class WebMediaPlayer;
|
| }
|
|
|
| namespace WebCore {
|
| @@ -49,6 +50,7 @@ namespace WebCore {
|
| class AudioSourceProvider;
|
| class MediaElementAudioSourceNode;
|
| #endif
|
| +class AudioTrackList;
|
| class ContentType;
|
| class Event;
|
| class ExceptionState;
|
| @@ -63,6 +65,7 @@ class HTMLMediaSource;
|
| class TextTrackList;
|
| class TimeRanges;
|
| class URLRegistry;
|
| +class VideoTrackList;
|
|
|
| typedef PODIntervalTree<double, TextTrackCue*> CueIntervalTree;
|
| typedef CueIntervalTree::IntervalType CueInterval;
|
| @@ -82,6 +85,7 @@ public:
|
| static bool isMediaStreamURL(const String& url);
|
|
|
| MediaPlayer* player() const { return m_player.get(); }
|
| + blink::WebMediaPlayer* webMediaPlayer() const { return m_player ? m_player->webMediaPlayer() : 0; }
|
|
|
| virtual bool isVideo() const = 0;
|
| virtual bool hasVideo() const OVERRIDE { return false; }
|
| @@ -179,6 +183,12 @@ public:
|
|
|
| virtual bool canPlay() const OVERRIDE FINAL;
|
|
|
| + AudioTrackList* audioTracks();
|
| + void didEnabledAudioTrackChange(const AtomicString& audioTrackID, bool enabled);
|
| +
|
| + VideoTrackList* videoTracks();
|
| + void didSelectedVideoTrackChange(const AtomicString& unselectedTrackID, const AtomicString& selectedTrackID);
|
| +
|
| PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState&);
|
| PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, ExceptionState& exceptionState) { return addTextTrack(kind, label, emptyAtom, exceptionState); }
|
| PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, ExceptionState& exceptionState) { return addTextTrack(kind, emptyAtom, emptyAtom, exceptionState); }
|
| @@ -186,17 +196,21 @@ public:
|
| TextTrackList* textTracks();
|
| CueList currentlyActiveCues() const { return m_currentlyActiveCues; }
|
|
|
| - void addTrack(TextTrack*);
|
| - void removeTrack(TextTrack*);
|
| - void removeAllInbandTracks();
|
| + void addTextTrack(TextTrack*);
|
| + void removeTextTrack(TextTrack*, bool fireRemoveTrackEvent);
|
| + void forgetResourceSpecificTracks();
|
| void closeCaptionTracksChanged();
|
| void notifyMediaPlayerOfTextTrackChanges();
|
|
|
| void didAddTrack(HTMLTrackElement*);
|
| void didRemoveTrack(HTMLTrackElement*);
|
|
|
| - virtual void mediaPlayerDidAddTrack(blink::WebInbandTextTrack*) OVERRIDE FINAL;
|
| - virtual void mediaPlayerDidRemoveTrack(blink::WebInbandTextTrack*) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidAddVideoTrack(const AtomicString& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool selected) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidRemoveVideoTrack(const AtomicString& id) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidAddAudioTrack(const AtomicString& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool enabled) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidRemoveAudioTrack(const AtomicString& id) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidAddTextTrack(blink::WebInbandTextTrack*) OVERRIDE FINAL;
|
| + virtual void mediaPlayerDidRemoveTextTrack(blink::WebInbandTextTrack*) OVERRIDE FINAL;
|
| // FIXME: Remove this when WebMediaPlayerClientImpl::loadInternal does not depend on it.
|
| virtual KURL mediaPlayerPosterURL() OVERRIDE { return KURL(); }
|
|
|
| @@ -461,6 +475,16 @@ private:
|
| blink::WebContentDecryptionModule* contentDecryptionModule();
|
| void setMediaKeysInternal(MediaKeys*);
|
|
|
| + // Creates placeholder AudioTrack and/or VideoTrack objects when WebMemediaPlayer objects
|
| + // advertise they have audio and/or video, but don't explicity signal them via
|
| + // mediaPlayerDidAddAudioTrack() and mediaPlayerDidAddVideoTrack().
|
| + // FIXME: Remove this once all WebMediaPlayer implementations properly report their track info.
|
| + void createPlaceholderTracksIfNecessary();
|
| +
|
| + // Sets the selected/enabled tracks if they aren't set before we initially
|
| + // transition to HAVE_METADATA.
|
| + void selectInitialTracksIfNecessary();
|
| +
|
| Timer<HTMLMediaElement> m_loadTimer;
|
| Timer<HTMLMediaElement> m_progressEventTimer;
|
| Timer<HTMLMediaElement> m_playbackProgressTimer;
|
| @@ -546,6 +570,8 @@ private:
|
| bool m_processingPreferenceChange : 1;
|
| double m_lastTextTrackUpdateTime;
|
|
|
| + RefPtr<AudioTrackList> m_audioTracks;
|
| + RefPtr<VideoTrackList> m_videoTracks;
|
| RefPtr<TextTrackList> m_textTracks;
|
| Vector<RefPtr<TextTrack> > m_textTracksWhenResourceSelectionBegan;
|
|
|
|
|