mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
d3d11device: Add gst_d3d11_device_thread_add_full method
I would be used to invoke GPU task with specified priority.
This commit is contained in:
parent
7cab47ddda
commit
d2b85683de
2 changed files with 30 additions and 2 deletions
|
@ -652,6 +652,28 @@ gst_d3d11_device_message_callback (MessageData * msg)
|
|||
void
|
||||
gst_d3d11_device_thread_add (GstD3D11Device * device,
|
||||
GstD3D11DeviceThreadFunc func, gpointer data)
|
||||
{
|
||||
gst_d3d11_device_thread_add_full (device,
|
||||
G_PRIORITY_DEFAULT, func, data, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_d3d11_device_thread_add_full:
|
||||
* @device: a #GstD3D11Device
|
||||
* @priority: the priority at which to run @func
|
||||
* @func: (scope call): a #GstD3D11DeviceThreadFunc
|
||||
* @data: (closure): user data to call @func with
|
||||
* @notify: (nullable): a function to call when @data is no longer in use, or %NULL.
|
||||
*
|
||||
* Execute @func in the D3DDevice thread of @device with @data with specified
|
||||
* @priority
|
||||
*
|
||||
* MT-safe
|
||||
*/
|
||||
void
|
||||
gst_d3d11_device_thread_add_full (GstD3D11Device * device,
|
||||
gint priority, GstD3D11DeviceThreadFunc func, gpointer data,
|
||||
GDestroyNotify notify)
|
||||
{
|
||||
GstD3D11DevicePrivate *priv;
|
||||
MessageData msg = { 0, };
|
||||
|
@ -671,8 +693,8 @@ gst_d3d11_device_thread_add (GstD3D11Device * device,
|
|||
msg.data = data;
|
||||
msg.fired = FALSE;
|
||||
|
||||
g_main_context_invoke (priv->main_context,
|
||||
(GSourceFunc) gst_d3d11_device_message_callback, &msg);
|
||||
g_main_context_invoke_full (priv->main_context, priority,
|
||||
(GSourceFunc) gst_d3d11_device_message_callback, &msg, notify);
|
||||
|
||||
g_mutex_lock (&priv->lock);
|
||||
while (!msg.fired)
|
||||
|
|
|
@ -97,6 +97,12 @@ void gst_d3d11_device_thread_add (GstD3D11Device * devi
|
|||
GstD3D11DeviceThreadFunc func,
|
||||
gpointer data);
|
||||
|
||||
void gst_d3d11_device_thread_add_full (GstD3D11Device * device,
|
||||
gint priority,
|
||||
GstD3D11DeviceThreadFunc func,
|
||||
gpointer data,
|
||||
GDestroyNotify notify);
|
||||
|
||||
ID3D11Texture2D * gst_d3d11_device_create_texture (GstD3D11Device * device,
|
||||
const D3D11_TEXTURE2D_DESC * desc,
|
||||
const D3D11_SUBRESOURCE_DATA *inital_data);
|
||||
|
|
Loading…
Reference in a new issue