File indexing completed on 2024-04-28 15:40:27
0001 // SPDX-FileCopyrightText: 2021-2022 The KPhotoAlbum Development Team 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #pragma once 0006 0007 #include "VideoDisplay.h" 0008 0009 namespace QtAV 0010 { 0011 class VideoRenderer; 0012 class AVPlayer; 0013 class LibAVFilterVideo; 0014 } 0015 0016 namespace Viewer 0017 { 0018 class QtAVVideoToolBar; 0019 0020 class QtAVDisplay final : public Viewer::VideoDisplay 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit QtAVDisplay(QWidget *parent); 0026 ~QtAVDisplay() override; 0027 bool isPaused() const override; 0028 bool isPlaying() const override; 0029 QImage screenShoot() override; 0030 0031 public Q_SLOTS: 0032 void stop() override; 0033 void playPause() override; 0034 void restart() override; 0035 void relativeSeek(int msec) override; 0036 void seekToPosition(qint64 pos); 0037 void rotate(const DB::ImageInfoPtr &info) override; 0038 0039 protected: 0040 bool setImageImpl(DB::ImageInfoPtr info, bool forward) override; 0041 void displayPosition(qint64 pos); 0042 0043 private: 0044 QWidget *m_videoWidget = nullptr; 0045 QtAVVideoToolBar *m_toolBar = nullptr; 0046 QtAV::VideoRenderer *m_renderer = nullptr; 0047 QtAV::AVPlayer *m_player = nullptr; 0048 QtAV::LibAVFilterVideo *m_rotateFilter = nullptr; 0049 }; 0050 0051 } 0052 0053 // vi:expandtab:tabstop=4 shiftwidth=4: