[Title] Be fixed. Unable to play accelerated HTML5 video in browser in IA.
[Issue#] TDIS-4849; TSZP-5002
[Problem] No support for Vaapi Sink to play accelerated video playback.
[Cause] Current solution relies on xvimagesink for accelerated video playbac
[Solution] On IA, Vaapi is used to provide the hardware accelerated video
playback. This patch adds support for it, guarded with
USE(ACCELERATED_VIDEO_VAAPI). This is set to true for IA. The pat
also disables blending for video when RGBX visual is used
instead of RGBA. This is also guarded under the same flag.
So there is no change in the default behaviour but only for IA.
The Changes related to vaapi in VideoLayerTizen are based on
initial contribution from Zhao Halley,Kondapally Kalyan.
* H264 -> HW Decoding -> HW Rendering;
* OGV -> SW Decoding -> HW Rendering.
Change-id: I11790303e8eacbce756a7273f3802cc05ea367af
playerPrivate->triggerRepaint(buffer);
}
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
static GstBusSyncReply mediaPlayerPrivateSyncHandler(GstBus* bus, GstMessage* message, MediaPlayerPrivateGStreamer* playerPrivate)
{
// ignore anything but 'prepare-xid' message
m_hasVideo = videoTracks > 0;
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
int width;
int height;
if (gst_video_get_size(m_videoSinkPad.get(), &width, &height)) {
g_return_if_fail(GST_IS_BUFFER(buffer));
gst_buffer_replace(&m_buffer, buffer);
#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER)
-#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) || CPU(X86) || CPU(X86_64)
+#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
if (m_videoSize.isEmpty())
m_videoSize = naturalSize();
m_videoLayer->paintVideoLayer(m_videoSize);
GstPlayFlags flags;
g_object_get(m_playBin.get(), "flags", &flags, NULL);
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
flags = (GstPlayFlags)(flags | GST_PLAY_FLAG_NATIVE_VIDEO);
#endif
if (m_preload == MediaPlayer::Auto) {
#if ENABLE(TIZEN_GSTREAMER_VIDEO)
GstElement* MediaPlayerPrivateGStreamer::createVideoSink()
{
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
m_webkitVideoSink = m_videoLayer->createVideoSink();
m_videoSinkPad = adoptGRef(gst_element_get_static_pad(m_webkitVideoSink, "sink"));
-#else // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#else // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#ifndef GST_API_VERSION_1
m_webkitVideoSink = webkitVideoSinkNew(m_gstGWorld.get());
#else
#endif
m_videoSinkPad = adoptGRef(gst_element_get_static_pad(m_webkitVideoSink, "sink"));
g_signal_connect(m_webkitVideoSink, "repaint-requested", G_CALLBACK(mediaPlayerPrivateRepaintCallback), this);
-#endif // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#ifndef GST_API_VERSION_1
m_videoSinkBin = gst_bin_new("video-sink");
GRefPtr<GstBus> bus = webkitGstPipelineGetBus(GST_PIPELINE(m_playBin.get()));
gst_bus_add_signal_watch(bus.get());
g_signal_connect(bus.get(), "message", G_CALLBACK(mediaPlayerPrivateMessageCallback), this);
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
gst_bus_set_sync_handler(bus.get(), GstBusSyncHandler(mediaPlayerPrivateSyncHandler), this);
#endif
gst_object_unref(bus.get());
return m_videoLayer->platformLayer();
}
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
void MediaPlayerPrivateGStreamer::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& rect)
{
m_videoLayer->paintCurrentFrameInContext(context, rect);
m_videoSize = size;
m_videoLayer->setOverlay(size);
}
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#endif // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER)
#if ENABLE(TIZEN_WEBKIT2_PROXY)
virtual PlatformLayer* platformLayer() const;
void xWindowIdPrepared(GstMessage*);
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
virtual void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#endif // ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER)
#if ENABLE(TIZEN_WEBKIT2_PROXY)
#include "config.h"
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#include "SharedVideoPlatformSurfaceTizen.h"
#include "GraphicsContextPlatformPrivateCairo.h"
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#if ENABLE(TIZEN_CANVAS_GRAPHICS_SURFACE)
+#include "GraphicsSurface.h"
+#endif
+
namespace WebCore {
class VideoPlatformSurface {
int id() const { return m_platformSurface; }
void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
+ bool hasAlpha() { return m_hasAlpha; }
private:
VideoPlatformSurface();
EGLSurface m_eglSurface;
IntSize m_size;
+ bool m_hasAlpha;
};
PassOwnPtr<VideoPlatformSurface> VideoPlatformSurface::create(IntSize size)
, m_eglContext(EGL_NO_CONTEXT)
, m_eglSurface(EGL_NO_SURFACE)
, m_size(IntSize())
+ , m_hasAlpha(true)
{
}
XSync(m_nativeDisplay, false);
- m_platformSurface = XCreatePixmap(m_nativeDisplay, m_nativeWindow, size.width(), size.height(), XDefaultDepth(m_nativeDisplay, DefaultScreen(m_nativeDisplay)));
+ int visualDepth = XDefaultDepth(m_nativeDisplay, DefaultScreen(m_nativeDisplay));
+ m_platformSurface = XCreatePixmap(m_nativeDisplay, m_nativeWindow, size.width(), size.height(), visualDepth);
XFlush(m_nativeDisplay);
+#if USE(ACCELERATED_VIDEO_VAAPI)
+ m_hasAlpha = visualDepth == 32 ? true : false;
+#endif
+
return true;
}
configAttribs[i++] = EGL_BLUE_SIZE;
configAttribs[i++] = 8;
configAttribs[i++] = EGL_ALPHA_SIZE;
- configAttribs[i++] = 8;
+ configAttribs[i++] = m_hasAlpha ? 8 : 0;
configAttribs[i++] = EGL_MATCH_FORMAT_KHR;
configAttribs[i++] = EGL_FORMAT_RGBA_8888_EXACT_KHR;
configAttribs[i++] = EGL_SURFACE_TYPE;
RefPtr<cairo_t> cr = adoptRef(cairo_create(surface.get()));
cairo_set_source_surface(cr.get(), surface.get(), 0, 0);
- cairo_set_source_rgba(cr.get(), 0, 0, 0, 1);
+ int alphaValue = m_hasAlpha ? 1 : 0;
+ cairo_set_source_rgba(cr.get(), 0, 0, 0, alphaValue);
cairo_rectangle(cr.get(), 0, 0, m_size.width(), m_size.height());
cairo_fill(cr.get());
}
, m_listener(0)
, m_platformSurface(VideoPlatformSurface::create(size))
{
+ if (!m_platformSurface)
+ return;
+
registerDamageHandler();
+ m_flags = GraphicsSurface::Is2D | GraphicsSurface::UseLinearFilter;
+ if (m_platformSurface->hasAlpha())
+ m_flags |= GraphicsSurface::Alpha;
+
}
SharedVideoPlatformSurfaceTizen::~SharedVideoPlatformSurfaceTizen()
}
}
+int SharedVideoPlatformSurfaceTizen::graphicsSurfaceFlags() const
+{
+ return m_flags;
+}
+
} // WebCore
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#ifndef SharedVideoPlatformSurfaceTizen_h
#define SharedVideoPlatformSurfaceTizen_h
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#include "IntSize.h"
#include <Ecore.h>
void platformSurfaceUpdated();
void setVideoPlatformSurfaceUpdateListener(VideoPlatformSurfaceUpdateListener* listener);
void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
+ int graphicsSurfaceFlags() const;
private:
SharedVideoPlatformSurfaceTizen(IntSize size);
Ecore_Event_Handler* m_damageHandler;
VideoPlatformSurfaceUpdateListener* m_listener;
OwnPtr<VideoPlatformSurface> m_platformSurface;
+ int m_flags;
};
} // WebCore
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#endif // SharedVideoPlatformSurfaceTizen_h
#include "IntRect.h"
#include "RenderLayerBacking.h"
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#include <gst/interfaces/xoverlay.h>
#include <gst/video/gstvideosink.h>
#include <gst/video/video.h>
#include <cairo-xlib.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
-#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) || CPU(X86) || CPU(X86_64)
+#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
static Display* g_nativeDisplay = 0;
static int g_nativeWindow = 0;
#endif
namespace WebCore {
+#if USE(ACCELERATED_VIDEO_VAAPI)
+ void setVaapiEnv()
+ {
+ static bool envSet = false;
+ if (!envSet) {
+ envSet = true;
+ setenv("PSB_VIDEO_CTEXTURE", "1", true);
+ }
+ }
+#endif
+
VideoLayerTizen::VideoLayerTizen(HTMLMediaElement* media)
: m_media(media)
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
, m_videoSink(0)
#else
, m_platformSurfaceID(0)
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
{
-#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) || CPU(X86) || CPU(X86_64)
+#if !ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
if (!g_nativeDisplay)
g_nativeDisplay = XOpenDisplay(0);
{
syncLayer(0);
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
if (m_platformSurface)
m_platformSurface.clear();
XDestroyWindow(g_nativeDisplay, g_nativeWindow);
g_nativeWindow = 0;
}
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
}
PlatformLayer* VideoLayerTizen::platformLayer() const
}
}
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
static gboolean platformSurfaceUpdateTimeoutCallback(VideoLayerTizen* layer)
{
layer->notifySyncRequired();
GstElement* VideoLayerTizen::createVideoSink()
{
+#if !USE(ACCELERATED_VIDEO_VAAPI)
GstElement* videoSink = gst_element_factory_make("xvimagesink", "xvimagesink");
g_object_set(videoSink, "rotate", 0, NULL);
+#else
+ setVaapiEnv();
+ GstElement* videoSink = gst_element_factory_make("vaapisink", "vaapisink");
+ g_object_set(videoSink, "is-pixmap", 1, NULL);
+#endif
m_videoSink = videoSink;
m_platformSurface->setVideoPlatformSurfaceUpdateListener(this);
gst_x_overlay_set_window_handle(GST_X_OVERLAY(m_videoSink), m_platformSurface->id());
+#if !USE(ACCELERATED_VIDEO_VAAPI)
g_object_set(m_videoSink, "rotate", 0, NULL);
+#else
+ g_object_set(m_videoSink, "is-pixmap", 1, NULL);
+#endif
}
void VideoLayerTizen::paintCurrentFrameInContext(GraphicsContext* context, const IntRect& rect)
m_platformSurface->paintCurrentFrameInContext(context, rect);
}
#else
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && (CPU(X86) || CPU(X86_64))
-bool VideoLayerTizen::swapPlatformSurfaces()
-{
- return true;
-}
-#endif
+
void VideoLayerTizen::paintVideoLayer(IntSize videoSize)
{
if (videoSize.isEmpty())
syncLayer(this);
}
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#if USE(GRAPHICS_SURFACE) || ENABLE(TIZEN_CANVAS_GRAPHICS_SURFACE)
uint64_t VideoLayerTizen::graphicsSurfaceToken() const
{
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
return (m_platformSurface ? m_platformSurface->id() : 0);
#else
return m_platformSurfaceID;
uint32_t VideoLayerTizen::copyToGraphicsSurface()
{
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
return (m_platformSurface ? m_platformSurface->id() : 0);
#else
return m_platformSurfaceID;
int VideoLayerTizen::graphicsSurfaceFlags() const
{
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
- return GraphicsSurface::Is2D | GraphicsSurface::UseLinearFilter | GraphicsSurface::Alpha;
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
+ return m_platformSurface ? m_platformSurface->graphicsSurfaceFlags() : GraphicsSurface::Is2D;
#else
return GraphicsSurface::Is2D;
#endif
#include "HTMLMediaElement.h"
#include "TextureMapperGL.h"
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#include "SharedVideoPlatformSurfaceTizen.h"
#include <gst/gst.h>
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#if ENABLE(TIZEN_CANVAS_GRAPHICS_SURFACE)
#include "GraphicsSurface.h"
#endif
class IntRect;
class VideoLayerTizen : public TextureMapperPlatformLayer
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
, public VideoPlatformSurfaceUpdateListener
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
{
public:
static PassOwnPtr<VideoLayerTizen> create(HTMLMediaElement* media)
virtual void paintToTextureMapper(TextureMapper*, const FloatRect& targetRect, const TransformationMatrix&, float opacity) { }
virtual Image* paintToImage() { return 0; }
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
// TextureMapperPlatformLayer interface
virtual bool swapPlatformSurfaces();
virtual void freePlatformSurface(int);
void setOverlay(IntSize);
void paintCurrentFrameInContext(GraphicsContext*, const IntRect&);
#else
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && (CPU(X86) || CPU(X86_64))
- virtual bool swapPlatformSurfaces();
-#endif
void paintVideoLayer(IntSize);
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
#if USE(GRAPHICS_SURFACE) || ENABLE(TIZEN_CANVAS_GRAPHICS_SURFACE)
virtual uint32_t copyToGraphicsSurface();
VideoLayerTizen(HTMLMediaElement* media);
void syncLayer(VideoLayerTizen* layer);
-#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
GstElement* m_videoSink;
OwnPtr<SharedVideoPlatformSurfaceTizen> m_platformSurface;
OwnPtr<SharedVideoPlatformSurfaceTizen> m_platformSurfaceToBeRemoved;
#else
IntSize m_videoSize;
int m_platformSurfaceID;
-#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE) && !(CPU(X86) || CPU(X86_64))
+#endif // ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
HTMLMediaElement* m_media;
};
// FIXME: Do we really need both SupportsBlending and contentsOpaque??
if (m_canvasFlags & GraphicsSurface::Is2D)
- static_cast<TextureMapperGL*>(textureMapper)->drawTexture(platformGetTextureID(), TextureMapperGL::SupportsBlending, m_size, targetRect, transform, opacity, expandedIntSize(targetRect.size()), true);
+ static_cast<TextureMapperGL*>(textureMapper)->drawTexture(platformGetTextureID(), alpha ? TextureMapperGL::SupportsBlending : 0, m_size, targetRect, transform, opacity,expandedIntSize(targetRect.size()), true);
else
- static_cast<TextureMapperGL*>(textureMapper)->drawTexture(platformGetTextureID(), alpha ? TextureMapperGL::SupportsBlending : 0, m_size, targetRect, transform, opacity, expandedIntSize(targetRect.size()), premultipliedAlpha);
+ static_cast<TextureMapperGL*>(textureMapper)->drawTexture(platformGetTextureID(), alpha ? TextureMapperGL::SupportsBlending : 0, m_size, targetRect, transform, opacity,expandedIntSize(targetRect.size()), premultipliedAlpha);
}
PassRefPtr<GraphicsSurface> GraphicsSurface::platformCreate(const IntSize& size, Flags flags)
void PlatformSurfaceTextureGL::HandleGLError(const char* name)
{
+#if !USE(ACCELERATED_VIDEO_VAAPI)
GLuint errorCode = glGetError();
if (errorCode != GL_NO_ERROR)
TIZEN_LOGE("'%s' returned gl error (0x%x)", name, errorCode);
+#endif
}
};
ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1)
SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1)
ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=1)
+ ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_VIDEO_VAAPI=1)
SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 1)
ELSEIF ("${EFL_TARGET}" STREQUAL "emulator")
MESSAGE("i386 emulator Build Mode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")