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;
}