Commit 98baa815 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '89fa2b56'

* commit '89fa2b56':
  x11grab: Check for XFixes availability at runtime

See: a65c0a3fMerged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents de52af90 89fa2b56
...@@ -172,6 +172,19 @@ static int setup_shm(AVFormatContext *s, Display *dpy, XImage **image) ...@@ -172,6 +172,19 @@ static int setup_shm(AVFormatContext *s, Display *dpy, XImage **image)
return 0; return 0;
} }
static int setup_mouse(Display *dpy, int screen)
{
int ev_ret, ev_err;
if (XFixesQueryExtension(dpy, &ev_ret, &ev_err)) {
Window root = RootWindow(dpy, screen);
XFixesSelectCursorInput(dpy, root, XFixesDisplayCursorNotifyMask);
return 0;
}
return AVERROR(ENOSYS);
}
static int pixfmt_from_image(AVFormatContext *s, XImage *image, int *pix_fmt) static int pixfmt_from_image(AVFormatContext *s, XImage *image, int *pix_fmt)
{ {
av_log(s, AV_LOG_DEBUG, av_log(s, AV_LOG_DEBUG,
...@@ -326,6 +339,12 @@ static int x11grab_read_header(AVFormatContext *s1) ...@@ -326,6 +339,12 @@ static int x11grab_read_header(AVFormatContext *s1)
AllPlanes, ZPixmap); AllPlanes, ZPixmap);
} }
if (x11grab->draw_mouse && setup_mouse(dpy, screen) < 0) {
av_log(s1, AV_LOG_WARNING,
"XFixes not available, cannot draw the mouse cursor\n");
x11grab->draw_mouse = 0;
}
x11grab->frame_size = x11grab->width * x11grab->height * image->bits_per_pixel / 8; x11grab->frame_size = x11grab->width * x11grab->height * image->bits_per_pixel / 8;
x11grab->dpy = dpy; x11grab->dpy = dpy;
x11grab->time_base = av_inv_q(x11grab->framerate); x11grab->time_base = av_inv_q(x11grab->framerate);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment