[FFmpeg-cvslog] lavd/x11grab: add an option to disable MIT-SHM.

Nicolas George git at videolan.org
Thu Jul 17 20:39:34 CEST 2014


ffmpeg | branch: master | Nicolas George <george at nsup.org> | Tue Jul 15 11:37:47 2014 +0200| [1d12df1ad78c2f271cb4e70468881d963ec888d7] | committer: Nicolas George

lavd/x11grab: add an option to disable MIT-SHM.

With remote displays supporting the MIT-SHM extension,
the extension is detected and used, but attaching fails
asynchronously.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1d12df1ad78c2f271cb4e70468881d963ec888d7
---

 doc/indevs.texi       |    4 ++++
 libavdevice/x11grab.c |    5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/doc/indevs.texi b/doc/indevs.texi
index 4205808..4ca12ff 100644
--- a/doc/indevs.texi
+++ b/doc/indevs.texi
@@ -895,6 +895,10 @@ ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_siz
 
 @item video_size
 Set the video frame size. Default value is @code{vga}.
+
+ at item use_shm
+Use the MIT-SHM extension for shared memory. Default value is @code{1}.
+It may be necessary to disable it for remote displays.
 @end table
 
 @c man end INPUT DEVICES
diff --git a/libavdevice/x11grab.c b/libavdevice/x11grab.c
index 7271e6c..45bea80 100644
--- a/libavdevice/x11grab.c
+++ b/libavdevice/x11grab.c
@@ -166,7 +166,7 @@ x11grab_read_header(AVFormatContext *s1)
     int x_off = 0;
     int y_off = 0;
     int screen;
-    int use_shm;
+    int use_shm = 0;
     char *dpyname, *offset;
     int ret = 0;
     Colormap color_map;
@@ -223,8 +223,10 @@ x11grab_read_header(AVFormatContext *s1)
         av_log(s1, AV_LOG_INFO, "followmouse is enabled, resetting grabbing region to x: %d y: %d\n", x_off, y_off);
     }
 
+    if (x11grab->use_shm) {
     use_shm = XShmQueryExtension(dpy);
     av_log(s1, AV_LOG_INFO, "shared memory extension%s found\n", use_shm ? "" : " not");
+    }
 
     if(use_shm) {
         int scr = XDefaultScreen(dpy);
@@ -641,6 +643,7 @@ static const AVOption options[] = {
     { "framerate",  "set video frame rate",      OFFSET(framerate),   AV_OPT_TYPE_VIDEO_RATE, {.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 },
+    { "use_shm",     "use MIT-SHM extension",    OFFSET(use_shm),     AV_OPT_TYPE_INT,        {.i64 = 1}, 0, 1, DEC },
     { NULL },
 };
 



More information about the ffmpeg-cvslog mailing list