On Mon, 27 Oct 2014 21:44:59 +0100 (CET) g...@videolan.org (Luca Barbato) wrote:
> ffmpeg | branch: master | Luca Barbato <lu_z...@gentoo.org> | Sun Aug > 24 14:18:22 2014 +0200| [a6674d2e7771dbf7a4a5556f5e126be83cadac96] | > committer: Luca Barbato > > xcbgrab: XCB-based screen capture > > Matches the x11grab screen capture by features. > 100644 --- a/libavdevice/Makefile > -OBJS-$(CONFIG_X11GRAB_INDEV) += x11grab.o > +OBJS-$(CONFIG_X11GRAB_XLIB_INDEV) += x11grab.o > +OBJS-$(CONFIG_X11GRAB_XCB_INDEV) += xcbgrab.o so its name is changed in the makefile, but not the device name? > diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c > REGISTER_INDEV (X11GRAB, x11grab); > + REGISTER_INDEV (X11GRAB_XCB, x11grab_xcb); > a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c new file mode 100644 > index 0000000..5055fde > --- /dev/null > +++ b/libavdevice/xcbgrab.c > @@ -0,0 +1,655 @@ > +/* > + * XCB input grabber > + * Copyright (C) 2014 Luca Barbato <lu_z...@gentoo.org> > + * > + * This file is part of Libav. > +static const AVOption options[] = { > + { "draw_mouse", "Draw the mouse pointer.", OFFSET(draw_mouse), > AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, D }, > + { "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 }, > FOLLOW_CENTER, INT_MAX, D, "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, D, "follow_mouse" }, > + { "show_region", "Show the grabbing region.", > OFFSET(show_region), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, D }, > + { "region_border", "Set the region border thickness.", > OFFSET(region_border), AV_OPT_TYPE_INT, { .i64 = 3 }, 1, 128, D }, > + { NULL }, from x11grab.c: static const AVOption options[] = { { "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" }, > +static void wait_frame(AVFormatContext *s, AVPacket *pkt) > +{ > + XCBGrabContext *c = s->priv_data; > + int64_t curtime, delay; > + int64_t frame_time = av_rescale_q(1, c->time_base, > AV_TIME_BASE_Q); + > + c->time_frame += frame_time; > + > + for (;;) { > + curtime = av_gettime(); > + delay = c->time_frame - curtime; > + if (delay <= 0) > + break; > + av_usleep(delay); > + } > + > + pkt->pts = curtime; is this file based on x11grab.c ? if so , copyrights need to be modified. from x11grab.c: int64_t curtime, delay; ... /* wait based on the frame rate */ for (;;) { curtime = av_gettime(); delay = s->time_frame * av_q2d(s->time_base) - curtime; if (delay <= 0) { if (delay < INT64_C(-1000000) * av_q2d(s->time_base)) s->time_frame += INT64_C(1000000); break; } ... pkt->pts = curtime; > +AVInputFormat ff_x11grab_xcb_demuxer = { > + .name = "x11grab", > + .long_name = NULL_IF_CONFIG_SMALL("X11 screen capture, > using XCB"), i've confused myself with x11grab x11grab_xlib and x11grab_xcb , is the name of this demuxer correct? -compn _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog