Enable gstreamer-1.0 support 70/3570/1
authorRusty Lynch <rusty.lynch@intel.com>
Sat, 18 May 2013 23:20:32 +0000 (16:20 -0700)
committerRusty Lynch <rusty.lynch@intel.com>
Sun, 19 May 2013 01:22:21 +0000 (18:22 -0700)
12 files changed:
Source/WebCore/PlatformEfl.cmake
Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp
Source/WebCore/platform/graphics/gstreamer/tizen/VideoLayerTizen.cpp
Source/cmake/FindGStreamer.cmake
Source/cmake/OptionsEfl.cmake
Source/cmake/OptionsTizen.cmake
Source/cmake/WebKitFeatures.cmake
Source/cmakeconfig.h.cmake
Tools/MiniBrowser/efl/CMakeLists.txt
packaging/webkit2-efl.spec

index 0e1633c..fc0a07c 100755 (executable)
@@ -426,27 +426,46 @@ LIST(APPEND WebCore_INCLUDE_DIRECTORIES
 )
 
 IF (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
-  LIST(APPEND WebCore_INCLUDE_DIRECTORIES
-    "${WEBCORE_DIR}/platform/graphics/gstreamer"
+       IF(NOT GST_API_VERSION_1)
+               LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+               "${WEBCORE_DIR}/platform/graphics/gstreamer"
+               ${GSTREAMER_INCLUDE_DIRS}
+                       ${GSTREAMER_BASE_INCLUDE_DIRS}
+               ${GSTREAMER_APP_INCLUDE_DIRS}
+               ${GSTREAMER_INTERFACES_INCLUDE_DIRS}
+               ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+               )
+       ELSE()
+               LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+                       "${WEBCORE_DIR}/platform/graphics/gstreamer"
+                       ${GSTREAMER_INCLUDE_DIRS}
+                       ${GSTREAMER_BASE_INCLUDE_DIRS}
+                       ${GSTREAMER_APP_INCLUDE_DIRS}
+                       ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+               )
+       ENDIF()
 
-    ${GSTREAMER_INCLUDE_DIRS}
-    ${GSTREAMER_BASE_INCLUDE_DIRS}
-    ${GSTREAMER_APP_INCLUDE_DIRS}
-    ${GSTREAMER_INTERFACES_INCLUDE_DIRS}
-    ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
-  )
   LIST(APPEND WebCore_SOURCES
     platform/graphics/gstreamer/GRefPtrGStreamer.cpp
     platform/graphics/gstreamer/GStreamerUtilities.cpp
     platform/graphics/gstreamer/GStreamerVersioning.cpp
   )
-  LIST(APPEND WebCore_LIBRARIES
-    ${GSTREAMER_LIBRARIES}
-    ${GSTREAMER_BASE_LIBRARIES}
-    ${GSTREAMER_APP_LIBRARIES}
-    ${GSTREAMER_INTERFACES_LIBRARIES}
-    ${GSTREAMER_PBUTILS_LIBRARIES}
-  )
+       IF(GST_API_VERSION_1)
+               LIST(APPEND WebCore_LIBRARIES
+                       ${GSTREAMER_LIBRARIES}
+                       ${GSTREAMER_BASE_LIBRARIES}
+                       ${GSTREAMER_APP_LIBRARIES}
+                       ${GSTREAMER_PBUTILS_LIBRARIES}
+               )
+       ELSE()  
+               LIST(APPEND WebCore_LIBRARIES
+                       ${GSTREAMER_LIBRARIES}
+                       ${GSTREAMER_BASE_LIBRARIES}
+                       ${GSTREAMER_APP_LIBRARIES}
+                       ${GSTREAMER_INTERFACES_LIBRARIES}
+                       ${GSTREAMER_PBUTILS_LIBRARIES}
+               )
+       ENDIF()
 ENDIF ()
 
 IF (ENABLE_VIDEO)
index a45dd23..1817c77 100755 (executable)
@@ -207,7 +207,11 @@ void AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady(Gst
 #if ENABLE(TIZEN_WEB_AUDIO)
     GValue value;
     g_value_set_boolean(&value, true);
+#ifndef GST_API_VERSION_1
     gst_child_proxy_set_property(GST_OBJECT(audioSink.get()), "close-handle-on-prepare", &value);
+#else
+    gst_child_proxy_set_property(GST_CHILD_PROXY(audioSink.get()), "close-handle-on-prepare", &value);
+#endif
 #endif
 
     GstElement* audioConvert = gst_element_factory_make("audioconvert", 0);
index a5e098c..4576afb 100755 (executable)
@@ -225,10 +225,19 @@ static void mediaPlayerPrivateRepaintCallback(WebKitVideoSink*, GstBuffer *buffe
 #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)
 {
+#ifdef GST_API_VERSION_1
+    const GstStructure *structure;
+    structure = gst_message_get_structure (message);
+#endif
+
     // ignore anything but 'prepare-xid' message
     if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_ELEMENT)
         return GST_BUS_PASS;
+#ifdef GST_API_VERSION_1
+    if (!gst_structure_has_name (structure, "prepare-xid"))
+#else
     if (!gst_structure_has_name (message->structure, "prepare-xid"))
+#endif
         return GST_BUS_PASS;
 
     playerPrivate->xWindowIdPrepared(message);
@@ -809,24 +818,22 @@ void MediaPlayerPrivateGStreamer::notifyPlayerOfVideo()
 
     m_hasVideo = videoTracks > 0;
 
-#if ENABLE(TIZEN_GSTREAMER_VIDEO)
-    int width, height;
+#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
+#ifndef GST_API_VERSION_1
+    int width;
+    int height;
     if (gst_video_get_size(m_videoSinkPad.get(), &width, &height)) {
         IntSize size(width, height);
         if (m_videoSize != size) {
             m_videoSize = IntSize();
-#if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) && ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
             m_videoLayer->setOverlay(naturalSize());
-#endif
         }
     }
-
-    m_player->mediaPlayerClient()->mediaPlayerEngineUpdated(m_player);
-#else // ENABLE(TIZEN_GSTREAMER_VIDEO)
+#endif
+#endif
     m_videoSize = IntSize();
 
     m_player->mediaPlayerClient()->mediaPlayerEngineUpdated(m_player);
-#endif
 }
 
 void MediaPlayerPrivateGStreamer::audioChanged()
@@ -2260,8 +2267,12 @@ void MediaPlayerPrivateGStreamer::createGSTPlayBin()
     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)
+#ifdef GST_API_VERSION_1
+       gst_bus_set_sync_handler(bus.get(), GstBusSyncHandler(mediaPlayerPrivateSyncHandler), this, NULL);
+#else
     gst_bus_set_sync_handler(bus.get(), GstBusSyncHandler(mediaPlayerPrivateSyncHandler), this);
 #endif
+#endif
     gst_object_unref(bus.get());
 
     g_object_set(m_playBin.get(), "mute", m_player->muted(), NULL);
@@ -2371,12 +2382,19 @@ IntSize MediaPlayerPrivateGStreamer::scaleHDVideoToDisplaySize(int videoWidth, i
 #endif
 void MediaPlayerPrivateGStreamer::xWindowIdPrepared(GstMessage* message)
 {
-    // It is called in streaming thread.
-    // It should be used only to set window handle to video sink.
 
-    int videoWidth, videoHeight;
+#ifdef GST_API_VERSION_1
+       const GstStructure *structure;
+       structure = gst_message_get_structure (message);
+#endif
+   int videoWidth, videoHeight;
+#ifdef GST_API_VERSION_1
+    gst_structure_get_int(structure, "video-width", &videoWidth);
+    gst_structure_get_int(structure, "video-height", &videoHeight);
+#else
     gst_structure_get_int(message->structure, "video-width", &videoWidth);
     gst_structure_get_int(message->structure, "video-height", &videoHeight);
+#endif
 
 #if ENABLE(TIZEN_DLOG_SUPPORT)
     TIZEN_LOGI("videoWidth: %d, videoHeight: %d", videoWidth, videoHeight);
@@ -2384,9 +2402,13 @@ void MediaPlayerPrivateGStreamer::xWindowIdPrepared(GstMessage* message)
 
 #if USE(ACCELERATED_VIDEO_VAAPI)
     int displayWidth, displayHeight;
+#ifdef GST_API_VERSION_1
+    gst_structure_get_int(structure, "display-width", &displayWidth);
+    gst_structure_get_int(structure, "display-height", &displayHeight);
+#else
     gst_structure_get_int(message->structure, "display-width", &displayWidth);
     gst_structure_get_int(message->structure, "display-height", &displayHeight);
-
+#endif
     m_displaySize = IntSize(displayWidth, displayHeight);
     m_videoSize = scaleHDVideoToDisplaySize(videoWidth, videoHeight, displayWidth, displayHeight);
 #else
index b0fa052..3c32ff5 100644 (file)
@@ -395,6 +395,7 @@ webkit_video_sink_event(GstBaseSink* base_sink, GstEvent* event)
     const GstStructure* structure = gst_event_get_structure(event);
     switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_CUSTOM_DOWNSTREAM_OOB:
+#ifndef GST_API_VERSION_1
         if (structure) {
             const GValue* dataAddress = gst_structure_get_value(structure, "data-addr");
             priv->addr = g_value_get_uint(dataAddress);
@@ -409,6 +410,20 @@ webkit_video_sink_event(GstBaseSink* base_sink, GstEvent* event)
             g_signal_emit(sink, webkitVideoSinkSignals[IGNORE_REQUESTED], 0, buf);
             gst_buffer_unref(buf);
         }
+#else
+               if (structure) {
+                       const GValue* dataAddress = gst_structure_get_value(structure, "data-addr");
+                       priv->addr = g_value_get_uint(dataAddress);
+                       GST_DEBUG_OBJECT(sink, "%d", priv->addr);
+                       gchar *addr = g_strdup_printf("ADDR %d", priv->addr);
+                       GstBuffer *buf = gst_buffer_new_allocate(NULL,sizeof(addr),NULL);
+                       gst_buffer_fill (buf,0,addr,sizeof(addr)); 
+                       GST_DEBUG_OBJECT(sink, "%s", addr);
+
+            g_signal_emit(sink, webkitVideoSinkSignals[IGNORE_REQUESTED], 0, buf);
+            gst_buffer_unref(buf);
+        }
+#endif
     break;
     default:
         GST_LOG_OBJECT(sink, "let base class handle event");
@@ -468,7 +483,11 @@ static void webkit_video_sink_class_init(WebKitVideoSinkClass* klass)
             0, // Class offset
             0, // Accumulator
             0, // Accumulator data
+#ifndef GST_API_VERSION_1
             webkitVideoSinkMarshalVoidAndMiniObject,
+#else
+            g_cclosure_marshal_generic,
+#endif
             G_TYPE_NONE, // Return type
             1, // Only one parameter
             GST_TYPE_BUFFER);
index 2cb658c..37a20de 100644 (file)
 #include "RenderLayerBacking.h"
 
 #if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE)
+#ifndef GST_API_VERSION_1
 #include <gst/interfaces/xoverlay.h>
+#else
+#include <gst/video/videooverlay.h>
+#endif
 #include <gst/video/gstvideosink.h>
 #include <gst/video/video.h>
 #else
@@ -183,7 +187,11 @@ void VideoLayerTizen::setOverlay(IntSize size)
     if (m_platformSurfaceToBeRemoved)
         m_platformSurface->copySurface(m_platformSurfaceToBeRemoved.get(), SharedVideoPlatformSurfaceTizen::FitToWidth);
 
-    gst_x_overlay_set_window_handle(GST_X_OVERLAY(m_videoSink), m_platformSurface->id());
+#ifdef GST_API_VERSION_1
+    gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_platformSurface->id());
+#else
+       gst_x_overlay_set_window_handle(GST_X_OVERLAY(m_videoSink), m_platformSurface->id());
+#endif
 #if !USE(ACCELERATED_VIDEO_VAAPI)
     g_object_set(m_videoSink, "rotate", 0, NULL);
 #else
index 542ebac..17171c6 100644 (file)
@@ -60,11 +60,19 @@ MACRO(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _librar
     # FIXME: The QUIET keyword can be used once we require CMake 2.8.2.
     PKG_CHECK_MODULES(PC_${_component_prefix} ${_pkgconfig_name})
 
-    FIND_PATH(${_component_prefix}_INCLUDE_DIRS
-        NAMES ${_header}
-        HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
-        PATH_SUFFIXES gstreamer-0.10
-    )
+       IF(GST_API_VERSION_1)
+           FIND_PATH(${_component_prefix}_INCLUDE_DIRS
+               NAMES ${_header}
+               HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
+               PATH_SUFFIXES gstreamer-1.0
+           )
+       ELSE()
+       FIND_PATH(${_component_prefix}_INCLUDE_DIRS
+            NAMES ${_header}
+        HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
+        PATH_SUFFIXES gstreamer-0.10
+       )
+       ENDIF()
 
     FIND_LIBRARY(${_component_prefix}_LIBRARIES
         NAMES ${_library}
@@ -77,8 +85,13 @@ ENDMACRO()
 # ------------------------
 
 # 1.1. Find headers and libraries
-FIND_GSTREAMER_COMPONENT(GSTREAMER gstreamer-0.10 gst/gst.h gstreamer-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_BASE gstreamer-base-0.10 gst/gst.h gstbase-0.10)
+IF(GST_API_VERSION_1)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER gstreamer-1.0 gst/gst.h gstreamer-1.0)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_BASE gstreamer-base-1.0 gst/gst.h gstbase-1.0)
+ELSE()
+       FIND_GSTREAMER_COMPONENT(GSTREAMER gstreamer-0.10 gst/gst.h gstreamer-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_BASE gstreamer-base-0.10 gst/gst.h gstbase-0.10)
+ENDIF()
 
 # 1.2. Check GStreamer version
 IF (GSTREAMER_INCLUDE_DIRS)
@@ -109,12 +122,20 @@ ENDIF ()
 # 2. Find GStreamer plugins
 # -------------------------
 
-FIND_GSTREAMER_COMPONENT(GSTREAMER_APP gstreamer-app-0.10 gst/app/gstappsink.h gstapp-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_AUDIO gstreamer-audio-0.10 gst/audio/audio.h gstaudio-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_FFT gstreamer-fft-0.10 gst/fft/gstfft.h gstfft-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_INTERFACES gstreamer-interfaces-0.10 gst/interfaces/mixer.h gstinterfaces-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_PBUTILS gstreamer-pbutils-0.10 gst/pbutils/pbutils.h gstpbutils-0.10)
-FIND_GSTREAMER_COMPONENT(GSTREAMER_VIDEO gstreamer-video-0.10 gst/video/video.h gstvideo-0.10)
+IF(GST_API_VERSION_1)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_APP gstreamer-app-1.0 gst/app/gstappsink.h gstapp-1.0)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_AUDIO gstreamer-audio-1.0 gst/audio/audio.h gstaudio-1.0)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_FFT gstreamer-fft-1.0 gst/fft/gstfft.h gstfft-1.0)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_PBUTILS gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gstpbutils-1.0)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_VIDEO gstreamer-video-1.0 gst/video/video.h gstvideo-1.0)
+ELSE()
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_APP gstreamer-app-0.10 gst/app/gstappsink.h gstapp-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_AUDIO gstreamer-audio-0.10 gst/audio/audio.h gstaudio-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_FFT gstreamer-fft-0.10 gst/fft/gstfft.h gstfft-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_INTERFACES gstreamer-interfaces-0.10 gst/interfaces/mixer.h gstinterfaces-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_PBUTILS gstreamer-pbutils-0.10 gst/pbutils/pbutils.h gstpbutils-0.10)
+       FIND_GSTREAMER_COMPONENT(GSTREAMER_VIDEO gstreamer-video-0.10 gst/video/video.h gstvideo-0.10)
+ENDIF()
 
 # ------------------------------------------------
 # 3. Process the COMPONENTS passed to FIND_PACKAGE
index bdfee30..323c88b 100755 (executable)
@@ -144,7 +144,11 @@ ENDIF ()
 
 
 IF (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
+       IF(GST_API_VERSION_1)
+    SET(GSTREAMER_COMPONENTS app pbutils)
+       ELSE ()
     SET(GSTREAMER_COMPONENTS app interfaces pbutils)
+       ENDIF()
     SET(WTF_USE_GSTREAMER 1)
     ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
 
index 60db789..fb7a2ad 100644 (file)
@@ -326,7 +326,11 @@ IF (ENABLE_WEB_AUDIO)
     SET(FEATURE_DEFINES_WITH_SPACE_SEPARATOR "${FEATURE_DEFINES_WITH_SPACE_SEPARATOR} ENABLE_TIZEN_WEB_AUDIO")
     ADD_DEFINITIONS(-DENABLE_TIZEN_WEB_AUDIO=1)
 
+       IF(GST_API_VERSION_1)
+    SET(GSTREAMER_COMPONENTS app pbutils)
+       ELSE ()
     SET(GSTREAMER_COMPONENTS app interfaces pbutils)
+       ENDIF()
     SET(WTF_USE_GSTREAMER 1)
     ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
 
@@ -352,7 +356,11 @@ IF (ENABLE_WEB_AUDIO)
 ENDIF ()
 
 IF (ENABLE_VIDEO)
+       IF(GST_API_VERSION_1)
+    SET(GSTREAMER_COMPONENTS app pbutils video)
+       ELSE ()
     SET(GSTREAMER_COMPONENTS app interfaces pbutils video)
+       ENDIF ()
     FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
     FIND_PACKAGE(ASM REQUIRED)
     FIND_PACKAGE(SESSION REQUIRED)
index 45b4a7d..a773290 100644 (file)
@@ -120,6 +120,7 @@ MACRO (WEBKIT_OPTION_BEGIN)
     WEBKIT_OPTION_DEFINE(USE_SYSTEM_MALLOC "Toggle system allocator instead of TCmalloc" OFF)
     WEBKIT_OPTION_DEFINE(WTF_USE_TILED_BACKING_STORE "Toggle Tiled Backing Store support" OFF)
     WEBKIT_OPTION_DEFINE(WTF_USE_WTFURL "Toogle the use of WTFURL for URL parsing" OFF)
+       WEBKIT_OPTION_DEFINE(GST_API_VERSION_1 "Enable GSTREAMER  API V1 " ON)
 ENDMACRO ()
 
 MACRO (WEBKIT_OPTION_END)
index b5955e9..49a3970 100644 (file)
 #cmakedefine01 USE_SYSTEM_MALLOC
 #cmakedefine01 WTF_USE_TILED_BACKING_STORE
 #cmakedefine01 WTF_USE_WTFURL
-
+#cmakedefine GST_API_VERSION_1
 
 #cmakedefine01 ENABLE_CDOM_BINDINGS
 #cmakedefine01 ENABLE_CSS_FILTERS
index e39d911..8ce1417 100755 (executable)
@@ -6,6 +6,7 @@ SET(MiniBrowser_SOURCES
 )
 
 SET(MiniBrowser_INCLUDE_DIRECTORIES
+       ${ELEMENTARY_INCLUDE_DIRS}
     ${CAIRO_INCLUDE_DIRS}
     ${ECORE_INCLUDE_DIRS}
     ${ECORE_EVAS_INCLUDE_DIRS}
@@ -25,6 +26,7 @@ SET(MiniBrowser_INCLUDE_DIRECTORIES
 )
 
 SET(MiniBrowser_LIBRARIES
+       ${ELEMENTARY_LIBRARIES}
     ${JavaScriptCore_LIBRARY_NAME}
     ${WebCore_LIBRARY_NAME}
     ${WebKit2_LIBRARY_NAME}
index 9cbce7a..c1f8566 100644 (file)
@@ -29,8 +29,13 @@ BuildRequires: pkgconfig(feedback)
 BuildRequires: pkgconfig(fontconfig)
 BuildRequires: pkgconfig(freetype2)
 BuildRequires: pkgconfig(glib-2.0)
+%if %{defined with_Gstreamer0.10}
 BuildRequires: pkgconfig(gstreamer-0.10)
 BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
+%else
+BuildRequires: pkgconfig(gstreamer-1.0)
+BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
+%endif
 BuildRequires: pkgconfig(harfbuzz)
 BuildRequires: pkgconfig(icu-i18n)
 BuildRequires: pkgconfig(libmedia-utils)
@@ -107,13 +112,19 @@ then
     export TIZEN_WEBKIT_EXTRA_OPTIONS=
 fi
 
+%if %{defined with_Gstreamer0.10}
+export GSTREAMER_API="-DGST_API_VERSION_1=Off"
+%else
+export GSTREAMER_API="-DGST_API_VERSION_1=On"
+%endif
+
 mkdir -p $WEBKIT_BUILD_DIR
 cd $WEBKIT_BUILD_DIR
 
 export MAKE_OPTION=%{MAKE_OPTION}
 if [ "{MAKE_OPTION}" == "${MAKE_OPTION#%}" ]
 then
-    cmake $SOURCE_DIR -DPORT=Efl -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBKIT=Off -DENABLE_WEBKIT2=On -DENABLE_ALLINONE=On -DEFL_TARGET=%{EFL_TARGET} -DDefaultTheme_RESOURCE_NAME=webkit.edj $TIZEN_WEBKIT_EXTRA_OPTIONS
+    cmake $SOURCE_DIR -DPORT=Efl -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBKIT=Off -DENABLE_WEBKIT2=On -DENABLE_ALLINONE=On -DEFL_TARGET=%{EFL_TARGET} -DDefaultTheme_RESOURCE_NAME=webkit.edj $TIZEN_WEBKIT_EXTRA_OPTIONS $GSTREAMER_API
     make %{?jobs:-j%jobs}
 else
     make %{MAKE_OPTION} %{?jobs:-j%jobs}