ffmpeg 是使用C语言写的,默认使用C编译,如果要在C++中调用ffmpeg,则有可能出现错误:
ffmpeg: 'UINT64_C' was not declared in this scope
解决办法三种:
一种是:
extern "C"{
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include <stdint.h>
#endif
}
第二种是在ffmpeg的common.h文件中添加语句:
/usr/local/include/libavutil/common.h中添加:
#ifndef UINT64_C
#define UINT64_C(value)__CONCAT(value,ULL)
#endif
http://code.google.com/p/ffmpegsource/issues/detail?id=11
第三种:
在该头文件加以下语句就行了。
#ifndef INT64_C
#define INT64_C
#define UINT64_C
#endif
这个要放在
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/avutil.h>
}