The user-defined destroy notify function is meant to be called only when
the surface proxy was fully released, i.e. once it actually released the
VA surface back to the underlying pool.
static void
gst_vaapi_surface_proxy_finalize(GstVaapiSurfaceProxy *proxy)
{
- if (proxy->destroy_func)
- proxy->destroy_func(proxy->destroy_data);
-
if (proxy->surface) {
if (proxy->pool)
gst_vaapi_video_pool_put_object(proxy->pool, proxy->surface);
proxy->surface = NULL;
}
gst_vaapi_video_pool_replace(&proxy->pool, NULL);
+
+ /* Notify the user function that the object is now destroyed */
+ if (proxy->destroy_func)
+ proxy->destroy_func(proxy->destroy_data);
}
static inline const GstVaapiMiniObjectClass *