2014-03-27  Sharath Kamath  <s.kamath@samsung.com>

        Move the HTMLVideoElement data extraction to WebCLHTMLInterop interface.

        Issue #154

        Reviewed by Antonio.

        Moving the extraction code to WebCLHTMLInterop from WebCLContext.
        Also removing the ImageBuffer caching mechanism.
        Will adopt the same in future commits.

        Conformance test suite under extension/WEBCL_html_video/*

        * Modules/webcl/WebCLContext.cpp:
        (WebCore::WebCLContext::WebCLContext):
        (WebCore::WebCLContext::createImage):
        * Modules/webcl/WebCLContext.h:
        * Modules/webcl/WebCLExtensionsAccessor.cpp:
        (WebCore::WebCLExtensionsAccessor<T>::enableExtension):
        (WebCore::WebCLExtensionsAccessor<T>::getSupportedExtensions):
        * Modules/webcl/WebCLHTMLInterop.cpp:
        (WebCore::WebCLHTMLInterop::extractDataFromVideo):
        (WebCore::WebCLHTMLInterop::videoFrameToImage):
        * Modules/webcl/WebCLHTMLInterop.h:
2014-04-01  Sharath Kamath  <s.kamath@samsung.com>

        Cache the ImageBuffers created by videoFrameToImage().

        Issue #154

        Reviewed by Antonio.

        Currently we create new ImageBuffer object for each call of videoFrameToImage(),
        instead like WebGL we can cache the ImageBuffer (Upto 4 buffers) in the WebCLHTMLInterop
        interface.
        This will need WebCLHTMLInterop object to be cached in WebCLContext, and multiple calls
        to videoFrameToImage() on a context, will not recreate a ImageBuffer object.

        * Modules/webcl/WebCLContext.cpp:
        (WebCore::WebCLContext::WebCLContext):
        (WebCore::WebCLContext::createImage):
        * Modules/webcl/WebCLContext.h:
        * Modules/webcl/WebCLHTMLInterop.cpp:
        (WebCore::WebCLHTMLInterop::videoFrameToImage):
        (WebCore::WebCLHTMLInterop::WebCLHTMLInterop):
        (WebCore::WebCLHTMLInterop::LRUImageBufferCache::LRUImageBufferCache):
        (WebCore::WebCLHTMLInterop::LRUImageBufferCache::bubbleToFront):
        (WebCore::WebCLHTMLInterop::LRUImageBufferCache::imageBuffer):
        * Modules/webcl/WebCLHTMLInterop.h: