summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/MediaListener.h
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2011-09-08 11:25:50 -0400
committerDerek Sollenberger <djsollen@google.com>2011-09-08 11:25:50 -0400
commit86772c601f6ccc0e1d0e0eca429cc2a73c6c3207 (patch)
treea440047fdbc9647b83c91ee7df4824b1fccf8b5c /Source/WebCore/platform/graphics/android/MediaListener.h
parent666a074f73aab3617c866ebe204ce841978ba270 (diff)
downloadexternal_webkit-86772c601f6ccc0e1d0e0eca429cc2a73c6c3207.zip
external_webkit-86772c601f6ccc0e1d0e0eca429cc2a73c6c3207.tar.gz
external_webkit-86772c601f6ccc0e1d0e0eca429cc2a73c6c3207.tar.bz2
Add Plugin API for a video framerate callback.
bug: 5239378 Change-Id: I5f7d33302d5a40f58ec12a3c0be63cb51d4ffc75
Diffstat (limited to 'Source/WebCore/platform/graphics/android/MediaListener.h')
-rw-r--r--Source/WebCore/platform/graphics/android/MediaListener.h16
1 files changed, 14 insertions, 2 deletions
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 <gui/SurfaceTexture.h>
+#include <gui/SurfaceTextureClient.h>
#include <jni.h>
#include <JNIUtility.h>
+#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<android::SurfaceTexture>& surfaceTexture,
+ const sp<ANativeWindow>& 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<android::SurfaceTexture> m_surfaceTexture;
+ sp<ANativeWindow> m_nativeWindow;
+ FramerateCallbackProc m_framerateCallback;
};
} // namespace WebCore