static gboolean gst_vaapi_video_meta_holder_transform (GstBuffer * dst_buffer, GstMeta * meta, GstBuffer * src_buffer, GQuark type, gpointer data) { GstVaapiVideoMetaHolder *const src_meta = GST_VAAPI_VIDEO_META_HOLDER (meta); if (GST_META_TRANSFORM_IS_COPY (type)) { GstVaapiVideoMeta *const dst_meta = gst_vaapi_video_meta_copy (src_meta->meta); gst_buffer_set_vaapi_video_meta (dst_buffer, dst_meta); gst_vaapi_video_meta_unref (dst_meta); return TRUE; } return FALSE; }
static GstBuffer * new_vbuffer (GstVaapiVideoMeta * meta) { GstBuffer *buffer; g_return_val_if_fail (meta != NULL, NULL); gst_vaapi_video_meta_set_surface_converter (meta, get_surface_converter (gst_vaapi_video_meta_get_display (meta))); buffer = gst_surface_buffer_new (); if (buffer) gst_buffer_set_vaapi_video_meta (buffer, meta); gst_vaapi_video_meta_unref (meta); return buffer; }