Opened 12 years ago
Closed 12 years ago
#4139 closed defect (fixed)
xcbgrab (x11grab device) fails to build with libxcb < 1.4
| Reported by: | barsnick | Owned by: | |
|---|---|---|---|
| Priority: | minor | Component: | avdevice |
| Version: | git-master | Keywords: | xcb |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Summary of the bug:
With old libxcb, notably before version 1.4, the xcbgrab device fails to build.
How to reproduce:
% ./configure --enable-libxcb % make
gcc output:
libavdevice/xcbgrab.c: In function ‘xcbgrab_frame_shm’: libavdevice/xcbgrab.c:247: error: ‘xcb_generic_error_t’ has no member named ‘resource_id’ libavdevice/xcbgrab.c:247: error: ‘xcb_generic_error_t’ has no member named ‘minor_code’ libavdevice/xcbgrab.c:247: error: ‘xcb_generic_error_t’ has no member named ‘major_code’
icc output:
libavdevice/xcbgrab.c(247): error: struct "<unnamed>" has no field "resource_id"
e->sequence, e->resource_id, e->minor_code, e->major_code);
^
libavdevice/xcbgrab.c(247): error: struct "<unnamed>" has no field "minor_code"
e->sequence, e->resource_id, e->minor_code, e->major_code);
^
libavdevice/xcbgrab.c(247): error: struct "<unnamed>" has no field "major_code"
e->sequence, e->resource_id, e->minor_code, e->major_code);
^
This is due to resource_id, minor_code, major_code not having been introduced until version 1.4 of libxcb, as documented in the changelog and this commit:
http://cgit.freedesktop.org/xcb/libxcb/commit/?id=96ff5fb635bc333e80ebce6cc03008a1b9992ff6
and actually added in this commit:
http://cgit.freedesktop.org/xcb/libxcb/commit/src/xcb.h?id=f4c2794bf5990a0b2f6168f2b22b60b15e08ac44
I would agree totally if you argued that dependencies which haven't been updated for over five years are considered ancient and outdated. I have no idea when this version of libxcb was last deployed to systems which are currently still considered not-quite-EOL. I just happen to have it on one of my systems. Feel free to close this ticket.
In this case, it only affects an av_log() error message though. Omitting those fields may be acceptable, or adding a configure check. Changing that av_log() call "works for me".
Change History (3)
comment:1 by , 12 years ago
| Keywords: | xcb added |
|---|---|
| Reproduced by developer: | set |
| Status: | new → open |
comment:2 by , 12 years ago
comment:3 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |
Added a version check in cc5f5e140cdcc96a9a0574d4587b176adfb4a6ac



Workaround is to use
--disable-libxcb-shm.