#include "config.h"
#include "libavformat/avformat.h"
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <time.h>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <X11/extensions/XShm.h>
Go to the source code of this file.
Data Structures | |
struct | x11_grab |
X11 Device Demuxer context. More... | |
Defines | |
#define | _LINUX_TIME_H 1 |
Functions | |
static int | x11grab_read_header (AVFormatContext *s1, AVFormatParameters *ap) |
Initializes the x11 grab device demuxer (public device demuxer API). | |
static void | get_pointer_coordinates (int *x, int *y, Display *dpy, AVFormatContext *s1) |
Get pointer coordinates from X11. | |
static void | apply_masks (uint8_t *dst, int and, int or, int bits_per_pixel) |
Mouse painting helper function that applies an 'and' and 'or' mask pair to '*dst' pixel. | |
static void | paint_mouse_pointer (XImage *image, struct x11_grab *s, int x, int y) |
Paints a mouse pointer in an X11 image. | |
static int | xget_zpixmap (Display *dpy, Drawable d, XImage *image, int x, int y) |
Reads new data in the image structure. | |
static int | x11grab_read_packet (AVFormatContext *s1, AVPacket *pkt) |
Grabs a frame from x11 (public device demuxer API). | |
static int | x11grab_read_close (AVFormatContext *s1) |
Closes x11 frame grabber (public device demuxer API). | |
Variables | |
AVInputFormat | x11_grab_device_demuxer |
x11 grabber device demuxer declaration |
Definition in file x11grab.c.
static void apply_masks | ( | uint8_t * | dst, | |
int | and, | |||
int | or, | |||
int | bits_per_pixel | |||
) | [inline, static] |
Mouse painting helper function that applies an 'and' and 'or' mask pair to '*dst' pixel.
It actually draws a mouse pointer pixel to grabbed frame.
dst | Destination pixel | |
and | Part of the mask that must be applied using a bitwise 'and' operator | |
or | Part of the mask that must be applied using a bitwise 'or' operator | |
bits_per_pixel | Bits per pixel used in the grabbed image |
Definition at line 284 of file x11grab.c.
Referenced by paint_mouse_pointer().
static void get_pointer_coordinates | ( | int * | x, | |
int * | y, | |||
Display * | dpy, | |||
AVFormatContext * | s1 | |||
) | [static] |
Get pointer coordinates from X11.
x | Integer where horizontal coordinate will be returned | |
y | Integer where vertical coordinate will be returned | |
dpy | X11 display from where pointer coordinates are retrieved | |
s1 | Context used for logging errors if necessary |
Definition at line 252 of file x11grab.c.
Referenced by x11grab_read_packet().
static void paint_mouse_pointer | ( | XImage * | image, | |
struct x11_grab * | s, | |||
int | x, | |||
int | y | |||
) | [static] |
Paints a mouse pointer in an X11 image.
image | image to paint the mouse pointer to | |
s | context used to retrieve original grabbing rectangle coordinates | |
x | Mouse pointer coordinate | |
y | Mouse pointer coordinate |
Definition at line 309 of file x11grab.c.
Referenced by x11grab_read_packet().
static int x11grab_read_close | ( | AVFormatContext * | s1 | ) | [static] |
static int x11grab_read_header | ( | AVFormatContext * | s1, | |
AVFormatParameters * | ap | |||
) | [static] |
Initializes the x11 grab device demuxer (public device demuxer API).
s1 | Context from avformat core | |
ap | Parameters from avformat core |
static int x11grab_read_packet | ( | AVFormatContext * | s1, | |
AVPacket * | pkt | |||
) | [static] |
static int xget_zpixmap | ( | Display * | dpy, | |
Drawable | d, | |||
XImage * | image, | |||
int | x, | |||
int | y | |||
) | [static] |
Reads new data in the image structure.
dpy | X11 display to grab from | |
d | ||
image | Image where the grab will be put | |
x | Top-Left grabbing rectangle horizontal coordinate | |
y | Top-Left grabbing rectangle vertical coordinate |
Definition at line 388 of file x11grab.c.
Referenced by x11grab_read_packet().
Initial value:
{ "x11grab", NULL_IF_CONFIG_SMALL("X11grab"), sizeof(struct x11_grab), NULL, x11grab_read_header, x11grab_read_packet, x11grab_read_close, .flags = AVFMT_NOFILE, }