#ifndef FFMPEGVIDEODLG_H #define FFMPEGVIDEODLG_H #include "cffmpeg_decode.h" #include <QDebug> #include <QDir> #include <QImage> #include <QPaintEvent> #include <QPainter> #include <QThread> #include <QWidget> extern "C" { #include <libavcodec/avcodec.h> #include <libavutil/channel_layout.h> #include <libavutil/common.h> #include <libavutil/frame.h> #include <libavutil/imgutils.h> #include <libavutil/mem.h> #include <libavutil/opt.h> #include <libavutil/parseutils.h> #include <libavutil/samplefmt.h> #include <libswscale/swscale.h> #include <libavformat/avformat.h> } namespace Ui { class ffmpegvideoDlg; } class ffmpegvideoDlg : public QWidget { Q_OBJECT public: explicit ffmpegvideoDlg(QWidget *parent = nullptr); ~ffmpegvideoDlg(); private: Ui::ffmpegvideoDlg *ui; public: void iniWindow(); void setUrl(QString url); void setVedioSaveFileDirPath(QString saveDirPath); void play(); void stop(); bool Isplay(bool IsstopPlay); bool m_PlayStatus = false; double m_setVideoAreaWidth; double m_setVideoAreaHeight; double m_ax; double m_ay; protected: void paintEvent(QPaintEvent *); void resizeEvent(QResizeEvent *event); private slots: void receiveQImage(const QImage &rImg); void showMessagBox(int); signals: void operate(); private: Cffmpeg_decode *ffmpeg; QThread workerThread; QImage img; QString videoSaveDirPath; }; #endif // FFMPEGVIDEODLG_H