Title: [96942] trunk/Source/WebCore
Revision
96942
Author
[email protected]
Date
2011-10-07 09:16:28 -0700 (Fri, 07 Oct 2011)

Log Message

[GStreamer] webkitwebsrc: avoid GST_BOILERPLATE_FULL
https://bugs.webkit.org/show_bug.cgi?id=69630

Reviewed by Martin Robinson.

Use G_DEFINE_TYPE_WITH_CODE instead of GST_BOILERPLATE_FULL and
replace use of gst_ghost_pad_new_no_target_from_template() and
gst_ghost_pad_set_target() with a single call to
gst_ghost_pad_new_from_template(). These changes keep the element
compatible with GStreamer 0.10 while preparing the port to 0.11.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_class_init):
(webkit_web_src_init):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (96941 => 96942)


--- trunk/Source/WebCore/ChangeLog	2011-10-07 15:51:04 UTC (rev 96941)
+++ trunk/Source/WebCore/ChangeLog	2011-10-07 16:16:28 UTC (rev 96942)
@@ -1,3 +1,20 @@
+2011-10-07  Philippe Normand  <[email protected]>
+
+        [GStreamer] webkitwebsrc: avoid GST_BOILERPLATE_FULL
+        https://bugs.webkit.org/show_bug.cgi?id=69630
+
+        Reviewed by Martin Robinson.
+
+        Use G_DEFINE_TYPE_WITH_CODE instead of GST_BOILERPLATE_FULL and
+        replace use of gst_ghost_pad_new_no_target_from_template() and
+        gst_ghost_pad_set_target() with a single call to
+        gst_ghost_pad_new_from_template(). These changes keep the element
+        compatible with GStreamer 0.10 while preparing the port to 0.11.
+
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (webkit_web_src_class_init):
+        (webkit_web_src_init):
+
 2011-10-07  Martin Robinson  <[email protected]>
 
         [Freetype] Pseudo-italics do not work

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (96941 => 96942)


--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2011-10-07 15:51:04 UTC (rev 96941)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2011-10-07 16:16:28 UTC (rev 96942)
@@ -130,24 +130,22 @@
     { 0 }
 };
 
-static void doInit(GType gtype)
-{
-    static const GInterfaceInfo uriHandlerInfo = {
-        webKitWebSrcUriHandlerInit,
-        0, 0
-    };
+#define webkit_web_src_parent_class parent_class
+// We split this out into another macro to avoid a check-webkit-style error.
+#define WEBKIT_WEB_SRC_CATEGORY_INIT GST_DEBUG_CATEGORY_INIT(webkit_web_src_debug, "webkitwebsrc", 0, "websrc element");
+G_DEFINE_TYPE_WITH_CODE(WebKitWebSrc, webkit_web_src, GST_TYPE_BIN,
+                         G_IMPLEMENT_INTERFACE(GST_TYPE_URI_HANDLER, webKitWebSrcUriHandlerInit);
+                         WEBKIT_WEB_SRC_CATEGORY_INIT);
 
-    GST_DEBUG_CATEGORY_INIT(webkit_web_src_debug, "webkitwebsrc", 0, "websrc element");
-    g_type_add_interface_static(gtype, GST_TYPE_URI_HANDLER,
-                                &uriHandlerInfo);
-}
-
-GST_BOILERPLATE_FULL(WebKitWebSrc, webkit_web_src, GstBin, GST_TYPE_BIN, doInit);
-
-static void webkit_web_src_base_init(gpointer klass)
+static void webkit_web_src_class_init(WebKitWebSrcClass* klass)
 {
+    GObjectClass* oklass = G_OBJECT_CLASS(klass);
     GstElementClass* eklass = GST_ELEMENT_CLASS(klass);
 
+    oklass->finalize = webKitWebSrcFinalize;
+    oklass->set_property = webKitWebSrcSetProperty;
+    oklass->get_property = webKitWebSrcGetProperty;
+
     gst_element_class_add_pad_template(eklass,
                                        gst_static_pad_template_get(&srcTemplate));
     gst_element_class_set_details_simple(eklass,
@@ -155,17 +153,7 @@
                                          (gchar*) "Source",
                                          (gchar*) "Handles HTTP/HTTPS uris",
                                          (gchar*) "Sebastian Dröge <[email protected]>");
-}
 
-static void webkit_web_src_class_init(WebKitWebSrcClass* klass)
-{
-    GObjectClass* oklass = G_OBJECT_CLASS(klass);
-    GstElementClass* eklass = GST_ELEMENT_CLASS(klass);
-
-    oklass->finalize = webKitWebSrcFinalize;
-    oklass->set_property = webKitWebSrcSetProperty;
-    oklass->get_property = webKitWebSrcGetProperty;
-
     // icecast stuff
     g_object_class_install_property(oklass,
                                     PROP_IRADIO_MODE,
@@ -222,8 +210,7 @@
     g_type_class_add_private(klass, sizeof(WebKitWebSrcPrivate));
 }
 
-static void webkit_web_src_init(WebKitWebSrc* src,
-                                WebKitWebSrcClass* gKlass)
+static void webkit_web_src_init(WebKitWebSrc* src)
 {
     GstPadTemplate* padTemplate = gst_static_pad_template_get(&srcTemplate);
     GstPad* targetpad;
@@ -233,12 +220,6 @@
 
     priv->client = new StreamingClient(src);
 
-    priv->srcpad = gst_ghost_pad_new_no_target_from_template("src",
-                                                             padTemplate);
-
-    gst_element_add_pad(GST_ELEMENT(src), priv->srcpad);
-    gst_pad_set_query_function(priv->srcpad, webKitWebSrcQuery);
-
     priv->appsrc = GST_APP_SRC(gst_element_factory_make("appsrc", 0));
     if (!priv->appsrc) {
         GST_ERROR_OBJECT(src, "Failed to create appsrc");
@@ -250,10 +231,14 @@
 
     gst_bin_add(GST_BIN(src), GST_ELEMENT(priv->appsrc));
 
+
     targetpad = gst_element_get_static_pad(GST_ELEMENT(priv->appsrc), "src");
-    gst_ghost_pad_set_target(GST_GHOST_PAD(priv->srcpad), targetpad);
+    priv->srcpad = gst_ghost_pad_new_from_template("src", targetpad, padTemplate);
     gst_object_unref(targetpad);
 
+    gst_element_add_pad(GST_ELEMENT(src), priv->srcpad);
+    gst_pad_set_query_function(priv->srcpad, webKitWebSrcQuery);
+
     gst_app_src_set_callbacks(priv->appsrc, &appsrcCallbacks, src, 0);
     gst_app_src_set_emit_signals(priv->appsrc, FALSE);
     gst_app_src_set_stream_type(priv->appsrc, GST_APP_STREAM_TYPE_SEEKABLE);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to