From 86772c601f6ccc0e1d0e0eca429cc2a73c6c3207 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Thu, 8 Sep 2011 11:25:50 -0400 Subject: Add Plugin API for a video framerate callback. bug: 5239378 Change-Id: I5f7d33302d5a40f58ec12a3c0be63cb51d4ffc75 --- Source/WebCore/platform/graphics/android/MediaListener.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'Source/WebCore/platform/graphics/android/MediaListener.h') diff --git a/Source/WebCore/platform/graphics/android/MediaListener.h b/Source/WebCore/platform/graphics/android/MediaListener.h index 0a85574..5fcbbb2 100644 --- a/Source/WebCore/platform/graphics/android/MediaListener.h +++ b/Source/WebCore/platform/graphics/android/MediaListener.h @@ -20,8 +20,10 @@ #if USE(ACCELERATED_COMPOSITING) #include +#include #include #include +#include "MediaTexture.h" #include "WebCoreJni.h" #ifdef DEBUG @@ -44,10 +46,15 @@ namespace WebCore { class MediaListener : public android::SurfaceTexture::FrameAvailableListener { public: - MediaListener(jobject weakWebViewRef) + MediaListener(jobject weakWebViewRef, + const sp& surfaceTexture, + const sp& nativeWindow) : m_weakWebViewRef(weakWebViewRef) , m_postInvalMethod(0) , m_frameAvailable(false) + , m_surfaceTexture(surfaceTexture) + , m_nativeWindow(nativeWindow) + , m_framerateCallback(0) { if (!m_weakWebViewRef) return; @@ -75,15 +82,20 @@ public: if (!m_frameAvailable) { m_frameAvailable = true; } + if (m_framerateCallback) + m_framerateCallback(m_nativeWindow.get(), m_surfaceTexture->getTimestamp()); } - void resetFrameAvailable() { m_frameAvailable = false; } bool isFrameAvailable() { return m_frameAvailable; } + void setFramerateCallback(FramerateCallbackProc callback) { m_framerateCallback = callback; } private: jobject m_weakWebViewRef; jmethodID m_postInvalMethod; bool m_frameAvailable; + sp m_surfaceTexture; + sp m_nativeWindow; + FramerateCallbackProc m_framerateCallback; }; } // namespace WebCore -- cgit v1.1