mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
https://bugzilla.gnome.org/show_bug.cgi?id=743062
This commit is contained in:
parent
c40b8a894d
commit
634cd87c76
60 changed files with 207 additions and 39 deletions
|
@ -466,6 +466,7 @@ gst_dfb_buffer_pool_new (GstDfbVideoSink * dfbvideosink)
|
||||||
g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), NULL);
|
g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), NULL);
|
||||||
|
|
||||||
pool = g_object_new (GST_TYPE_DFB_BUFFER_POOL, NULL);
|
pool = g_object_new (GST_TYPE_DFB_BUFFER_POOL, NULL);
|
||||||
|
g_object_ref_sink (pool);
|
||||||
pool->dfbvideosink = gst_object_ref (dfbvideosink);
|
pool->dfbvideosink = gst_object_ref (dfbvideosink);
|
||||||
|
|
||||||
GST_LOG_OBJECT (pool, "new dfb buffer pool %p", pool);
|
GST_LOG_OBJECT (pool, "new dfb buffer pool %p", pool);
|
||||||
|
|
|
@ -411,6 +411,7 @@ gst_vulkan_buffer_memory_init_once (void)
|
||||||
|
|
||||||
_vulkan_buffer_memory_allocator =
|
_vulkan_buffer_memory_allocator =
|
||||||
g_object_new (gst_vulkan_buffer_memory_allocator_get_type (), NULL);
|
g_object_new (gst_vulkan_buffer_memory_allocator_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (_vulkan_buffer_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_NAME,
|
gst_allocator_register (GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_vulkan_buffer_memory_allocator));
|
gst_object_ref (_vulkan_buffer_memory_allocator));
|
||||||
|
|
|
@ -207,6 +207,7 @@ gst_vulkan_buffer_pool_new (GstVulkanDevice * device)
|
||||||
GstVulkanBufferPool *pool;
|
GstVulkanBufferPool *pool;
|
||||||
|
|
||||||
pool = g_object_new (GST_TYPE_VULKAN_BUFFER_POOL, NULL);
|
pool = g_object_new (GST_TYPE_VULKAN_BUFFER_POOL, NULL);
|
||||||
|
g_object_ref_sink (pool);
|
||||||
pool->device = gst_object_ref (device);
|
pool->device = gst_object_ref (device);
|
||||||
|
|
||||||
GST_LOG_OBJECT (pool, "new Vulkan buffer pool for device %" GST_PTR_FORMAT,
|
GST_LOG_OBJECT (pool, "new Vulkan buffer pool for device %" GST_PTR_FORMAT,
|
||||||
|
|
|
@ -60,6 +60,8 @@ gst_vulkan_device_new (GstVulkanInstance * instance)
|
||||||
{
|
{
|
||||||
GstVulkanDevice *device = g_object_new (GST_TYPE_VULKAN_DEVICE, NULL);
|
GstVulkanDevice *device = g_object_new (GST_TYPE_VULKAN_DEVICE, NULL);
|
||||||
|
|
||||||
|
gst_object_ref_sink (device);
|
||||||
|
|
||||||
device->instance = gst_object_ref (instance);
|
device->instance = gst_object_ref (instance);
|
||||||
/* FIXME: select this externally */
|
/* FIXME: select this externally */
|
||||||
device->device_index = 0;
|
device->device_index = 0;
|
||||||
|
@ -350,6 +352,7 @@ gst_vulkan_device_get_queue (GstVulkanDevice * device, guint32 queue_family,
|
||||||
device->queue_family_props[queue_family].queueCount, NULL);
|
device->queue_family_props[queue_family].queueCount, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_VULKAN_QUEUE, NULL);
|
ret = g_object_new (GST_TYPE_VULKAN_QUEUE, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
ret->device = gst_object_ref (device);
|
ret->device = gst_object_ref (device);
|
||||||
ret->family = queue_family;
|
ret->family = queue_family;
|
||||||
ret->index = queue_i;
|
ret->index = queue_i;
|
||||||
|
|
|
@ -216,6 +216,7 @@ gst_vulkan_display_new (GstVulkanInstance * instance)
|
||||||
GST_FIXME ("creating dummy display");
|
GST_FIXME ("creating dummy display");
|
||||||
|
|
||||||
display = g_object_new (GST_TYPE_VULKAN_DISPLAY, NULL);
|
display = g_object_new (GST_TYPE_VULKAN_DISPLAY, NULL);
|
||||||
|
gst_object_ref_sink (display);
|
||||||
display->instance = gst_object_ref (instance);
|
display->instance = gst_object_ref (instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -550,6 +550,7 @@ gst_vulkan_image_memory_init_once (void)
|
||||||
|
|
||||||
_vulkan_image_memory_allocator =
|
_vulkan_image_memory_allocator =
|
||||||
g_object_new (gst_vulkan_image_memory_allocator_get_type (), NULL);
|
g_object_new (gst_vulkan_image_memory_allocator_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (_vulkan_image_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME,
|
gst_allocator_register (GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_vulkan_image_memory_allocator));
|
gst_object_ref (_vulkan_image_memory_allocator));
|
||||||
|
|
|
@ -72,7 +72,12 @@ struct _GstVulkanInstancePrivate
|
||||||
GstVulkanInstance *
|
GstVulkanInstance *
|
||||||
gst_vulkan_instance_new (void)
|
gst_vulkan_instance_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (GST_TYPE_VULKAN_INSTANCE, NULL);
|
GstVulkanInstance *instance;
|
||||||
|
|
||||||
|
instance = g_object_new (GST_TYPE_VULKAN_INSTANCE, NULL);
|
||||||
|
gst_object_ref_sink (instance);
|
||||||
|
|
||||||
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -338,6 +338,7 @@ gst_vulkan_memory_init_once (void)
|
||||||
|
|
||||||
_vulkan_memory_allocator =
|
_vulkan_memory_allocator =
|
||||||
g_object_new (gst_vulkan_memory_allocator_get_type (), NULL);
|
g_object_new (gst_vulkan_memory_allocator_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (_vulkan_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_VULKAN_MEMORY_ALLOCATOR_NAME,
|
gst_allocator_register (GST_VULKAN_MEMORY_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_vulkan_memory_allocator));
|
gst_object_ref (_vulkan_memory_allocator));
|
||||||
|
|
|
@ -410,6 +410,7 @@ gst_vulkan_swapper_new (GstVulkanDevice * device, GstVulkanWindow * window)
|
||||||
GstVulkanSwapper *swapper;
|
GstVulkanSwapper *swapper;
|
||||||
|
|
||||||
swapper = g_object_new (GST_TYPE_VULKAN_SWAPPER, NULL);
|
swapper = g_object_new (GST_TYPE_VULKAN_SWAPPER, NULL);
|
||||||
|
gst_object_ref_sink (swapper);
|
||||||
swapper->device = gst_object_ref (device);
|
swapper->device = gst_object_ref (device);
|
||||||
swapper->window = gst_object_ref (window);
|
swapper->window = gst_object_ref (window);
|
||||||
|
|
||||||
|
|
|
@ -311,5 +311,10 @@ gst_vulkan_dummy_window_init (GstVulkanDummyWindow * dummy)
|
||||||
GstVulkanDummyWindow *
|
GstVulkanDummyWindow *
|
||||||
gst_vulkan_dummy_window_new (void)
|
gst_vulkan_dummy_window_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (gst_vulkan_dummy_window_get_type (), NULL);
|
GstVulkanDummyWindow *window;
|
||||||
|
|
||||||
|
window = g_object_new (gst_vulkan_dummy_window_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ gst_vulkan_display_wayland_new (const gchar * name)
|
||||||
GstVulkanDisplayWayland *ret;
|
GstVulkanDisplayWayland *ret;
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_WAYLAND, NULL);
|
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_WAYLAND, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
ret->display = wl_display_connect (name);
|
ret->display = wl_display_connect (name);
|
||||||
|
|
||||||
if (!ret->display) {
|
if (!ret->display) {
|
||||||
|
@ -154,6 +155,7 @@ gst_vulkan_display_wayland_new_with_display (struct wl_display * display)
|
||||||
g_return_val_if_fail (display != NULL, NULL);
|
g_return_val_if_fail (display != NULL, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_WAYLAND, NULL);
|
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_WAYLAND, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->display = display;
|
ret->display = display;
|
||||||
ret->foreign_display = TRUE;
|
ret->foreign_display = TRUE;
|
||||||
|
|
|
@ -164,6 +164,8 @@ gst_vulkan_window_wayland_init (GstVulkanWindowWayland * window)
|
||||||
GstVulkanWindowWayland *
|
GstVulkanWindowWayland *
|
||||||
gst_vulkan_window_wayland_new (GstVulkanDisplay * display)
|
gst_vulkan_window_wayland_new (GstVulkanDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstVulkanWindowWayland *window;
|
||||||
|
|
||||||
if ((gst_vulkan_display_get_handle_type (display) &
|
if ((gst_vulkan_display_get_handle_type (display) &
|
||||||
GST_VULKAN_DISPLAY_TYPE_WAYLAND)
|
GST_VULKAN_DISPLAY_TYPE_WAYLAND)
|
||||||
== 0)
|
== 0)
|
||||||
|
@ -172,7 +174,10 @@ gst_vulkan_window_wayland_new (GstVulkanDisplay * display)
|
||||||
|
|
||||||
GST_DEBUG ("creating Wayland window");
|
GST_DEBUG ("creating Wayland window");
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_VULKAN_WINDOW_WAYLAND, NULL);
|
window = g_object_new (GST_TYPE_VULKAN_WINDOW_WAYLAND, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -130,6 +130,7 @@ gst_vulkan_display_xcb_new_with_connection (xcb_connection_t * connection,
|
||||||
GST_DEBUG_CATEGORY_GET (gst_vulkan_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_vulkan_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_XCB, NULL);
|
ret = g_object_new (GST_TYPE_VULKAN_DISPLAY_XCB, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->connection = connection;
|
ret->connection = connection;
|
||||||
ret->screen = _get_screen_from_connection (connection, screen_no);
|
ret->screen = _get_screen_from_connection (connection, screen_no);
|
||||||
|
|
|
@ -109,6 +109,8 @@ gst_vulkan_window_xcb_init (GstVulkanWindowXCB * window)
|
||||||
GstVulkanWindowXCB *
|
GstVulkanWindowXCB *
|
||||||
gst_vulkan_window_xcb_new (GstVulkanDisplay * display)
|
gst_vulkan_window_xcb_new (GstVulkanDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstVulkanWindowXCB *window;
|
||||||
|
|
||||||
_init_debug ();
|
_init_debug ();
|
||||||
|
|
||||||
if ((gst_vulkan_display_get_handle_type (display) &
|
if ((gst_vulkan_display_get_handle_type (display) &
|
||||||
|
@ -119,7 +121,10 @@ gst_vulkan_window_xcb_new (GstVulkanDisplay * display)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_VULKAN_WINDOW_XCB, NULL);
|
window = g_object_new (GST_TYPE_VULKAN_WINDOW_XCB, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -110,8 +110,11 @@ gst_wl_shm_allocator_init (GstWlShmAllocator * self)
|
||||||
void
|
void
|
||||||
gst_wl_shm_allocator_register (void)
|
gst_wl_shm_allocator_register (void)
|
||||||
{
|
{
|
||||||
gst_allocator_register (GST_ALLOCATOR_WL_SHM,
|
GstAllocator *alloc;
|
||||||
g_object_new (GST_TYPE_WL_SHM_ALLOCATOR, NULL));
|
|
||||||
|
alloc = g_object_new (GST_TYPE_WL_SHM_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (alloc);
|
||||||
|
gst_allocator_register (GST_ALLOCATOR_WL_SHM, alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GstAllocator *
|
GstAllocator *
|
||||||
|
|
|
@ -69,13 +69,18 @@ gst_gl_window_android_egl_init (GstGLWindowAndroidEGL * window)
|
||||||
GstGLWindowAndroidEGL *
|
GstGLWindowAndroidEGL *
|
||||||
gst_gl_window_android_egl_new (GstGLDisplay * display)
|
gst_gl_window_android_egl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowAndroidEGL *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
|
||||||
/* we require an egl display to create android windows */
|
/* we require an egl display to create android windows */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
GST_DEBUG ("creating Android EGL window");
|
GST_DEBUG ("creating Android EGL window");
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_ANDROID_EGL, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_ANDROID_EGL, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -77,11 +77,16 @@ gst_gl_context_cocoa_init (GstGLContextCocoa * context)
|
||||||
GstGLContextCocoa *
|
GstGLContextCocoa *
|
||||||
gst_gl_context_cocoa_new (GstGLDisplay * display)
|
gst_gl_context_cocoa_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLContextCocoa *context;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
|
||||||
/* we require an cocoa display to create CGL contexts */
|
/* we require an cocoa display to create CGL contexts */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_CONTEXT_COCOA, NULL);
|
context = g_object_new (GST_TYPE_GL_CONTEXT_COCOA, NULL);
|
||||||
|
gst_object_ref_sink (context);
|
||||||
|
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct pixel_attr
|
struct pixel_attr
|
||||||
|
|
|
@ -115,6 +115,7 @@ gst_gl_display_cocoa_setup_nsapp (gpointer data)
|
||||||
|
|
||||||
if (NSApp != nil && !singleton) {
|
if (NSApp != nil && !singleton) {
|
||||||
GstGLDisplayCocoa *ret = g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
GstGLDisplayCocoa *ret = g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
g_mutex_unlock (&nsapp_lock);
|
g_mutex_unlock (&nsapp_lock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -167,6 +168,7 @@ gst_gl_display_cocoa_setup_nsapp (gpointer data)
|
||||||
} else {
|
} else {
|
||||||
GST_DEBUG ("Create display");
|
GST_DEBUG ("Create display");
|
||||||
singleton = g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
singleton = g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
||||||
|
gst_object_ref_sink (singletone);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_mutex_unlock (&nsapp_lock);
|
g_mutex_unlock (&nsapp_lock);
|
||||||
|
@ -223,13 +225,18 @@ gst_gl_display_cocoa_finalize (GObject * object)
|
||||||
GstGLDisplayCocoa *
|
GstGLDisplayCocoa *
|
||||||
gst_gl_display_cocoa_new (void)
|
gst_gl_display_cocoa_new (void)
|
||||||
{
|
{
|
||||||
|
GstGLDisplayCocoa *display;
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
#ifndef GSTREAMER_GLIB_COCOA_NSAPPLICATION
|
#ifndef GSTREAMER_GLIB_COCOA_NSAPPLICATION
|
||||||
return gst_gl_display_cocoa_setup_nsapp (NULL);
|
display = gst_gl_display_cocoa_setup_nsapp (NULL);
|
||||||
#else
|
#else
|
||||||
return g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
display = g_object_new (GST_TYPE_GL_DISPLAY_COCOA, NULL);
|
||||||
|
gst_object_ref_sink (display);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
return display;
|
||||||
}
|
}
|
||||||
|
|
||||||
static guintptr
|
static guintptr
|
||||||
|
|
|
@ -143,11 +143,16 @@ gst_gl_window_cocoa_finalize (GObject * object)
|
||||||
GstGLWindowCocoa *
|
GstGLWindowCocoa *
|
||||||
gst_gl_window_cocoa_new (GstGLDisplay * display)
|
gst_gl_window_cocoa_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowCocoa *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
|
||||||
/* we require an cocoa display to create CGL windows */
|
/* we require an cocoa display to create CGL windows */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_COCOA, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_COCOA, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Must be called from the main thread */
|
/* Must be called from the main thread */
|
||||||
|
|
|
@ -108,13 +108,18 @@ gst_gl_window_dispmanx_egl_init (GstGLWindowDispmanxEGL * window_egl)
|
||||||
GstGLWindowDispmanxEGL *
|
GstGLWindowDispmanxEGL *
|
||||||
gst_gl_window_dispmanx_egl_new (GstGLDisplay * display)
|
gst_gl_window_dispmanx_egl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowDispmanxEGL *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
|
||||||
/* we require an egl display to create dispmanx windows */
|
/* we require an egl display to create dispmanx windows */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
GST_DEBUG ("creating Dispmanx EGL window");
|
GST_DEBUG ("creating Dispmanx EGL window");
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_DISPMANX_EGL, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_DISPMANX_EGL, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -96,8 +96,13 @@ gst_gl_context_eagl_init (GstGLContextEagl * context)
|
||||||
GstGLContextEagl *
|
GstGLContextEagl *
|
||||||
gst_gl_context_eagl_new (GstGLDisplay * display)
|
gst_gl_context_eagl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLContextEagl *context;
|
||||||
|
|
||||||
/* there isn't actually a display type for eagl yet? */
|
/* there isn't actually a display type for eagl yet? */
|
||||||
return g_object_new (GST_TYPE_GL_CONTEXT_EAGL, NULL);
|
context = g_object_new (GST_TYPE_GL_CONTEXT_EAGL, NULL);
|
||||||
|
gst_object_ref_sink (context);
|
||||||
|
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -103,8 +103,13 @@ gst_gl_window_eagl_finalize (GObject * object)
|
||||||
GstGLWindowEagl *
|
GstGLWindowEagl *
|
||||||
gst_gl_window_eagl_new (GstGLDisplay * display)
|
gst_gl_window_eagl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowEagl *window;
|
||||||
|
|
||||||
/* there isn't an eagl display type */
|
/* there isn't an eagl display type */
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_EAGL, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_EAGL, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static guintptr
|
static guintptr
|
||||||
|
|
|
@ -108,9 +108,14 @@ gst_gl_context_egl_init (GstGLContextEGL * context)
|
||||||
GstGLContextEGL *
|
GstGLContextEGL *
|
||||||
gst_gl_context_egl_new (GstGLDisplay * display)
|
gst_gl_context_egl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLContextEGL *context;
|
||||||
|
|
||||||
/* XXX: display type could theoretically be anything, as long as
|
/* XXX: display type could theoretically be anything, as long as
|
||||||
* eglGetDisplay supports it. */
|
* eglGetDisplay supports it. */
|
||||||
return g_object_new (GST_TYPE_GL_CONTEXT_EGL, NULL);
|
context = g_object_new (GST_TYPE_GL_CONTEXT_EGL, NULL);
|
||||||
|
gst_object_ref_sink (context);
|
||||||
|
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -176,6 +176,7 @@ gst_gl_display_egl_new (void)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
ret->display =
|
ret->display =
|
||||||
gst_gl_display_egl_get_from_native (GST_GL_DISPLAY_TYPE_ANY, 0);
|
gst_gl_display_egl_get_from_native (GST_GL_DISPLAY_TYPE_ANY, 0);
|
||||||
|
|
||||||
|
@ -206,6 +207,7 @@ gst_gl_display_egl_new_with_egl_display (EGLDisplay display)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->display = display;
|
ret->display = display;
|
||||||
ret->foreign_display = TRUE;
|
ret->foreign_display = TRUE;
|
||||||
|
@ -270,6 +272,7 @@ gst_gl_display_egl_from_gl_display (GstGLDisplay * display)
|
||||||
g_return_val_if_fail (display_type != GST_GL_DISPLAY_TYPE_NONE, NULL);
|
g_return_val_if_fail (display_type != GST_GL_DISPLAY_TYPE_NONE, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->display =
|
ret->display =
|
||||||
gst_gl_display_egl_get_from_native (display_type, native_display);
|
gst_gl_display_egl_get_from_native (display_type, native_display);
|
||||||
|
|
|
@ -252,6 +252,7 @@ gst_gl_memory_egl_init_once (void)
|
||||||
|
|
||||||
_gl_memory_egl_allocator =
|
_gl_memory_egl_allocator =
|
||||||
g_object_new (GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_gl_memory_egl_allocator);
|
||||||
|
|
||||||
/* The allocator is never unreffed */
|
/* The allocator is never unreffed */
|
||||||
GST_OBJECT_FLAG_SET (_gl_memory_egl_allocator,
|
GST_OBJECT_FLAG_SET (_gl_memory_egl_allocator,
|
||||||
|
|
|
@ -461,6 +461,7 @@ gst_gl_buffer_init_once (void)
|
||||||
|
|
||||||
_gl_buffer_allocator =
|
_gl_buffer_allocator =
|
||||||
g_object_new (gst_gl_buffer_allocator_get_type (), NULL);
|
g_object_new (gst_gl_buffer_allocator_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (_gl_buffer_allocator);
|
||||||
|
|
||||||
/* The allocator is never unreffed */
|
/* The allocator is never unreffed */
|
||||||
GST_OBJECT_FLAG_SET (_gl_buffer_allocator, GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
GST_OBJECT_FLAG_SET (_gl_buffer_allocator, GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
||||||
|
|
|
@ -310,6 +310,7 @@ gst_gl_buffer_pool_new (GstGLContext * context)
|
||||||
GstGLBufferPool *pool;
|
GstGLBufferPool *pool;
|
||||||
|
|
||||||
pool = g_object_new (GST_TYPE_GL_BUFFER_POOL, NULL);
|
pool = g_object_new (GST_TYPE_GL_BUFFER_POOL, NULL);
|
||||||
|
gst_object_ref_sink (pool);
|
||||||
pool->context = gst_object_ref (context);
|
pool->context = gst_object_ref (context);
|
||||||
|
|
||||||
GST_LOG_OBJECT (pool, "new GL buffer pool for context %" GST_PTR_FORMAT,
|
GST_LOG_OBJECT (pool, "new GL buffer pool for context %" GST_PTR_FORMAT,
|
||||||
|
|
|
@ -469,7 +469,7 @@ gst_gl_color_convert_init (GstGLColorConvert * convert)
|
||||||
* gst_gl_color_convert_new:
|
* gst_gl_color_convert_new:
|
||||||
* @context: a #GstGLContext
|
* @context: a #GstGLContext
|
||||||
*
|
*
|
||||||
* Returns: a new #GstGLColorConvert object
|
* Returns: (transfer full): a new #GstGLColorConvert object
|
||||||
*
|
*
|
||||||
* Since: 1.4
|
* Since: 1.4
|
||||||
*/
|
*/
|
||||||
|
@ -479,6 +479,7 @@ gst_gl_color_convert_new (GstGLContext * context)
|
||||||
GstGLColorConvert *convert;
|
GstGLColorConvert *convert;
|
||||||
|
|
||||||
convert = g_object_new (GST_TYPE_GL_COLOR_CONVERT, NULL);
|
convert = g_object_new (GST_TYPE_GL_COLOR_CONVERT, NULL);
|
||||||
|
gst_object_ref_sink (convert);
|
||||||
|
|
||||||
convert->context = gst_object_ref (context);
|
convert->context = gst_object_ref (context);
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,7 @@ gst_gl_context_new (GstGLDisplay * display)
|
||||||
* represented by @handle stays alive while the returned #GstGLContext is
|
* represented by @handle stays alive while the returned #GstGLContext is
|
||||||
* active.
|
* active.
|
||||||
*
|
*
|
||||||
* Returns: a #GstGLContext wrapping @handle
|
* Returns: (transfer full): a #GstGLContext wrapping @handle
|
||||||
*
|
*
|
||||||
* Since: 1.4
|
* Since: 1.4
|
||||||
*/
|
*/
|
||||||
|
@ -402,6 +402,7 @@ gst_gl_context_new_wrapped (GstGLDisplay * display, guintptr handle,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
context_wrap = g_object_new (GST_TYPE_GL_WRAPPED_CONTEXT, NULL);
|
context_wrap = g_object_new (GST_TYPE_GL_WRAPPED_CONTEXT, NULL);
|
||||||
|
gst_object_ref_sink (context_wrap);
|
||||||
|
|
||||||
if (!context_wrap) {
|
if (!context_wrap) {
|
||||||
/* subclass returned a NULL context */
|
/* subclass returned a NULL context */
|
||||||
|
|
|
@ -323,7 +323,8 @@ gst_gl_display_new (void)
|
||||||
"(platform: %s), creating dummy",
|
"(platform: %s), creating dummy",
|
||||||
GST_STR_NULL (user_choice), GST_STR_NULL (platform_choice));
|
GST_STR_NULL (user_choice), GST_STR_NULL (platform_choice));
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_DISPLAY, NULL);
|
display = g_object_new (GST_TYPE_GL_DISPLAY, NULL);
|
||||||
|
gst_object_ref_sink (display);
|
||||||
}
|
}
|
||||||
|
|
||||||
return display;
|
return display;
|
||||||
|
|
|
@ -166,7 +166,7 @@ gst_gl_framebuffer_finalize (GObject * object)
|
||||||
*
|
*
|
||||||
* Returns: a new #GstGLFramebuffer
|
* Returns: a new #GstGLFramebuffer
|
||||||
*
|
*
|
||||||
* Since: 1.10
|
* Since: (transfer full): 1.10
|
||||||
*/
|
*/
|
||||||
GstGLFramebuffer *
|
GstGLFramebuffer *
|
||||||
gst_gl_framebuffer_new (GstGLContext * context)
|
gst_gl_framebuffer_new (GstGLContext * context)
|
||||||
|
@ -187,6 +187,7 @@ gst_gl_framebuffer_new (GstGLContext * context)
|
||||||
fb = g_object_new (GST_TYPE_GL_FRAMEBUFFER, NULL);
|
fb = g_object_new (GST_TYPE_GL_FRAMEBUFFER, NULL);
|
||||||
fb->context = gst_object_ref (context);
|
fb->context = gst_object_ref (context);
|
||||||
gl->GenFramebuffers (1, &fb->fbo_id);
|
gl->GenFramebuffers (1, &fb->fbo_id);
|
||||||
|
gst_object_ref_sink (fb);
|
||||||
|
|
||||||
return fb;
|
return fb;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1096,6 +1096,7 @@ gst_gl_memory_init_once (void)
|
||||||
"OpenGL Base Texture Memory");
|
"OpenGL Base Texture Memory");
|
||||||
|
|
||||||
_gl_memory_allocator = g_object_new (GST_TYPE_GL_MEMORY_ALLOCATOR, NULL);
|
_gl_memory_allocator = g_object_new (GST_TYPE_GL_MEMORY_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_gl_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_GL_MEMORY_ALLOCATOR_NAME, _gl_memory_allocator);
|
gst_allocator_register (GST_GL_MEMORY_ALLOCATOR_NAME, _gl_memory_allocator);
|
||||||
|
|
||||||
|
|
|
@ -835,6 +835,7 @@ gst_gl_memory_pbo_init_once (void)
|
||||||
GST_DEBUG_CATEGORY_INIT (GST_CAT_GL_MEMORY, "glmemory", 0, "OpenGL Memory");
|
GST_DEBUG_CATEGORY_INIT (GST_CAT_GL_MEMORY, "glmemory", 0, "OpenGL Memory");
|
||||||
|
|
||||||
_gl_allocator = g_object_new (GST_TYPE_GL_MEMORY_PBO_ALLOCATOR, NULL);
|
_gl_allocator = g_object_new (GST_TYPE_GL_MEMORY_PBO_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_gl_allocator);
|
||||||
/* The allocator is never unreffed */
|
/* The allocator is never unreffed */
|
||||||
GST_OBJECT_FLAG_SET (_gl_allocator, GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
GST_OBJECT_FLAG_SET (_gl_allocator, GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
||||||
|
|
||||||
|
|
|
@ -474,6 +474,8 @@ gst_gl_overlay_compositor_new (GstGLContext * context)
|
||||||
GstGLOverlayCompositor *compositor =
|
GstGLOverlayCompositor *compositor =
|
||||||
g_object_new (GST_TYPE_GL_OVERLAY_COMPOSITOR, NULL);
|
g_object_new (GST_TYPE_GL_OVERLAY_COMPOSITOR, NULL);
|
||||||
|
|
||||||
|
gst_object_ref_sink (compositor);
|
||||||
|
|
||||||
compositor->context = gst_object_ref (context);
|
compositor->context = gst_object_ref (context);
|
||||||
|
|
||||||
gst_gl_context_thread_add (compositor->context,
|
gst_gl_context_thread_add (compositor->context,
|
||||||
|
@ -575,6 +577,7 @@ gst_gl_overlay_compositor_upload_overlays (GstGLOverlayCompositor * compositor,
|
||||||
GstGLCompositionOverlay *overlay =
|
GstGLCompositionOverlay *overlay =
|
||||||
gst_gl_composition_overlay_new (compositor->context, rectangle,
|
gst_gl_composition_overlay_new (compositor->context, rectangle,
|
||||||
compositor->position_attrib, compositor->texcoord_attrib);
|
compositor->position_attrib, compositor->texcoord_attrib);
|
||||||
|
gst_object_ref_sink (overlay);
|
||||||
|
|
||||||
gst_gl_composition_overlay_upload (overlay, buf);
|
gst_gl_composition_overlay_upload (overlay, buf);
|
||||||
|
|
||||||
|
|
|
@ -317,6 +317,7 @@ gst_gl_renderbuffer_init_once (void)
|
||||||
|
|
||||||
_gl_renderbuffer_allocator =
|
_gl_renderbuffer_allocator =
|
||||||
g_object_new (GST_TYPE_GL_RENDERBUFFER_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_GL_RENDERBUFFER_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_gl_renderbuffer_allocator);
|
||||||
GST_OBJECT_FLAG_SET (_gl_renderbuffer_allocator,
|
GST_OBJECT_FLAG_SET (_gl_renderbuffer_allocator,
|
||||||
GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
GST_OBJECT_FLAG_MAY_BE_LEAKED);
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,7 @@ _new_with_stages_va_list (GstGLContext * context, GError ** error,
|
||||||
g_return_val_if_fail (GST_IS_GL_CONTEXT (context), NULL);
|
g_return_val_if_fail (GST_IS_GL_CONTEXT (context), NULL);
|
||||||
|
|
||||||
shader = g_object_new (GST_TYPE_GL_SHADER, NULL);
|
shader = g_object_new (GST_TYPE_GL_SHADER, NULL);
|
||||||
|
gst_object_ref_sink (shader);
|
||||||
shader->context = gst_object_ref (context);
|
shader->context = gst_object_ref (context);
|
||||||
|
|
||||||
while ((stage = va_arg (varargs, GstGLSLStage *))) {
|
while ((stage = va_arg (varargs, GstGLSLStage *))) {
|
||||||
|
|
|
@ -196,7 +196,7 @@ _ensure_shader (GstGLSLStage * stage)
|
||||||
* @n_strings: the number of strings in @str
|
* @n_strings: the number of strings in @str
|
||||||
* @str: an array of strings concatted together to produce a shader
|
* @str: an array of strings concatted together to produce a shader
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): a new #GstGLSLStage of the specified @type
|
* Returns: (transfer floating): a new #GstGLSLStage of the specified @type
|
||||||
*
|
*
|
||||||
* Since: 1.8
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
|
@ -235,7 +235,7 @@ gst_glsl_stage_new_with_strings (GstGLContext * context, guint type,
|
||||||
* @profile: the #GstGLSLProfile
|
* @profile: the #GstGLSLProfile
|
||||||
* @str: a shader string
|
* @str: a shader string
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): a new #GstGLSLStage of the specified @type
|
* Returns: (transfer floating): a new #GstGLSLStage of the specified @type
|
||||||
*
|
*
|
||||||
* Since: 1.8
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
|
@ -252,7 +252,7 @@ gst_glsl_stage_new_with_string (GstGLContext * context, guint type,
|
||||||
* @context: a #GstGLContext
|
* @context: a #GstGLContext
|
||||||
* @type: the GL enum shader stage type
|
* @type: the GL enum shader stage type
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): a new #GstGLSLStage of the specified @type
|
* Returns: (transfer floating): a new #GstGLSLStage of the specified @type
|
||||||
*
|
*
|
||||||
* Since: 1.8
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
|
@ -267,7 +267,7 @@ gst_glsl_stage_new (GstGLContext * context, guint type)
|
||||||
* gst_glsl_stage_new_with_default_vertex:
|
* gst_glsl_stage_new_with_default_vertex:
|
||||||
* @context: a #GstGLContext
|
* @context: a #GstGLContext
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): a new #GstGLSLStage with the default vertex shader
|
* Returns: (transfer floating): a new #GstGLSLStage with the default vertex shader
|
||||||
*
|
*
|
||||||
* Since: 1.8
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
|
@ -284,7 +284,7 @@ gst_glsl_stage_new_default_vertex (GstGLContext * context)
|
||||||
* gst_glsl_stage_new_with_default_fragment:
|
* gst_glsl_stage_new_with_default_fragment:
|
||||||
* @context: a #GstGLContext
|
* @context: a #GstGLContext
|
||||||
*
|
*
|
||||||
* Returns: (transfer full): a new #GstGLSLStage with the default fragment shader
|
* Returns: (transfer floating): a new #GstGLSLStage with the default fragment shader
|
||||||
*
|
*
|
||||||
* Since: 1.8
|
* Since: 1.8
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1561,7 +1561,7 @@ gst_gl_upload_init (GstGLUpload * upload)
|
||||||
* gst_gl_upload_new:
|
* gst_gl_upload_new:
|
||||||
* @context: a #GstGLContext
|
* @context: a #GstGLContext
|
||||||
*
|
*
|
||||||
* Returns: a new #GstGLUpload object
|
* Returns: (transfer full): a new #GstGLUpload object
|
||||||
*/
|
*/
|
||||||
GstGLUpload *
|
GstGLUpload *
|
||||||
gst_gl_upload_new (GstGLContext * context)
|
gst_gl_upload_new (GstGLContext * context)
|
||||||
|
@ -1569,6 +1569,8 @@ gst_gl_upload_new (GstGLContext * context)
|
||||||
GstGLUpload *upload = g_object_new (GST_TYPE_GL_UPLOAD, NULL);
|
GstGLUpload *upload = g_object_new (GST_TYPE_GL_UPLOAD, NULL);
|
||||||
gint i, n;
|
gint i, n;
|
||||||
|
|
||||||
|
gst_object_ref_sink (upload);
|
||||||
|
|
||||||
if (context)
|
if (context)
|
||||||
gst_gl_upload_set_context (upload, context);
|
gst_gl_upload_set_context (upload, context);
|
||||||
else
|
else
|
||||||
|
|
|
@ -336,14 +336,19 @@ gst_gl_view_convert_finalize (GObject * object)
|
||||||
/**
|
/**
|
||||||
* gst_gl_view_convert_new:
|
* gst_gl_view_convert_new:
|
||||||
*
|
*
|
||||||
* Returns: a new #GstGLViewConvert
|
* Returns: (transfer full): a new #GstGLViewConvert
|
||||||
*
|
*
|
||||||
* Since: 1.6
|
* Since: 1.6
|
||||||
*/
|
*/
|
||||||
GstGLViewConvert *
|
GstGLViewConvert *
|
||||||
gst_gl_view_convert_new (void)
|
gst_gl_view_convert_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (GST_TYPE_GL_VIEW_CONVERT, NULL);
|
GstGLViewConvert *convert;
|
||||||
|
|
||||||
|
convert = g_object_new (GST_TYPE_GL_VIEW_CONVERT, NULL);
|
||||||
|
gst_object_ref_sink (convert);
|
||||||
|
|
||||||
|
return convert;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1014,5 +1014,10 @@ gst_gl_dummy_window_init (GstGLDummyWindow * dummy)
|
||||||
GstGLDummyWindow *
|
GstGLDummyWindow *
|
||||||
gst_gl_dummy_window_new (void)
|
gst_gl_dummy_window_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (gst_gl_dummy_window_get_type (), NULL);
|
GstGLDummyWindow *window;
|
||||||
|
|
||||||
|
window = g_object_new (gst_gl_dummy_window_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@ gst_gl_display_viv_fb_new (gint disp_idx)
|
||||||
GST_DEBUG ("creating Vivante FB EGL display %d", disp_idx);
|
GST_DEBUG ("creating Vivante FB EGL display %d", disp_idx);
|
||||||
|
|
||||||
display = g_object_new (GST_TYPE_GL_DISPLAY_VIV_FB, NULL);
|
display = g_object_new (GST_TYPE_GL_DISPLAY_VIV_FB, NULL);
|
||||||
|
gst_object_ref_sink (display);
|
||||||
display->disp_idx = disp_idx;
|
display->disp_idx = disp_idx;
|
||||||
display->display = fbGetDisplayByIndex (display->disp_idx);
|
display->display = fbGetDisplayByIndex (display->disp_idx);
|
||||||
if (!display->display) {
|
if (!display->display) {
|
||||||
|
|
|
@ -72,12 +72,17 @@ gst_gl_window_viv_fb_egl_init (GstGLWindowVivFBEGL * window)
|
||||||
GstGLWindowVivFBEGL *
|
GstGLWindowVivFBEGL *
|
||||||
gst_gl_window_viv_fb_egl_new (GstGLDisplay * display)
|
gst_gl_window_viv_fb_egl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowVivFBEGL *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_VIV_FB) ==
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_VIV_FB) ==
|
||||||
0)
|
0)
|
||||||
/* we require a Vivante FB display to create windows */
|
/* we require a Vivante FB display to create windows */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_VIV_FB_EGL, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_VIV_FB_EGL, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -116,6 +116,7 @@ gst_gl_display_wayland_new (const gchar * name)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_WAYLAND, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_WAYLAND, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
ret->display = wl_display_connect (name);
|
ret->display = wl_display_connect (name);
|
||||||
|
|
||||||
if (!ret->display) {
|
if (!ret->display) {
|
||||||
|
@ -151,6 +152,7 @@ gst_gl_display_wayland_new_with_display (struct wl_display * display)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_WAYLAND, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_WAYLAND, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->display = display;
|
ret->display = display;
|
||||||
ret->foreign_display = TRUE;
|
ret->foreign_display = TRUE;
|
||||||
|
|
|
@ -353,6 +353,8 @@ gst_gl_window_wayland_egl_init (GstGLWindowWaylandEGL * window)
|
||||||
GstGLWindowWaylandEGL *
|
GstGLWindowWaylandEGL *
|
||||||
gst_gl_window_wayland_egl_new (GstGLDisplay * display)
|
gst_gl_window_wayland_egl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowWaylandEGL *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WAYLAND)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WAYLAND)
|
||||||
== 0)
|
== 0)
|
||||||
/* we require a wayland display to create wayland surfaces */
|
/* we require a wayland display to create wayland surfaces */
|
||||||
|
@ -360,7 +362,10 @@ gst_gl_window_wayland_egl_new (GstGLDisplay * display)
|
||||||
|
|
||||||
GST_DEBUG ("creating Wayland EGL window");
|
GST_DEBUG ("creating Wayland EGL window");
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_WAYLAND_EGL, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_WAYLAND_EGL, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -98,12 +98,17 @@ gst_gl_context_wgl_init (GstGLContextWGL * context_wgl)
|
||||||
GstGLContextWGL *
|
GstGLContextWGL *
|
||||||
gst_gl_context_wgl_new (GstGLDisplay * display)
|
gst_gl_context_wgl_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLContextWGL *context;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
|
||||||
0)
|
0)
|
||||||
/* we require an win32 display handle to create WGL contexts */
|
/* we require an win32 display handle to create WGL contexts */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_CONTEXT_WGL, NULL);
|
context = g_object_new (GST_TYPE_GL_CONTEXT_WGL, NULL);
|
||||||
|
gst_object_ref_sink (context);
|
||||||
|
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HGLRC
|
static HGLRC
|
||||||
|
|
|
@ -93,12 +93,17 @@ gst_gl_window_win32_init (GstGLWindowWin32 * window)
|
||||||
GstGLWindowWin32 *
|
GstGLWindowWin32 *
|
||||||
gst_gl_window_win32_new (GstGLDisplay * display)
|
gst_gl_window_win32_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowWin32 *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
|
||||||
0)
|
0)
|
||||||
/* we require an win32 display to create win32 windows */
|
/* we require an win32 display to create win32 windows */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_WIN32, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_WIN32, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -112,11 +112,16 @@ gst_gl_context_glx_init (GstGLContextGLX * context)
|
||||||
GstGLContextGLX *
|
GstGLContextGLX *
|
||||||
gst_gl_context_glx_new (GstGLDisplay * display)
|
gst_gl_context_glx_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLContextGLX *context;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11) == 0)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11) == 0)
|
||||||
/* we require an x11 display handle to create GLX contexts */
|
/* we require an x11 display handle to create GLX contexts */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_CONTEXT_GLX, NULL);
|
context = g_object_new (GST_TYPE_GL_CONTEXT_GLX, NULL);
|
||||||
|
gst_object_ref_sink (context);
|
||||||
|
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
|
@ -88,6 +88,7 @@ gst_gl_display_x11_new (const gchar * name)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_X11, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_X11, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
ret->name = g_strdup (name);
|
ret->name = g_strdup (name);
|
||||||
ret->display = XOpenDisplay (ret->name);
|
ret->display = XOpenDisplay (ret->name);
|
||||||
|
|
||||||
|
@ -131,6 +132,7 @@ gst_gl_display_x11_new_with_display (Display * display)
|
||||||
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_GL_DISPLAY_X11, NULL);
|
ret = g_object_new (GST_TYPE_GL_DISPLAY_X11, NULL);
|
||||||
|
gst_object_ref_sink (ret);
|
||||||
|
|
||||||
ret->name = g_strdup (DisplayString (display));
|
ret->name = g_strdup (DisplayString (display));
|
||||||
ret->display = display;
|
ret->display = display;
|
||||||
|
|
|
@ -123,6 +123,8 @@ gst_gl_window_x11_init (GstGLWindowX11 * window)
|
||||||
GstGLWindowX11 *
|
GstGLWindowX11 *
|
||||||
gst_gl_window_x11_new (GstGLDisplay * display)
|
gst_gl_window_x11_new (GstGLDisplay * display)
|
||||||
{
|
{
|
||||||
|
GstGLWindowX11 *window;
|
||||||
|
|
||||||
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11)
|
if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11)
|
||||||
== GST_GL_DISPLAY_TYPE_NONE) {
|
== GST_GL_DISPLAY_TYPE_NONE) {
|
||||||
GST_INFO ("Wrong display type %u for this window type %u", display->type,
|
GST_INFO ("Wrong display type %u for this window type %u", display->type,
|
||||||
|
@ -130,7 +132,10 @@ gst_gl_window_x11_new (GstGLDisplay * display)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return g_object_new (GST_TYPE_GL_WINDOW_X11, NULL);
|
window = g_object_new (GST_TYPE_GL_WINDOW_X11, NULL);
|
||||||
|
gst_object_ref_sink (window);
|
||||||
|
|
||||||
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
|
|
@ -3020,7 +3020,7 @@ gst_player_init_once (G_GNUC_UNUSED gpointer user_data)
|
||||||
* no special video set up will be done and some default handling will be
|
* no special video set up will be done and some default handling will be
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* Returns: a new #GstPlayer instance
|
* Returns: (transfer full): a new #GstPlayer instance
|
||||||
*/
|
*/
|
||||||
GstPlayer *
|
GstPlayer *
|
||||||
gst_player_new (GstPlayerVideoRenderer * video_renderer,
|
gst_player_new (GstPlayerVideoRenderer * video_renderer,
|
||||||
|
@ -3034,6 +3034,7 @@ gst_player_new (GstPlayerVideoRenderer * video_renderer,
|
||||||
self =
|
self =
|
||||||
g_object_new (GST_TYPE_PLAYER, "video-renderer", video_renderer,
|
g_object_new (GST_TYPE_PLAYER, "video-renderer", video_renderer,
|
||||||
"signal-dispatcher", signal_dispatcher, NULL);
|
"signal-dispatcher", signal_dispatcher, NULL);
|
||||||
|
gst_object_ref_sink (self);
|
||||||
|
|
||||||
if (video_renderer)
|
if (video_renderer)
|
||||||
g_object_unref (video_renderer);
|
g_object_unref (video_renderer);
|
||||||
|
|
|
@ -154,7 +154,12 @@ gst_uri_downloader_finalize (GObject * object)
|
||||||
GstUriDownloader *
|
GstUriDownloader *
|
||||||
gst_uri_downloader_new (void)
|
gst_uri_downloader_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (GST_TYPE_URI_DOWNLOADER, NULL);
|
GstUriDownloader *downloader;
|
||||||
|
|
||||||
|
downloader = g_object_new (GST_TYPE_URI_DOWNLOADER, NULL);
|
||||||
|
gst_object_ref_sink (downloader);
|
||||||
|
|
||||||
|
return downloader;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -269,6 +269,7 @@ gst_apple_core_video_memory_init (void)
|
||||||
|
|
||||||
_apple_core_video_allocator =
|
_apple_core_video_allocator =
|
||||||
g_object_new (GST_TYPE_APPLE_CORE_VIDEO_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_APPLE_CORE_VIDEO_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_apple_core_video_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_APPLE_CORE_VIDEO_ALLOCATOR_NAME,
|
gst_allocator_register (GST_APPLE_CORE_VIDEO_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_apple_core_video_allocator));
|
gst_object_ref (_apple_core_video_allocator));
|
||||||
|
|
|
@ -113,6 +113,7 @@ gst_ios_gl_memory_init (void)
|
||||||
|
|
||||||
_ios_gl_memory_allocator =
|
_ios_gl_memory_allocator =
|
||||||
g_object_new (GST_TYPE_IOS_GL_MEMORY_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_IOS_GL_MEMORY_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_ios_gl_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_IOS_GL_MEMORY_ALLOCATOR_NAME,
|
gst_allocator_register (GST_IOS_GL_MEMORY_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_ios_gl_memory_allocator));
|
gst_object_ref (_ios_gl_memory_allocator));
|
||||||
|
|
|
@ -147,6 +147,7 @@ gst_ios_surface_memory_init (void)
|
||||||
|
|
||||||
_io_surface_memory_allocator =
|
_io_surface_memory_allocator =
|
||||||
g_object_new (GST_TYPE_IO_SURFACE_MEMORY_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_IO_SURFACE_MEMORY_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (_io_surface_memory_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_IO_SURFACE_MEMORY_ALLOCATOR_NAME,
|
gst_allocator_register (GST_IO_SURFACE_MEMORY_ALLOCATOR_NAME,
|
||||||
gst_object_ref (_io_surface_memory_allocator));
|
gst_object_ref (_io_surface_memory_allocator));
|
||||||
|
|
|
@ -489,6 +489,7 @@ gst_d3dsurface_buffer_pool_new (GstD3DVideoSink * sink)
|
||||||
GstD3DSurfaceBufferPool *pool;
|
GstD3DSurfaceBufferPool *pool;
|
||||||
|
|
||||||
pool = g_object_new (GST_TYPE_D3DSURFACE_BUFFER_POOL, NULL);
|
pool = g_object_new (GST_TYPE_D3DSURFACE_BUFFER_POOL, NULL);
|
||||||
|
gst_object_ref_sink (pool);
|
||||||
pool->sink = gst_object_ref (sink);
|
pool->sink = gst_object_ref (sink);
|
||||||
|
|
||||||
GST_LOG_OBJECT (pool, "new buffer pool %p", pool);
|
GST_LOG_OBJECT (pool, "new buffer pool %p", pool);
|
||||||
|
@ -559,9 +560,11 @@ gst_d3dsurface_buffer_pool_set_config (GstBufferPool * bpool,
|
||||||
gst_buffer_pool_config_has_option (config,
|
gst_buffer_pool_config_has_option (config,
|
||||||
GST_BUFFER_POOL_OPTION_VIDEO_META);
|
GST_BUFFER_POOL_OPTION_VIDEO_META);
|
||||||
|
|
||||||
if (pool->add_metavideo)
|
if (pool->add_metavideo) {
|
||||||
pool->allocator =
|
pool->allocator =
|
||||||
g_object_new (GST_TYPE_D3D_SURFACE_MEMORY_ALLOCATOR, NULL);
|
g_object_new (GST_TYPE_D3D_SURFACE_MEMORY_ALLOCATOR, NULL);
|
||||||
|
gst_object_ref_sink (pool->allocator);
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -346,8 +346,13 @@ gst_kms_allocator_init (GstKMSAllocator * allocator)
|
||||||
GstAllocator *
|
GstAllocator *
|
||||||
gst_kms_allocator_new (int fd)
|
gst_kms_allocator_new (int fd)
|
||||||
{
|
{
|
||||||
return g_object_new (GST_TYPE_KMS_ALLOCATOR, "name",
|
GstAllocator *alloc;
|
||||||
|
|
||||||
|
alloc = g_object_new (GST_TYPE_KMS_ALLOCATOR, "name",
|
||||||
"KMSMemory::allocator", "drm-fd", fd, NULL);
|
"KMSMemory::allocator", "drm-fd", fd, NULL);
|
||||||
|
gst_object_ref_sink (alloc);
|
||||||
|
|
||||||
|
return alloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The mem_offsets are relative to the GstMemory start, unlike the vinfo->offset
|
/* The mem_offsets are relative to the GstMemory start, unlike the vinfo->offset
|
||||||
|
|
|
@ -209,5 +209,10 @@ gst_kms_buffer_pool_class_init (GstKMSBufferPoolClass * klass)
|
||||||
GstBufferPool *
|
GstBufferPool *
|
||||||
gst_kms_buffer_pool_new (void)
|
gst_kms_buffer_pool_new (void)
|
||||||
{
|
{
|
||||||
return g_object_new (GST_TYPE_KMS_BUFFER_POOL, NULL);
|
GstBufferPool *pool;
|
||||||
|
|
||||||
|
pool = g_object_new (GST_TYPE_KMS_BUFFER_POOL, NULL);
|
||||||
|
gst_object_ref_sink (pool);
|
||||||
|
|
||||||
|
return pool;
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,6 +334,8 @@ gst_shm_sink_allocator_new (GstShmSink * sink)
|
||||||
{
|
{
|
||||||
GstShmSinkAllocator *self = g_object_new (GST_TYPE_SHM_SINK_ALLOCATOR, NULL);
|
GstShmSinkAllocator *self = g_object_new (GST_TYPE_SHM_SINK_ALLOCATOR, NULL);
|
||||||
|
|
||||||
|
gst_object_ref_sink (self);
|
||||||
|
|
||||||
self->sink = gst_object_ref (sink);
|
self->sink = gst_object_ref (sink);
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
|
|
@ -171,6 +171,7 @@ gst_vdp_video_buffer_pool_new (GstVdpDevice * device)
|
||||||
GstVdpVideoBufferPool *pool;
|
GstVdpVideoBufferPool *pool;
|
||||||
|
|
||||||
pool = g_object_new (GST_TYPE_VDP_VIDEO_BUFFER_POOL, NULL);
|
pool = g_object_new (GST_TYPE_VDP_VIDEO_BUFFER_POOL, NULL);
|
||||||
|
g_object_ref_sink (pool);
|
||||||
pool->device = gst_object_ref (device);
|
pool->device = gst_object_ref (device);
|
||||||
|
|
||||||
GST_LOG_OBJECT (pool, "new VdpVideo buffer pool %p", pool);
|
GST_LOG_OBJECT (pool, "new VdpVideo buffer pool %p", pool);
|
||||||
|
|
|
@ -283,6 +283,7 @@ gst_vdp_video_memory_init (void)
|
||||||
if (g_once_init_enter (&_init)) {
|
if (g_once_init_enter (&_init)) {
|
||||||
_vdp_video_allocator =
|
_vdp_video_allocator =
|
||||||
g_object_new (gst_vdp_video_allocator_get_type (), NULL);
|
g_object_new (gst_vdp_video_allocator_get_type (), NULL);
|
||||||
|
gst_object_ref_sink (_vdp_video_allocator);
|
||||||
|
|
||||||
gst_allocator_register (GST_VDP_VIDEO_MEMORY_ALLOCATOR,
|
gst_allocator_register (GST_VDP_VIDEO_MEMORY_ALLOCATOR,
|
||||||
gst_object_ref (_vdp_video_allocator));
|
gst_object_ref (_vdp_video_allocator));
|
||||||
|
|
Loading…
Reference in a new issue