#include "config.h"
#include "libavformat/internal.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/time.h"
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <sys/shm.h>
#include <X11/extensions/shape.h>
#include <X11/extensions/XShm.h>
#include <X11/extensions/Xfixes.h>
#include "avdevice.h"
Go to the source code of this file.
Data Structures | |
| struct | x11grab |
| X11 Device Demuxer context. More... | |
Defines | |
| #define | REGION_WIN_BORDER 3 |
| #define | OFFSET(x) offsetof(struct x11grab, x) |
| #define | DEC AV_OPT_FLAG_DECODING_PARAM |
Functions | |
| static void | x11grab_draw_region_win (struct x11grab *s) |
| Draw grabbing region window. | |
| static void | x11grab_region_win_init (struct x11grab *s) |
| Initialize grabbing region window. | |
| static int | x11grab_read_header (AVFormatContext *s1) |
| Initialize the x11 grab device demuxer (public device demuxer API). | |
| static void | paint_mouse_pointer (XImage *image, struct x11grab *s) |
| Paint a mouse pointer in an X11 image. | |
| static int | xget_zpixmap (Display *dpy, Drawable d, XImage *image, int x, int y) |
| Read new data in the image structure. | |
| static int | x11grab_read_packet (AVFormatContext *s1, AVPacket *pkt) |
| Grab a frame from x11 (public device demuxer API). | |
| static int | x11grab_read_close (AVFormatContext *s1) |
| Close x11 frame grabber (public device demuxer API). | |
Variables | |
| static const AVOption | options [] |
| static const AVClass | x11_class |
| AVInputFormat | ff_x11grab_demuxer |
| x11 grabber device demuxer declaration | |
Definition in file x11grab.c.
| #define REGION_WIN_BORDER 3 |
Definition at line 83 of file x11grab.c.
Referenced by x11grab_draw_region_win(), x11grab_read_packet(), and x11grab_region_win_init().
| static void paint_mouse_pointer | ( | XImage * | image, | |
| struct x11grab * | s | |||
| ) | [static] |
Paint a mouse pointer in an X11 image.
| image | image to paint the mouse pointer to | |
| s | context used to retrieve original grabbing rectangle coordinates |
Definition at line 338 of file x11grab.c.
Referenced by x11grab_read_packet().
| static void x11grab_draw_region_win | ( | struct x11grab * | s | ) | [static] |
Draw grabbing region window.
| s | x11grab context |
Definition at line 90 of file x11grab.c.
Referenced by x11grab_read_packet(), and x11grab_region_win_init().
| static int x11grab_read_close | ( | AVFormatContext * | s1 | ) | [static] |
| static int x11grab_read_header | ( | AVFormatContext * | s1 | ) | [static] |
Initialize the x11 grab device demuxer (public device demuxer API).
| s1 | Context from avformat core |
| static int x11grab_read_packet | ( | AVFormatContext * | s1, | |
| AVPacket * | pkt | |||
| ) | [static] |
| static void x11grab_region_win_init | ( | struct x11grab * | s | ) | [static] |
Initialize grabbing region window.
| s | x11grab context |
Definition at line 115 of file x11grab.c.
Referenced by x11grab_read_packet().
Read 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 406 of file x11grab.c.
Referenced by x11grab_read_packet().
Initial value:
{
.name = "x11grab",
.long_name = NULL_IF_CONFIG_SMALL("X11grab"),
.priv_data_size = sizeof(struct x11grab),
.read_header = x11grab_read_header,
.read_packet = x11grab_read_packet,
.read_close = x11grab_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &x11_class,
}
Initial value:
{
{ "draw_mouse", "draw the mouse pointer", OFFSET(draw_mouse), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, DEC },
{ "follow_mouse", "move the grabbing region when the mouse pointer reaches within specified amount of pixels to the edge of region",
OFFSET(follow_mouse), AV_OPT_TYPE_INT, {.i64 = 0}, -1, INT_MAX, DEC, "follow_mouse" },
{ "centered", "keep the mouse pointer at the center of grabbing region when following",
0, AV_OPT_TYPE_CONST, {.i64 = -1}, INT_MIN, INT_MAX, DEC, "follow_mouse" },
{ "framerate", "set video frame rate", OFFSET(framerate), AV_OPT_TYPE_STRING, {.str = "ntsc"}, 0, 0, DEC },
{ "show_region", "show the grabbing region", OFFSET(show_region), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC },
{ "video_size", "set video frame size", OFFSET(width), AV_OPT_TYPE_IMAGE_SIZE, {.str = "vga"}, 0, 0, DEC },
{ NULL },
}
Initial value:
{
.class_name = "X11grab indev",
.item_name = av_default_item_name,
.option = options,
.version = LIBAVUTIL_VERSION_INT,
}
1.5.8