xcbgrab: Correctly make shm optional
authorLuca Barbato <lu_zero@gentoo.org>
Tue, 25 Nov 2014 22:38:43 +0000 (23:38 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 15 Feb 2015 17:20:54 +0000 (18:20 +0100)
The segment field in the struct has to be conditionally build
as well.

libavdevice/xcbgrab.c

index 161bd03..23969c9 100644 (file)
@@ -47,8 +47,9 @@ typedef struct XCBGrabContext {
     xcb_connection_t *conn;
     xcb_screen_t *screen;
     xcb_window_t window;
+#if CONFIG_LIBXCB_SHM
     xcb_shm_seg_t segment;
-
+#endif
     int64_t time_frame;
     AVRational time_base;
 
@@ -614,8 +615,6 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
         return AVERROR(EIO);
     }
 
-    c->segment = xcb_generate_id(c->conn);
-
     ret = create_stream(s);
 
     if (ret < 0) {
@@ -624,7 +623,8 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
     }
 
 #if CONFIG_LIBXCB_SHM
-    c->has_shm = check_shm(c->conn);
+    if ((c->has_shm = check_shm(c->conn)))
+        c->segment = xcb_generate_id(c->conn);
 #endif
 
 #if CONFIG_LIBXCB_XFIXES