Lines Matching refs:xv

59 static BOOL xf_tsmf_is_format_supported(xfXvContext* xv, UINT32 pixfmt)  in xf_tsmf_is_format_supported()  argument
63 if (!xv->xv_pixfmts) in xf_tsmf_is_format_supported()
66 for (i = 0; xv->xv_pixfmts[i]; i++) in xf_tsmf_is_format_supported()
68 if (xv->xv_pixfmts[i] == pixfmt) in xf_tsmf_is_format_supported()
89 xfXvContext* xv; in xf_tsmf_xv_video_frame_event() local
102 xv = (xfXvContext*)xfc->xv_context; in xf_tsmf_xv_video_frame_event()
104 if (!xv) in xf_tsmf_xv_video_frame_event()
107 if (xv->xv_port == 0) in xf_tsmf_xv_video_frame_event()
140 if (xv->xv_colorkey_atom != None) in xf_tsmf_xv_video_frame_event()
142 XvGetPortAttribute(xfc->display, xv->xv_port, xv->xv_colorkey_atom, &colorkey); in xf_tsmf_xv_video_frame_event()
173 if (xf_tsmf_is_format_supported(xv, pixfmt)) in xf_tsmf_xv_video_frame_event()
177 else if (pixfmt == RDP_PIXFMT_I420 && xf_tsmf_is_format_supported(xv, RDP_PIXFMT_YV12)) in xf_tsmf_xv_video_frame_event()
182 else if (pixfmt == RDP_PIXFMT_YV12 && xf_tsmf_is_format_supported(xv, RDP_PIXFMT_I420)) in xf_tsmf_xv_video_frame_event()
194 image = XvShmCreateImage(xfc->display, xv->xv_port, xvpixfmt, 0, event->frameWidth, in xf_tsmf_xv_video_frame_event()
197 if (xv->xv_image_size != image->data_size) in xf_tsmf_xv_video_frame_event()
199 if (xv->xv_image_size > 0) in xf_tsmf_xv_video_frame_event()
201 shmdt(xv->xv_shmaddr); in xf_tsmf_xv_video_frame_event()
202 shmctl(xv->xv_shmid, IPC_RMID, NULL); in xf_tsmf_xv_video_frame_event()
205 xv->xv_image_size = image->data_size; in xf_tsmf_xv_video_frame_event()
206 xv->xv_shmid = shmget(IPC_PRIVATE, image->data_size, IPC_CREAT | 0777); in xf_tsmf_xv_video_frame_event()
207 xv->xv_shmaddr = shmat(xv->xv_shmid, 0, 0); in xf_tsmf_xv_video_frame_event()
210 shminfo.shmid = xv->xv_shmid; in xf_tsmf_xv_video_frame_event()
211 shminfo.shmaddr = image->data = xv->xv_shmaddr; in xf_tsmf_xv_video_frame_event()
293 XvShmPutImage(xfc->display, xv->xv_port, xfc->window->handle, xfc->gc, image, 0, 0, in xf_tsmf_xv_video_frame_event()
297 if (xv->xv_colorkey_atom == None) in xf_tsmf_xv_video_frame_event()
320 xfXvContext* xv; in xf_tsmf_xv_init() local
328 xv = (xfXvContext*)calloc(1, sizeof(xfXvContext)); in xf_tsmf_xv_init()
330 if (!xv) in xf_tsmf_xv_init()
333 xfc->xv_context = xv; in xf_tsmf_xv_init()
335 xv->xv_colorkey_atom = None; in xf_tsmf_xv_init()
336 xv->xv_image_size = 0; in xf_tsmf_xv_init()
337 xv->xv_port = xv_port; in xf_tsmf_xv_init()
369 if (xv->xv_port == 0 && i == num_adaptors - 1) in xf_tsmf_xv_init()
370 xv->xv_port = ai[i].base_id; in xf_tsmf_xv_init()
376 if (xv->xv_port == 0) in xf_tsmf_xv_init()
381 WLog_DBG(TAG, "selected %ld", xv->xv_port); in xf_tsmf_xv_init()
383 attr = XvQueryPortAttributes(xfc->display, xv->xv_port, &ret); in xf_tsmf_xv_init()
389 xv->xv_colorkey_atom = XInternAtom(xfc->display, "XV_COLORKEY", FALSE); in xf_tsmf_xv_init()
390 XvSetPortAttribute(xfc->display, xv->xv_port, xv->xv_colorkey_atom, in xf_tsmf_xv_init()
399 fo = XvListImageFormats(xfc->display, xv->xv_port, &ret); in xf_tsmf_xv_init()
403 xv->xv_pixfmts = (UINT32*)calloc((ret + 1), sizeof(UINT32)); in xf_tsmf_xv_init()
407 xv->xv_pixfmts[i] = fo[i].id; in xf_tsmf_xv_init()
408 WLog_DBG(TAG, "%c%c%c%c ", ((char*)(xv->xv_pixfmts + i))[0], in xf_tsmf_xv_init()
409 ((char*)(xv->xv_pixfmts + i))[1], ((char*)(xv->xv_pixfmts + i))[2], in xf_tsmf_xv_init()
410 ((char*)(xv->xv_pixfmts + i))[3]); in xf_tsmf_xv_init()
412 xv->xv_pixfmts[i] = 0; in xf_tsmf_xv_init()
429 xfXvContext* xv = (xfXvContext*)xfc->xv_context; in xf_tsmf_xv_uninit() local
432 if (xv) in xf_tsmf_xv_uninit()
434 if (xv->xv_image_size > 0) in xf_tsmf_xv_uninit()
436 shmdt(xv->xv_shmaddr); in xf_tsmf_xv_uninit()
437 shmctl(xv->xv_shmid, IPC_RMID, NULL); in xf_tsmf_xv_uninit()
439 if (xv->xv_pixfmts) in xf_tsmf_xv_uninit()
441 free(xv->xv_pixfmts); in xf_tsmf_xv_uninit()
442 xv->xv_pixfmts = NULL; in xf_tsmf_xv_uninit()
444 free(xv); in xf_tsmf_xv_uninit()