FFMPEG svn 24953 compile fails videodev.h:56: error: expected specifier-qualifier-list before ‘ulong
I was trying to compile FFMPEG rev 24953 (27-08-2010) on CentOS 4.8 and following error occured:
Code:
[root@server ffmpeg]# make
CC libavdevice/alldevices.o
CC libavdevice/avdevice.o
CC libavdevice/dv1394.o
CC libavdevice/oss_audio.o
CC libavdevice/v4l.o
In file included from libavdevice/v4l.c:34:
/usr/include/linux/videodev.h:56: error: expected specifier-qualifier-list before ‘ulong’
libavdevice/v4l.c: In function ‘grab_read_header’:
libavdevice/v4l.c:136: error: ‘struct video_tuner’ has no member named ‘mode’
libavdevice/v4l.c:138: error: ‘struct video_tuner’ has no member named ‘mode’
libavdevice/v4l.c:140: error: ‘struct video_tuner’ has no member named ‘mode’
make: *** [libavdevice/v4l.o] Error 1
I have found some sites suggesting following solutions:
use
--disable-demuxer=v4l --disable-demuxer=v4l2 configure options to ffmpeg
1) upgrade kernel and headers
2) upgrade ffmpeg to SVN revision >= 14852
3) configure ffmpeg disabling the v4l and v4l2 muxers/demuxers.
--disable-demuxer=v4l --disable-demuxer=v4l2 --disable-muxer=v4l --disable-muxer=v4l2
For me, for this SVN revision, none of the above worked.
Instead I found a working workaround:
Open
config.h and
config.mak files and change the following lines:
Quote:
config.h
#define CONFIG_V4L2_INDEV 1
#define CONFIG_V4L_INDEV 1
to
#define CONFIG_V4L2_INDEV 0
#define CONFIG_V4L_INDEV 0
config.mak
CONFIG_V4L2_INDEV=yes
CONFIG_V4L_INDEV=yes
to
CONFIG_V4L2_INDEV=no
CONFIG_V4L_INDEV=no
Now run make and compile will not fail.