Unable to compile Audacity (Subversion trunk) on Fedora 17

Hello Everyone,
I am trying to compile Audacity from the Subversion trunk, and “make” is failing as follows:

g++ -c -I../lib-src/portmixer/include   -Wall -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../lib-src/FileDialog -I/media/ext4/steve/CVS/Assorted-CVS-Modules/audacity-read-only/lib-src/lib-widget-extra          -I../lib-src/libresample/include -I../lib-src/sbsms/include -I../lib-src/soundtouch/include -I../lib-src/libnyquist -I../lib-src/libvamp    -I../lib-src/portsmf -I../lib-src/portaudio-v19/include  -fno-strict-aliasing -I./include -I. -DLIBDIR="/usr/local/spu/spu-20120627/audacity/lib" -D__STDC_CONSTANT_MACROS   -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15     ondemand/ODTask.cpp -o ondemand/ODTask.o
ondemand/ODDecodeFFmpegTask.cpp:24:8: error: ‘FFmpegLibs’ does not name a type
g++ -c -I../lib-src/portmixer/include   -Wall -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../lib-src/FileDialog -I/media/ext4/steve/CVS/Assorted-CVS-Modules/audacity-read-only/lib-src/lib-widget-extra          -I../lib-src/libresample/include -I../lib-src/sbsms/include -I../lib-src/soundtouch/include -I../lib-src/libnyquist -I../lib-src/libvamp    -I../lib-src/portsmf -I../lib-src/portaudio-v19/include  -fno-strict-aliasing -I./include -I. -DLIBDIR="/usr/local/spu/spu-20120627/audacity/lib" -D__STDC_CONSTANT_MACROS   -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15     ondemand/ODTaskThread.cpp -o ondemand/ODTaskThread.o
g++ -c -I../lib-src/portmixer/include   -Wall -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../lib-src/FileDialog -I/media/ext4/steve/CVS/Assorted-CVS-Modules/audacity-read-only/lib-src/lib-widget-extra          -I../lib-src/libresample/include -I../lib-src/sbsms/include -I../lib-src/soundtouch/include -I../lib-src/libnyquist -I../lib-src/libvamp    -I../lib-src/portsmf -I../lib-src/portaudio-v19/include  -fno-strict-aliasing -I./include -I. -DLIBDIR="/usr/local/spu/spu-20120627/audacity/lib" -D__STDC_CONSTANT_MACROS   -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15     ondemand/ODWaveTrackTaskQueue.cpp -o ondemand/ODWaveTrackTaskQueue.o
ondemand/ODDecodeFFmpegTask.cpp:37:4: error: ‘uint8_t’ does not name a type
ondemand/ODDecodeFFmpegTask.cpp:41:4: error: ‘SampleFormat’ does not name a type
ondemand/ODDecodeFFmpegTask.cpp:55:47: error: ‘streamContext’ has not been declared
ondemand/ODDecodeFFmpegTask.cpp:55:106: error: ‘AVFormatContext’ has not been declared
ondemand/ODDecodeFFmpegTask.cpp:81:4: error: ‘streamContext’ does not name a type
ondemand/ODDecodeFFmpegTask.cpp:87:20: error: ‘streamContext’ has not been declared
ondemand/ODDecodeFFmpegTask.cpp:90:4: error: ‘streamContext’ does not name a type
ondemand/ODDecodeFFmpegTask.cpp:92:4: error: ‘AVFormatContext’ does not name a type
ondemand/ODDecodeFFmpegTask.cpp: In member function ‘virtual ODFileDecoder* ODDecodeFFmpegTask::CreateFileDecoder(const wxString&)’:
ondemand/ODDecodeFFmpegTask.cpp:137:62: error: ‘streamContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:137:77: error: expected primary-expression before ‘)’ token
ondemand/ODDecodeFFmpegTask.cpp:137:107: error: ‘AVFormatContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:137:123: error: expected primary-expression before ‘)’ token
ondemand/ODDecodeFFmpegTask.cpp: At global scope:
ondemand/ODDecodeFFmpegTask.cpp:216:61: error: ‘streamContext’ has not been declared
ondemand/ODDecodeFFmpegTask.cpp:216:119: error: ‘AVFormatContext’ has not been declared
ondemand/ODDecodeFFmpegTask.cpp: In constructor ‘ODFFmpegDecoder::ODFFmpegDecoder(const wxString&, int**, int, WaveTrack***, int*, int)’:
ondemand/ODDecodeFFmpegTask.cpp:220:1: error: class ‘ODFFmpegDecoder’ does not have any field named ‘mScs’
ondemand/ODDecodeFFmpegTask.cpp:221:1: error: class ‘ODFFmpegDecoder’ does not have any field named ‘mFormatContext’
ondemand/ODDecodeFFmpegTask.cpp:227:19: error: ‘PickFFmpegLibs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:234:38: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:243:8: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:243:59: error: ‘AV_NOPTS_VALUE’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:247:41: error: ‘AV_TIME_BASE’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp: In destructor ‘virtual ODFFmpegDecoder::~ODFFmpegDecoder()’:
ondemand/ODDecodeFFmpegTask.cpp:256:8: error: ‘FFmpegLibsInst’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:258:11: error: ‘mFormatContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:258:61: error: ‘av_close_input_file’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:259:27: error: ‘av_log_default_callback’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:259:50: error: ‘av_log_set_callback’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:264:11: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:265:48: error: ‘av_free’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:267:14: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:269:9: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:274:29: error: ‘struct _FFmpegDecodeCache’ has no member named ‘samplePtr’
ondemand/ODDecodeFFmpegTask.cpp:285:19: error: ‘DropFFmpegLibs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp: In member function ‘virtual int ODFFmpegDecoder::Decode(char*&, sampleFormat&, sampleCount, sampleCount, unsigned int)’:
ondemand/ODDecodeFFmpegTask.cpp:295:13: error: ‘mScs’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:299:4: error: ‘streamContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:299:19: error: ‘sc’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:315:7: error: ‘AVStream’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:315:17: error: ‘st’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:317:7: error: ‘uint64_t’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:317:16: error: expected ‘;’ before ‘targetts’
ondemand/ODDecodeFFmpegTask.cpp:321:36: error: ‘mFormatContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:332:13: error: ‘targetts’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:337:30: error: ‘mFormatContext’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:337:63: error: ‘av_seek_frame’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:362:69: error: ‘ReadNextFrame’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:365:32: error: expected primary-expression before ‘)’ token
ondemand/ODDecodeFFmpegTask.cpp:365:33: error: expected ‘)’ before numeric constant
ondemand/ODDecodeFFmpegTask.cpp:404:23: error: ‘FFMpegDecodeCache’ has no member named ‘samplefmt’
ondemand/ODDecodeFFmpegTask.cpp:404:35: error: ‘SAMPLE_FMT_S16’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:406:23: error: ‘FFMpegDecodeCache’ has no member named ‘samplefmt’
ondemand/ODDecodeFFmpegTask.cpp:406:35: error: ‘SAMPLE_FMT_FLT’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:408:20: error: ‘FFMpegDecodeCache’ has no member named ‘samplePtr’
ondemand/ODDecodeFFmpegTask.cpp:408:33: error: ‘uint8_t’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:408:41: error: expected primary-expression before ‘)’ token
ondemand/ODDecodeFFmpegTask.cpp:408:43: error: expected ‘;’ before ‘malloc’
ondemand/ODDecodeFFmpegTask.cpp:410:27: error: ‘FFMpegDecodeCache’ has no member named ‘samplePtr’
ondemand/ODDecodeFFmpegTask.cpp:426:38: error: ‘av_free_packet’ was not declared in this scope
ondemand/ODDecodeFFmpegTask.cpp:433:36: error: expected primary-expression before ‘)’ token
ondemand/ODDecodeFFmpegTask.cpp:433:38: error: expected ‘)’ before numeric constant
ondemand/ODDecodeFFmpegTask.cpp:655:1: error: expected ‘)’ at end of input
ondemand/ODDecodeFFmpegTask.cpp:655:1: error: expected statement at end of input
ondemand/ODDecodeFFmpegTask.cpp:655:1: error: expected ‘}’ at end of input
g++ -c -I../lib-src/portmixer/include   -Wall -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -I../lib-src/FileDialog -I/media/ext4/steve/CVS/Assorted-CVS-Modules/audacity-read-only/lib-src/lib-widget-extra          -I../lib-src/libresample/include -I../lib-src/sbsms/include -I../lib-src/soundtouch/include -I../lib-src/libnyquist -I../lib-src/libvamp    -I../lib-src/portsmf -I../lib-src/portaudio-v19/include  -fno-strict-aliasing -I./include -I. -DLIBDIR="/usr/local/spu/spu-20120627/audacity/lib" -D__STDC_CONSTANT_MACROS   -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15     prefs/BatchPrefs.cpp -o prefs/BatchPrefs.o
ondemand/ODDecodeFFmpegTask.cpp:655:1: warning: control reaches end of non-void function [-Wreturn-type]
make[1]: *** [ondemand/ODDecodeFFmpegTask.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/media/ext4/steve/CVS/Assorted-CVS-Modules/audacity-read-only/src'
make: *** [audacity] Error 2

My OS is Fedora 17.
My version of ffmpeg is “ffmpeg-0.10.4-1.fc17.x86_64” from the rpmfusion-free-updates repo.

I will be glad to give you any other information that you may need.

Steven P. Ulrick

It may be that Audacity is not compatible with your version of FFMpeg.
A similar case here: https://forum.audacityteam.org/t/compile-failed-in-debian-squeeze-x64/24919/1

You could try building without FFMpeg support, or change your version of FFMpeg to a supported version.

I think that to build without FFMpeg you would need to compile with something like:

./configure --without-ffmpeg

(I’ve not tried that myself)

Now that’s wierd. I already do compile without FFMPEG support.
Here is my “configure” command line:
./configure --without-ffmpeg --prefix=/usr/local/spu/spu-$(xdate)/audacity

And, here is the output of the above quoted “configure” line:

Finished configure:
LIBVORBIS: using SYSTEM libraries
LIBMAD: using SYSTEM libraries
LIBSNDFILE: using SYSTEM libraries
LIBFLAC: using SYSTEM libraries
LIBID3TAG: using SYSTEM libraries
LIBSAMPLERATE: disabled
LIBRESAMPLE: using LOCAL libraries
LIBSBSMS: using LOCAL libraries
LIBSOUNDTOUCH: using LOCAL libraries
LIBNYQUIST: using LOCAL libraries
LIBVAMP: using LOCAL libraries
LIBEXPAT: using SYSTEM libraries
LIBTWOLAME: using SYSTEM libraries
FFMPEG: disabled
PORTSMF: using LOCAL libraries
PORTAUDIO: using LOCAL libraries
LAME: using SYSTEM libraries
ladspa: enabled
audiounits: disabled
prefix=/usr/local/spu/spu-20120627/audacity

So, it LOOKS like I already compile without FFMPEG…

Hmm, that doesn’t look quite right does it. I’ll ask about this.

Building against versions of FFmpeg above 8 are largely untested so I’m not surprised if there are problems with FFMpeg 9, 10 and 11.

Try adding this to your configure options:

--disable-dynamic-loading

This is a new configure option which I’ve not yet tried so I don’t know exactly how it will work, but it may do the trick. If that does not work, would you be able to temporarily uninstall FFMpeg and then run configure/make again?

Inspiration struck me after I made the above quoted post. I removed “–without-ffmpeg” from my “configure” command line and recompiled. The result is that my problem appears to be solved :slight_smile: Sorry for the noise…

No problem. User feedback is very useful. FFMpeg is a very fast changing library which makes it difficult to track, especially as there are so many branches.

Is Audacity actually using “ffmpeg-0.10.4-1.fc17.x86_64” ?
Does it work?