83 lines
2.0 KiB
C
83 lines
2.0 KiB
C
#ifndef FFMPEGINCLUDE_H
|
|
#define FFMPEGINCLUDE_H
|
|
|
|
//为了兼容C和C99标准必须加以下内容(否则编译不能通过)
|
|
#ifndef INT64_C
|
|
#define INT64_C
|
|
#define UINT64_C
|
|
#endif
|
|
|
|
//引入ffmpeg头文件
|
|
extern "C" {
|
|
#include "libavutil/opt.h"
|
|
#include "libavutil/time.h"
|
|
#include "libavutil/frame.h"
|
|
#include "libavutil/display.h"
|
|
#include "libavutil/pixdesc.h"
|
|
#include "libavutil/avassert.h"
|
|
#include "libavutil/imgutils.h"
|
|
#include "libavutil/ffversion.h"
|
|
#include "libavcodec/avcodec.h"
|
|
#include "libswscale/swscale.h"
|
|
#include "libswresample/swresample.h"
|
|
#include "libavformat/avformat.h"
|
|
#include "libavfilter/avfilter.h"
|
|
#include "libavfilter/buffersink.h"
|
|
#include "libavfilter/buffersrc.h"
|
|
#include "libavdevice/avdevice.h"
|
|
#if (LIBAVCODEC_VERSION_MAJOR > 56)
|
|
#include "libavutil/hwcontext.h"
|
|
#endif
|
|
}
|
|
|
|
#include "qobject.h"
|
|
#include "qdatetime.h"
|
|
#include "qdebug.h"
|
|
|
|
#ifdef Q_CC_MSVC
|
|
#pragma execution_character_set("utf-8")
|
|
#endif
|
|
|
|
#ifndef TIMEMS
|
|
#define TIMEMS qPrintable(QTime::currentTime().toString("HH:mm:ss zzz"))
|
|
#endif
|
|
|
|
//通过avcode版本定义对应主版本
|
|
#if (LIBAVCODEC_VERSION_MAJOR == 56)
|
|
#define FFMPEG_VERSION_MAJOR 2
|
|
#elif (LIBAVCODEC_VERSION_MAJOR == 57)
|
|
#define FFMPEG_VERSION_MAJOR 3
|
|
#elif (LIBAVCODEC_VERSION_MAJOR == 58)
|
|
#define FFMPEG_VERSION_MAJOR 4
|
|
#elif (LIBAVCODEC_VERSION_MAJOR == 59)
|
|
#define FFMPEG_VERSION_MAJOR 5
|
|
#elif (LIBAVCODEC_VERSION_MAJOR == 60)
|
|
#define FFMPEG_VERSION_MAJOR 6
|
|
#endif
|
|
|
|
#if (FFMPEG_VERSION_MAJOR > 4)
|
|
#define AVCodecx const AVCodec
|
|
#define AVInputFormatx const AVInputFormat
|
|
#define AVOutputFormatx const AVOutputFormat
|
|
#else
|
|
#define AVCodecx AVCodec
|
|
#define AVInputFormatx AVInputFormat
|
|
#define AVOutputFormatx AVOutputFormat
|
|
#endif
|
|
|
|
#if (FFMPEG_VERSION_MAJOR < 3)
|
|
enum AVHWDeviceType {
|
|
AV_HWDEVICE_TYPE_VDPAU,
|
|
AV_HWDEVICE_TYPE_CUDA,
|
|
AV_HWDEVICE_TYPE_VAAPI,
|
|
AV_HWDEVICE_TYPE_DXVA2,
|
|
AV_HWDEVICE_TYPE_QSV,
|
|
AV_HWDEVICE_TYPE_VIDEOTOOLBOX,
|
|
AV_HWDEVICE_TYPE_NONE,
|
|
AV_HWDEVICE_TYPE_D3D11VA,
|
|
AV_HWDEVICE_TYPE_DRM,
|
|
};
|
|
#endif
|
|
|
|
#endif // FFMPEGINCLUDE_H
|