Skip to content

Commit

Permalink
gst: Clear floating flag in constructor of all GstObject subclasses t…
Browse files Browse the repository at this point in the history
…hat are not owned by any parent

https://bugzilla.gnome.org/show_bug.cgi?id=743062
  • Loading branch information
sdroege committed May 17, 2017
1 parent 2a8784e commit 67fb3b1
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 5 deletions.
9 changes: 7 additions & 2 deletions gst-libs/gst/allocators/gstdmabuf.c
Expand Up @@ -62,7 +62,7 @@ gst_dmabuf_allocator_init (GstDmaBufAllocator * allocator)
*
* Return a new dmabuf allocator.
*
* Returns: (transfer floating): a new dmabuf allocator, or NULL if the allocator
* Returns: (transfer full): a new dmabuf allocator, or NULL if the allocator
* isn't available. Use gst_object_unref() to release the allocator after
* usage
*
Expand All @@ -71,9 +71,14 @@ gst_dmabuf_allocator_init (GstDmaBufAllocator * allocator)
GstAllocator *
gst_dmabuf_allocator_new (void)
{
GstAllocator *alloc;

GST_DEBUG_CATEGORY_INIT (dmabuf_debug, "dmabuf", 0, "dmabuf memory");

return g_object_new (GST_TYPE_DMABUF_ALLOCATOR, NULL);
alloc = g_object_new (GST_TYPE_DMABUF_ALLOCATOR, NULL);
gst_object_ref_sink (alloc);

return alloc;
}

/**
Expand Down
9 changes: 7 additions & 2 deletions gst-libs/gst/allocators/gstfdmemory.c
Expand Up @@ -236,7 +236,7 @@ gst_fd_allocator_init (GstFdAllocator * allocator)
*
* Return a new fd allocator.
*
* Returns: (transfer floating): a new fd allocator, or NULL if the allocator
* Returns: (transfer full): a new fd allocator, or NULL if the allocator
* isn't available. Use gst_object_unref() to release the allocator after
* usage
*
Expand All @@ -245,7 +245,12 @@ gst_fd_allocator_init (GstFdAllocator * allocator)
GstAllocator *
gst_fd_allocator_new (void)
{
return g_object_new (GST_TYPE_FD_ALLOCATOR, NULL);
GstAllocator *alloc;

alloc = g_object_new (GST_TYPE_FD_ALLOCATOR, NULL);
gst_object_ref_sink (alloc);

return alloc;
}

/**
Expand Down
3 changes: 2 additions & 1 deletion gst-libs/gst/video/gstvideopool.c
Expand Up @@ -280,14 +280,15 @@ video_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer,
* Create a new bufferpool that can allocate video frames. This bufferpool
* supports all the video bufferpool options.
*
* Returns: (transfer floating): a new #GstBufferPool to allocate video frames
* Returns: (transfer full): a new #GstBufferPool to allocate video frames
*/
GstBufferPool *
gst_video_buffer_pool_new ()
{
GstVideoBufferPool *pool;

pool = g_object_new (GST_TYPE_VIDEO_BUFFER_POOL, NULL);
gst_object_ref_sink (pool);

GST_LOG_OBJECT (pool, "new video buffer pool %p", pool);

Expand Down
2 changes: 2 additions & 0 deletions sys/ximage/ximagepool.c
Expand Up @@ -675,8 +675,10 @@ gst_ximage_buffer_pool_new (GstXImageSink * ximagesink)
g_return_val_if_fail (GST_IS_X_IMAGE_SINK (ximagesink), NULL);

pool = g_object_new (GST_TYPE_XIMAGE_BUFFER_POOL, NULL);
gst_object_ref_sink (pool);
pool->sink = gst_object_ref (ximagesink);
pool->allocator = g_object_new (GST_TYPE_XIMAGE_MEMORY_ALLOCATOR, NULL);
gst_object_ref_sink (pool->allocator);

GST_LOG_OBJECT (pool, "new XImage buffer pool %p", pool);

Expand Down
1 change: 1 addition & 0 deletions sys/xvimage/xvimageallocator.c
Expand Up @@ -328,6 +328,7 @@ gst_xvimage_allocator_new (GstXvContext * context)

alloc = g_object_new (GST_TYPE_XVIMAGE_ALLOCATOR, NULL);
alloc->context = gst_xvcontext_ref (context);
gst_object_ref_sink (alloc);

return alloc;
}
Expand Down
1 change: 1 addition & 0 deletions sys/xvimage/xvimagepool.c
Expand Up @@ -209,6 +209,7 @@ gst_xvimage_buffer_pool_new (GstXvImageAllocator * allocator)
GstXvImageBufferPool *pool;

pool = g_object_new (GST_TYPE_XVIMAGE_BUFFER_POOL, NULL);
gst_object_ref_sink (pool);
pool->allocator = gst_object_ref (allocator);

GST_LOG_OBJECT (pool, "new XvImage buffer pool %p", pool);
Expand Down

0 comments on commit 67fb3b1

Please sign in to comment.