[PATCH] Fix broken build by checking for used structure definition

Erik Auerswald <[email protected]>
Newsgroups gmane.comp.video.mplayer.devel
Message-ID <[email protected]>
Hi,

the attached patch fixes a build error if the header linux/videodev2.h
defines struct v4l2_ext_controls, but not struct v4l2_query_ext_ctrl. This
is the case on Ubuntu 14.04.4 LTS, for example.

Build error:

---8<------8<------8<------8<------8<------8<------8<------8<---

stream/stream_pvr.c: In function 'add_v4l2_ext_control':
stream/stream_pvr.c:1099:10: error: variable 'qctrl' has initializer but incomplete type
   struct v4l2_query_ext_ctrl qctrl = { .id = id };
          ^
stream/stream_pvr.c:1099:10: error: unknown field 'id' specified in initializer
stream/stream_pvr.c:1099:10: warning: excess elements in struct initializer [enabled by default]
stream/stream_pvr.c:1099:10: warning: (near initialization for 'qctrl') [enabled by default]
stream/stream_pvr.c:1099:30: error: storage size of 'qctrl' isn't known
   struct v4l2_query_ext_ctrl qctrl = { .id = id };
                              ^
stream/stream_pvr.c:1102:27: error: 'VIDIOC_QUERY_EXT_CTRL' undeclared (first use in this function)
   if (ioctl (pvr->dev_fd, VIDIOC_QUERY_EXT_CTRL, &qctrl) < 0)
                           ^
stream/stream_pvr.c:1102:27: note: each undeclared identifier is reported only once for each function it appears in
stream/stream_pvr.c:1099:30: warning: unused variable 'qctrl' [-Wunused-variable]
   struct v4l2_query_ext_ctrl qctrl = { .id = id };
                              ^
make: *** [stream/stream_pvr.o] Error 1
make: *** Waiting for unfinished jobs....

---8<------8<------8<------8<------8<------8<------8<------8<---

Thanks,
Erik
-- 
http://www.unix-ag.uni-kl.de/~auerswal/

_______________________________________________
MPlayer-dev-eng mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
mplayer-configure-check_for_v4l2_query_ext_ctrl.patch (text/x-diff, 475 B)
Index: configure
===================================================================
--- configure	(revision 37778)
+++ configure	(working copy)
@@ -7760,7 +7760,11 @@
   cat > $TMPC <<EOF
 #include <sys/time.h>
 #include <linux/videodev2.h>
-int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
+int main(void) {
+  struct v4l2_ext_controls ext;
+  struct v4l2_query_ext_ctrl qctrl;
+  return ext.controls->value;
+}
 EOF
   cc_check && _pvr=yes
 fi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.