gst_vaapi_video_buffer_set_surface
gst_vaapi_video_buffer_set_surface_proxy
gst_vaapi_video_buffer_set_surface_from_pool
+gst_vaapi_video_buffer_get_render_flags
+gst_vaapi_video_buffer_set_render_flags
<SUBSECTION Standard>
GST_VAAPI_VIDEO_BUFFER
GST_VAAPI_IS_VIDEO_BUFFER
GstVaapiSurface *surface;
GstVaapiSurfaceProxy *proxy;
GstBuffer *buffer;
+ guint render_flags;
};
static void
priv->surface = NULL;
priv->proxy = NULL;
priv->buffer = NULL;
+ priv->render_flags = 0;
}
/**
g_return_if_fail (buffer->priv->buffer == NULL);
buffer->priv->buffer = gst_buffer_ref (other_buffer);
}
+
+/**
+ * gst_vaapi_video_buffer_get_render_flags:
+ * @buffer: a #GstVaapiVideoBuffer
+ *
+ * Retrieves the surface render flags bound to the @buffer.
+ *
+ * Return value: a combination for #GstVaapiSurfaceRenderFlags
+ */
+guint
+gst_vaapi_video_buffer_get_render_flags(GstVaapiVideoBuffer *buffer)
+{
+ g_return_val_if_fail(GST_VAAPI_IS_VIDEO_BUFFER(buffer), 0);
+ g_return_val_if_fail(GST_VAAPI_IS_SURFACE(buffer->priv->surface), 0);
+
+ return buffer->priv->render_flags;
+}
+
+/**
+ * gst_vaapi_video_buffer_set_render_flags:
+ * @buffer: a #GstVaapiVideoBuffer
+ * @flags: a set of surface render flags
+ *
+ * Sets #GstVaapiSurfaceRenderFlags to the @buffer.
+ */
+void
+gst_vaapi_video_buffer_set_render_flags(GstVaapiVideoBuffer *buffer, guint flags)
+{
+ g_return_if_fail(GST_VAAPI_IS_VIDEO_BUFFER(buffer));
+ g_return_if_fail(GST_VAAPI_IS_SURFACE(buffer->priv->surface));
+
+ buffer->priv->render_flags = flags;
+}
GstVaapiSurfaceProxy *proxy
);
+guint
+gst_vaapi_video_buffer_get_render_flags(GstVaapiVideoBuffer *buffer);
+
+void
+gst_vaapi_video_buffer_set_render_flags(GstVaapiVideoBuffer *buffer, guint flags);
+
G_END_DECLS
#endif /* GST_VAAPI_VIDEO_BUFFER_H */
{
GstVaapiVideoConverterGLXPrivate *priv =
GST_VAAPI_VIDEO_CONVERTER_GLX (converter)->priv;
- GstVaapiSurface *surface = gst_vaapi_video_buffer_get_surface (
- GST_VAAPI_VIDEO_BUFFER (buffer));
+ GstVaapiVideoBuffer * const vbuffer = GST_VAAPI_VIDEO_BUFFER (buffer);
+ GstVaapiSurface *surface = gst_vaapi_video_buffer_get_surface (vbuffer);
GstVaapiDisplay *new_dpy, *old_dpy;
GstVideoOverlayComposition * const composition =
gst_video_buffer_get_overlay_composition (GST_BUFFER (buffer));
GST_WARNING ("could not update subtitles");
return gst_vaapi_texture_put_surface (priv->texture, surface,
- GST_VAAPI_PICTURE_STRUCTURE_FRAME);
+ gst_vaapi_video_buffer_get_render_flags (vbuffer));
}
GST_DEBUG("render surface %" GST_VAAPI_ID_FORMAT,
GST_VAAPI_ID_ARGS(gst_vaapi_surface_get_id(surface)));
- flags = GST_VAAPI_PICTURE_STRUCTURE_FRAME;
+ flags = gst_vaapi_video_buffer_get_render_flags(vbuffer);
if (!gst_vaapi_surface_set_subpictures_from_composition(surface,
composition, TRUE))