53 lines
1006 B
C++
53 lines
1006 B
C++
#ifndef VIDEODEC_H
|
|
#define VIDEODEC_H
|
|
extern "C"{
|
|
#include "libavcodec/avcodec.h"
|
|
#include "libavformat/avformat.h"
|
|
#include "libavutil/avutil.h"
|
|
#include "libavutil/mem.h"
|
|
#include "libavutil/fifo.h"
|
|
#include "libswscale/swscale.h"
|
|
#include <libavutil/imgutils.h>
|
|
#include "libavutil/pixfmt.h"
|
|
}
|
|
|
|
|
|
#include <QObject>
|
|
#include <QImage>
|
|
#include <QThread>
|
|
#include <QDebug>
|
|
#include <QList>
|
|
|
|
|
|
class VideoDec : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit VideoDec(QObject *parent = 0);
|
|
struct ImgPacket{
|
|
QImage PImage;
|
|
struct ImgPacket *next;
|
|
};
|
|
int videoindex;
|
|
int BUFFSIZE;
|
|
AVFormatContext *pFormatCtx;
|
|
AVCodecContext *pCodecCtx;
|
|
AVCodec *pCodec;
|
|
AVPacket packet;
|
|
AVFrame *pFrame,*pFrameRGB;
|
|
char *FileName = "f:/taxiAd.mp4";
|
|
QList<QImage> VideoImg;
|
|
int iSopflag=0;
|
|
|
|
signals:
|
|
void SendImage(QImage img);
|
|
|
|
public slots:
|
|
void init();
|
|
void play();
|
|
void stop();
|
|
|
|
};
|
|
|
|
#endif // VIDEODEC_H
|