summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/WebMediaPlayerClientImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/WebMediaPlayerClientImpl.h')
-rw-r--r--WebKit/chromium/src/WebMediaPlayerClientImpl.h40
1 files changed, 35 insertions, 5 deletions
diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
index 4adbed2..ca7c43c 100644
--- a/WebKit/chromium/src/WebMediaPlayerClientImpl.h
+++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
@@ -34,23 +34,37 @@
#if ENABLE(VIDEO)
#include "MediaPlayerPrivate.h"
+#include "VideoFrameChromium.h"
+#include "VideoFrameProvider.h"
+#include "VideoLayerChromium.h"
#include "WebMediaPlayerClient.h"
#include <wtf/OwnPtr.h>
namespace WebKit {
+class WebMediaElement;
class WebMediaPlayer;
// This class serves as a bridge between WebCore::MediaPlayer and
// WebKit::WebMediaPlayer.
-class WebMediaPlayerClientImpl : public WebMediaPlayerClient
- , public WebCore::MediaPlayerPrivateInterface {
+class WebMediaPlayerClientImpl : public WebCore::MediaPlayerPrivateInterface
+#if USE(ACCELERATED_COMPOSITING)
+ , public WebCore::VideoFrameProvider
+#endif
+ , public WebMediaPlayerClient {
+
public:
static bool isEnabled();
static void setIsEnabled(bool);
static void registerSelf(WebCore::MediaEngineRegistrar);
+ static WebMediaPlayerClientImpl* fromMediaElement(const WebMediaElement* element);
+
+ // Returns the encapsulated WebKit::WebMediaPlayer.
+ WebMediaPlayer* mediaPlayer() const;
+
// WebMediaPlayerClient methods:
+ virtual ~WebMediaPlayerClientImpl();
virtual void networkStateChanged();
virtual void readyStateChanged();
virtual void volumeChanged(float);
@@ -61,10 +75,15 @@ public:
virtual void rateChanged();
virtual void sizeChanged();
virtual void sawUnsupportedTracks();
+ virtual float volume() const;
// MediaPlayerPrivateInterface methods:
- virtual void load(const WebCore::String& url);
+ virtual void load(const WTF::String& url);
virtual void cancelLoad();
+#if USE(ACCELERATED_COMPOSITING)
+ virtual WebCore::PlatformLayer* platformLayer() const;
+#endif
+ virtual WebCore::PlatformMedia platformMedia() const;
virtual void play();
virtual void pause();
virtual bool supportsFullscreen() const;
@@ -94,17 +113,28 @@ public:
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&);
virtual bool hasSingleSecurityOrigin() const;
virtual WebCore::MediaPlayer::MovieLoadType movieLoadType() const;
+#if USE(ACCELERATED_COMPOSITING)
+ virtual bool supportsAcceleratedRendering() const;
+
+ // VideoFrameProvider methods:
+ virtual WebCore::VideoFrameChromium* getCurrentFrame();
+ virtual void putCurrentFrame(WebCore::VideoFrameChromium*);
+#endif
private:
WebMediaPlayerClientImpl();
static WebCore::MediaPlayerPrivateInterface* create(WebCore::MediaPlayer*);
- static void getSupportedTypes(WTF::HashSet<WebCore::String>&);
+ static void getSupportedTypes(WTF::HashSet<WTF::String>&);
static WebCore::MediaPlayer::SupportsType supportsType(
- const WebCore::String& type, const WebCore::String& codecs);
+ const WTF::String& type, const WTF::String& codecs);
WebCore::MediaPlayer* m_mediaPlayer;
OwnPtr<WebMediaPlayer> m_webMediaPlayer;
+#if USE(ACCELERATED_COMPOSITING)
+ RefPtr<WebCore::VideoLayerChromium> m_videoLayer;
+ bool m_supportsAcceleratedCompositing;
+#endif
static bool m_isEnabled;
};