Title: [223351] releases/WebKitGTK/webkit-2.18/Source/WebCore
- Revision
- 223351
- Author
- [email protected]
- Date
- 2017-10-16 02:28:12 -0700 (Mon, 16 Oct 2017)
Log Message
Merge r221781 - [GStreamer] Add GRefPtr specializations for GstGLDisplay, GstGLContext
https://bugs.webkit.org/show_bug.cgi?id=176543
Reviewed by Xabier Rodriguez-Calvar.
Both GstGLDisplay and GstGLContext inherit from GstObject, meaning
gst_object_ref_sink() and gst_object_unref() should be used for
incrementing and decrementing reference count. Template specializations
for the adoptGRef(), refGPtr() and derefGPtr() are added for both types,
preventing GRefPtr<> from falling back to using g_object_ref() and
g_object_unref() for reference count modification purposes.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
(WTF::refGPtr<GstGLDisplay>):
(WTF::derefGPtr<GstGLDisplay>):
(WTF::refGPtr<GstGLContext>):
(WTF::derefGPtr<GstGLContext>):
* platform/graphics/gstreamer/GRefPtrGStreamer.h:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (223350 => 223351)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 09:24:51 UTC (rev 223350)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 09:28:12 UTC (rev 223351)
@@ -1,3 +1,25 @@
+2017-09-08 Zan Dobersek <[email protected]>
+
+ [GStreamer] Add GRefPtr specializations for GstGLDisplay, GstGLContext
+ https://bugs.webkit.org/show_bug.cgi?id=176543
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ Both GstGLDisplay and GstGLContext inherit from GstObject, meaning
+ gst_object_ref_sink() and gst_object_unref() should be used for
+ incrementing and decrementing reference count. Template specializations
+ for the adoptGRef(), refGPtr() and derefGPtr() are added for both types,
+ preventing GRefPtr<> from falling back to using g_object_ref() and
+ g_object_unref() for reference count modification purposes.
+
+ * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
+ (WTF::adoptGRef):
+ (WTF::refGPtr<GstGLDisplay>):
+ (WTF::derefGPtr<GstGLDisplay>):
+ (WTF::refGPtr<GstGLContext>):
+ (WTF::derefGPtr<GstGLContext>):
+ * platform/graphics/gstreamer/GRefPtrGStreamer.h:
+
2017-09-07 Joseph Pecoraro <[email protected]>
WebKit should claim that it can show responses for a broader range of JSON MIMETypes
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp (223350 => 223351)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 2017-10-16 09:24:51 UTC (rev 223350)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp 2017-10-16 09:28:12 UTC (rev 223351)
@@ -403,6 +403,50 @@
gst_object_unref(GST_OBJECT(ptr));
}
+#if USE(GSTREAMER_GL)
+
+template<> GRefPtr<GstGLDisplay> adoptGRef(GstGLDisplay* ptr)
+{
+ ASSERT(!ptr || !g_object_is_floating(ptr));
+ return GRefPtr<GstGLDisplay>(ptr, GRefPtrAdopt);
+}
+
+template<> GstGLDisplay* refGPtr<GstGLDisplay>(GstGLDisplay* ptr)
+{
+ if (ptr)
+ gst_object_ref_sink(GST_OBJECT(ptr));
+
+ return ptr;
+}
+
+template<> void derefGPtr<GstGLDisplay>(GstGLDisplay* ptr)
+{
+ if (ptr)
+ gst_object_unref(GST_OBJECT(ptr));
+}
+
+template<> GRefPtr<GstGLContext> adoptGRef(GstGLContext* ptr)
+{
+ ASSERT(!ptr || !g_object_is_floating(ptr));
+ return GRefPtr<GstGLContext>(ptr, GRefPtrAdopt);
+}
+
+template<> GstGLContext* refGPtr<GstGLContext>(GstGLContext* ptr)
+{
+ if (ptr)
+ gst_object_ref_sink(GST_OBJECT(ptr));
+
+ return ptr;
+}
+
+template<> void derefGPtr<GstGLContext>(GstGLContext* ptr)
+{
+ if (ptr)
+ gst_object_unref(GST_OBJECT(ptr));
+}
+
+#endif // USE(GSTREAMER_GL)
+
} // namespace WTF
#endif // USE(GSTREAMER)
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h (223350 => 223351)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 2017-10-16 09:24:51 UTC (rev 223350)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h 2017-10-16 09:28:12 UTC (rev 223351)
@@ -43,6 +43,11 @@
typedef struct _WebKitVideoSink WebKitVideoSink;
typedef struct _WebKitWebSrc WebKitWebSrc;
+#if USE(GSTREAMER_GL)
+typedef struct _GstGLDisplay GstGLDisplay;
+typedef struct _GstGLContext GstGLContext;
+#endif
+
namespace WTF {
template<> GRefPtr<GstElement> adoptGRef(GstElement* ptr);
@@ -122,6 +127,16 @@
template<> WebKitWebSrc* refGPtr<WebKitWebSrc>(WebKitWebSrc* ptr);
template<> void derefGPtr<WebKitWebSrc>(WebKitWebSrc* ptr);
+#if USE(GSTREAMER_GL)
+template<> GRefPtr<GstGLDisplay> adoptGRef(GstGLDisplay* ptr);
+template<> GstGLDisplay* refGPtr<GstGLDisplay>(GstGLDisplay* ptr);
+template<> void derefGPtr<GstGLDisplay>(GstGLDisplay* ptr);
+
+template<> GRefPtr<GstGLContext> adoptGRef(GstGLContext* ptr);
+template<> GstGLContext* refGPtr<GstGLContext>(GstGLContext* ptr);
+template<> void derefGPtr<GstGLContext>(GstGLContext* ptr);
+#endif
+
} // namespace WTF
#endif // USE(GSTREAMER)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes