diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c index 161bd03281..23969c9752 100644 --- a/libavdevice/xcbgrab.c +++ b/libavdevice/xcbgrab.c @@ -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