mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
plugins: enable direct rendering with envvar
Direct rendering (use vaDeriveImage rather than vaPutImage) has better performance in some Intel platforms (Haswell, for example) but in others (Skylake) is the opposite. In order to have some control, the patch enables the direct rendering through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING. Also it seems to generating some problems with gallium/radeon backend. See bug #779642. https://bugzilla.gnome.org/show_bug.cgi?id=775848
This commit is contained in:
parent
ebca86dcc7
commit
24af97a7d1
2 changed files with 6 additions and 1 deletions
|
@ -247,6 +247,9 @@ gst_vaapi_plugin_base_init (GstVaapiPluginBase * plugin,
|
|||
if (!(GST_OBJECT_FLAGS (plugin) & GST_ELEMENT_FLAG_SINK))
|
||||
plugin->srcpad = gst_element_get_static_pad (GST_ELEMENT (plugin), "src");
|
||||
gst_video_info_init (&plugin->srcpad_info);
|
||||
|
||||
plugin->enable_direct_rendering =
|
||||
(g_getenv ("GST_VAAPI_ENABLE_DIRECT_RENDERING") != NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -592,7 +595,7 @@ ensure_srcpad_allocator (GstVaapiPluginBase * plugin, GstVideoInfo * vinfo,
|
|||
gst_vaapi_dmabuf_allocator_new (plugin->display, vinfo,
|
||||
get_dmabuf_surface_allocation_flags (), GST_PAD_SRC);
|
||||
}
|
||||
} else {
|
||||
} else if (plugin->enable_direct_rendering) {
|
||||
usage_flag = GST_VAAPI_IMAGE_USAGE_FLAG_DIRECT_RENDER;
|
||||
GST_INFO_OBJECT (plugin, "enabling direct rendering in source allocator");
|
||||
}
|
||||
|
|
|
@ -149,6 +149,8 @@ struct _GstVaapiPluginBase
|
|||
GstAllocator *sinkpad_allocator;
|
||||
GstAllocator *srcpad_allocator;
|
||||
gboolean srcpad_can_dmabuf;
|
||||
|
||||
gboolean enable_direct_rendering;
|
||||
};
|
||||
|
||||
struct _GstVaapiPluginBaseClass
|
||||
|
|
Loading…
Reference in a new issue