const GstVideoInfo * gst_allocator_get_vaapi_video_info (GstAllocator * allocator, guint * out_flags_ptr) { const GstStructure *structure; const GValue *value; g_return_val_if_fail (GST_IS_ALLOCATOR (allocator), NULL); structure = g_object_get_qdata (G_OBJECT (allocator), GST_VAAPI_VIDEO_INFO_QUARK); if (!structure) return NULL; if (out_flags_ptr) { value = gst_structure_id_get_value (structure, FLAGS_QUARK); if (!value) return NULL; *out_flags_ptr = g_value_get_uint (value); } value = gst_structure_id_get_value (structure, INFO_QUARK); if (!value) return NULL; return g_value_get_boxed (value); }
/** * gst_allocator_free: * @allocator: (transfer none): a #GstAllocator to use * @memory: (transfer full): the memory to free * * Free @memory that was previously allocated with gst_allocator_alloc(). */ void gst_allocator_free (GstAllocator * allocator, GstMemory * memory) { GstAllocatorClass *aclass; g_return_if_fail (GST_IS_ALLOCATOR (allocator)); g_return_if_fail (memory != NULL); g_return_if_fail (memory->allocator == allocator); aclass = GST_ALLOCATOR_GET_CLASS (allocator); if (aclass->free) aclass->free (allocator, memory); }
gboolean gst_allocator_set_vaapi_video_info (GstAllocator * allocator, const GstVideoInfo * vip, guint flags) { g_return_val_if_fail (GST_IS_ALLOCATOR (allocator), FALSE); g_return_val_if_fail (vip != NULL, FALSE); g_object_set_qdata_full (G_OBJECT (allocator), GST_VAAPI_VIDEO_INFO_QUARK, gst_structure_new_id (GST_VAAPI_VIDEO_INFO_QUARK, INFO_QUARK, GST_VAAPI_TYPE_VIDEO_INFO, vip, FLAGS_QUARK, G_TYPE_UINT, flags, NULL), (GDestroyNotify) gst_structure_free); return TRUE; }
/** * gst_allocator_set_default: * @allocator: (transfer full): a #GstAllocator * * Set the default allocator. This function takes ownership of @allocator. */ void gst_allocator_set_default (GstAllocator * allocator) { GstAllocator *old; g_return_if_fail (GST_IS_ALLOCATOR (allocator)); g_rw_lock_writer_lock (&lock); old = _default_allocator; _default_allocator = allocator; g_rw_lock_writer_unlock (&lock); if (old) gst_object_unref (old); }