Lines Matching full:context
44 @@ -105,7 +105,7 @@ gst_lookup_xv_port_from_adaptor (GstXvContext * context,
47 gst_xvcontext_get_xv_support (GstXvContext * context,
53 @@ -158,9 +158,11 @@ gst_xvcontext_get_xv_support (GstXvContext * context,
54 if (!context->xv_port_id)
57 + config->dma_client_id = context->xv_port_id;
63 XvAttribute *const attr = XvQueryPortAttributes (context->disp,
64 context->xv_port_id, &count);
66 @@ -168,6 +170,9 @@ gst_xvcontext_get_xv_support (GstXvContext * context,
76 @@ -176,6 +181,7 @@ gst_xvcontext_get_xv_support (GstXvContext * context,
77 context->have_colorkey = FALSE;
78 context->have_iturbt709 = FALSE;
79 context->have_xvcolorspace = FALSE;
80 + context->have_dma_client = FALSE;
84 @@ -247,6 +253,19 @@ gst_xvcontext_get_xv_support (GstXvContext * context,
86 context->have_xvcolorspace = TRUE;
89 + const Atom atom = XInternAtom (context->disp, dma_client_id, False);
91 + XvSetPortAttribute (context->disp, context->xv_port_id, atom,
94 + context->have_dma_client = TRUE;
97 + context->have_dma_drm_fourcc = TRUE;
100 + context->have_dma_drm_afbc = TRUE;
104 @@ -361,6 +380,50 @@ gst_xvcontext_get_xv_support (GstXvContext * context,
108 + if (context->have_dma_drm_afbc) {
120 + if (context->have_dma_drm_fourcc) {
128 + if (context->have_dma_drm_afbc) {
141 + if (context->have_dma_drm_afbc) {
155 @@ -920,6 +983,10 @@ gst_xvcontext_get_format_from_info (GstXvContext * context,
160 + if (context->drm_fourcc != -1)
163 list = context->formats_list;
242 + GstXvContext *context = xvimagesink->context;
246 + if (!context->have_dma_client)
249 + g_mutex_lock (&context->lock);
250 + prop_atom = XInternAtom (context->disp, XV_DMA_CLIENT_PROP, True);
252 + XvGetPortAttribute (context->disp, context->xv_port_id,
255 + g_mutex_unlock (&context->lock);
257 + context->have_dma_client = xv_value > 0;
263 + GstXvContext *context = xvimagesink->context;
267 + if (!context->have_dma_client)
270 + g_mutex_lock (&context->lock);
271 + prop_atom = XInternAtom (context->disp, XV_DMA_CLIENT_PROP, True);
273 + XvSetPortAttribute (context->disp, context->xv_port_id,
275 + XvGetPortAttribute (context->disp, context->xv_port_id,
278 + g_mutex_unlock (&context->lock);
284 + GstXvContext *context = xvimagesink->context;
287 + if (!context->have_dma_client)
290 + g_mutex_lock (&context->lock);
291 + prop_atom = XInternAtom (context->disp, XV_DMA_CLIENT_PROP, True);
293 + XvSetPortAttribute (context->disp, context->xv_port_id, prop_atom, 0);
295 + g_mutex_unlock (&context->lock);
297 + context->have_dma_client = FALSE;
304 + GstXvContext *context = xvimagesink->context;
308 + if (!context->have_dma_client)
311 + g_mutex_lock (&context->lock);
312 + prop_atom = XInternAtom (context->disp, XV_DMA_HOR_STRIDE_PROP, True);
314 + XvSetPortAttribute (context->disp, context->xv_port_id,
319 + prop_atom = XInternAtom (context->disp, XV_DMA_VER_STRIDE_PROP, True);
321 + XvSetPortAttribute (context->disp, context->xv_port_id,
326 + prop_atom = XInternAtom (context->disp, XV_DMA_DRM_FOURCC_PROP, True);
328 + XvSetPortAttribute (context->disp, context->xv_port_id,
329 + prop_atom, context->drm_fourcc);
331 + prop_atom = XInternAtom (context->disp, XV_DMA_DRM_AFBC_PROP, True);
333 + XvSetPortAttribute (context->disp, context->xv_port_id, prop_atom, afbc);
335 + g_mutex_unlock (&context->lock);
348 + GstXvContext *context = xvimagesink->context;
356 + if (!context->have_dma_client)
452 if (!gst_caps_can_intersect (context->caps, caps))
464 + context->drm_fourcc = -1;
467 + if (!context->have_dma_drm_fourcc)
470 + context->drm_fourcc = DRM_FORMAT_NV12_10;
472 + if (!context->have_dma_drm_fourcc)
475 + context->drm_fourcc = DRM_FORMAT_NV16;
496 + if (gst_is_dmabuf_memory (mem) && xvimagesink->context->have_dma_client) {