Hi
I can not compile any my project in Debian Squeeze with headers in package
libavifile-0.7-dev (0.7.48). But this project compile
normally in Debian Lenny with libavifile-0.7-dev (0.7.47).
C++ code:
-----8<-----
#include <avifile-0.7/avifile.h>
#include <avifile-0.7/version.h>
#if AVIFILE_MINOR_VERSION > 6
#include <avifile-0.7/avm_default.h>
#else
#include <avifile-0.7/default.h>
#endif
#include <avifile-0.7/image.h>
#include <avifile-0.7/infotypes.h>
#include <avifile-0.7/StreamInfo.h>
#include <fstream>
#include <iostream>
#include <sys/types.h>
...
StreamInfo *m_streaminfo; // Error in this string
-----8<-----
Error:
./Render/video/stVideoRenderAviLinux.h:81: error: ISO C++ forbids declaration
of ‘StreamInfo’ with no type
./Render/video/stVideoRenderAviLinux.h:81: error: expected ‘;’ before
‘*’ token
This error generate in g++-4.1, g++-4.3 and g++-4.4 compiler.
Solution:
Add typedef StreamInfo in namespace "avm" in tail of file
/usr/include/avifile-0.7/StreamInfo.h, as it
maked in 0.7.47 version.
Before correction:
-----8<-----
AVM_END_NAMESPACE;
#endif // AVIFILE_STREAMINFO_H
-----8<-----
After correction:
-----8<-----
AVM_END_NAMESPACE;
#ifdef AVM_COMPATIBLE
typedef avm::StreamInfo StreamInfo;
#endif
#endif // AVIFILE_STREAMINFO_H
-----8<-----