another const problem (m4afile.cpp)
After some trouble getting the svn source to configure and build for qt4 without kde, and to not define HAVE_MP4V2_MP4V2_H, I hit a bug in the fallback #else branch of the code that uses mpeg4ip. (Ubuntu 9.10 Karmic AMD64).
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I../../kid3 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I/usr/include/taglib -I../../kid3 -I. -I../../kid3 -I. -o m4afile.o ../../kid3/m4afile.cpp ../../kid3/m4afile.cpp: In member function ‘virtual void M4aFile::readTags(bool)’: ../../kid3/m4afile.cpp:522: error: invalid conversion from ‘const char**’ to ‘char**’ ../../kid3/m4afile.cpp:522: error: initializing argument 3 of ‘bool MP4GetMetadataByIndex(void*, u_int32_t, char**, u_int8_t**, u_int32_t*)’ make[1]: *** [m4afile.o] Error 1
The fix is to change m4afile.cpp line 515 #else
-
const char* ppName = 0;
-
char* ppName = NULL;
-
uint8_t* ppValue = 0;
-
uint8_t* ppValue = NULL; uint32_t pValueSize = 0; uint32_t index = 0;
If this code used to be ok, then maybe libmp4 changed, because const char** is tricky: http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17
I didn't hit any other compile problems, and I have the latest version of kid3 working.
Imported from SourceForge, author: pcordes