-
commit-queue@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=78398 This upstreams the abstraction used on Android for hardware video decoding with the compositor. Most of the interfaces are kept generic and the core of this change is to allow texturing from an external texture while receiving notifications (on the compositor thread if we are running it) when there are new frames to be displayed. Patch by Daniel Sievers <sievers@chromium.org> on 2012-02-23 Reviewed by James Robinson. Source/WebCore: * platform/graphics/chromium/Extensions3DChromium.h: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawSingleTextureVideoQuad): (WebCore::LayerRendererChromium::drawRGBA): (WebCore::LayerRendererChromium::drawNativeTexture): (WebCore): (WebCore::LayerRendererChromium::drawStreamTexture): (WebCore::LayerRendererChromium::drawVideoQuad): (WebCore::LayerRendererChromium::streamTextureLayerProgram): (WebCore::LayerRendererChromium::cleanupSharedObjects): * platform/graphics/chromium/LayerRendererChromium.h: (LayerRendererChromium): * platform/graphics/chromium/ShaderChromium.cpp: (WebCore::VertexShaderVideoTransform::VertexShaderVideoTransform): (WebCore): (WebCore::VertexShaderVideoTransform::init): (WebCore::VertexShaderVideoTransform::getShaderString): (WebCore::FragmentShaderOESImageExternal::init): (WebCore::FragmentShaderOESImageExternal::getShaderString): * platform/graphics/chromium/ShaderChromium.h: (VertexShaderVideoTransform): (WebCore::VertexShaderVideoTransform::matrixLocation): (WebCore::VertexShaderVideoTransform::texTransformLocation): (WebCore::VertexShaderVideoTransform::texMatrixLocation): (WebCore): (FragmentShaderOESImageExternal): * platform/graphics/chromium/VideoFrameChromium.h: * platform/graphics/chromium/VideoFrameProvider.h: (Client): (VideoFrameProvider): * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp: (WebCore::CCVideoDrawQuad::CCVideoDrawQuad): * platform/graphics/chromium/cc/CCVideoDrawQuad.h: (WebCore::CCVideoDrawQuad::matrix): (CCVideoDrawQuad): (WebCore::CCVideoDrawQuad::setMatrix): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore): (WebCore::CCVideoLayerImpl::CCVideoLayerImpl): (WebCore::convertVFCFormatToGC3DFormat): (WebCore::CCVideoLayerImpl::appendQuads): (WebCore::CCVideoLayerImpl::didReceiveFrame): (WebCore::CCVideoLayerImpl::didUpdateMatrix): (WebCore::CCVideoLayerImpl::setNeedsRedraw): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (WebCore): (CCVideoLayerImpl): Source/WebKit/chromium: * WebKit.gyp: * public/WebMediaPlayer.h: (WebKit): (WebKit::WebMediaPlayer::setStreamTextureClient): (WebMediaPlayer): * public/WebStreamTextureClient.h: Copied from Source/WebKit/chromium/public/WebVideoFrame.h. (WebKit): (WebStreamTextureClient): (WebKit::WebStreamTextureClient::~WebStreamTextureClient): * public/WebVideoFrame.h: * src/WebMediaPlayerClientImpl.cpp: (WebKit::WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl): (WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient): (WebKit::WebMediaPlayerClientImpl::didReceiveFrame): (WebKit): (WebKit::WebMediaPlayerClientImpl::didUpdateMatrix): * src/WebMediaPlayerClientImpl.h: (WebMediaPlayerClientImpl): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
11e3d07d