1 /* This file is part of the KDE project 2 Copyright (C) 2008 Matthias Kretz <kretz@kde.org> 3 4 This library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) version 3, or any 8 later version accepted by the membership of KDE e.V. (or its 9 successor approved by the membership of KDE e.V.), Nokia Corporation 10 (or its successors, if any) and the KDE Free Qt Foundation, which shall 11 act as a proxy defined in Section 6 of version 3 of the license. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with this library. If not, see <http://www.gnu.org/licenses/>. 20 21 */ 22 23 #ifndef PHONON_VIDEODATAOUTPUT2_H 24 #define PHONON_VIDEODATAOUTPUT2_H 25 26 #include "export.h" 27 #include <QtCore/QObject> 28 #include "abstractvideodataoutput.h" 29 30 namespace Phonon 31 { 32 namespace Experimental 33 { 34 35 class VideoDataOutput2Private; 36 37 /** 38 * \short This class gives you the video data. 39 * 40 * This class implements a special AbstractVideoOutput that gives your 41 * application the video data. 42 * 43 * You can also use the video data for further processing (e.g. encoding and 44 * saving to a file). 45 * 46 * \author Matthias Kretz <kretz@kde.org> 47 */ 48 class PHONONEXPERIMENTAL_EXPORT VideoDataOutput2 : public QObject, public AbstractVideoDataOutput 49 { 50 Q_OBJECT 51 P_DECLARE_PRIVATE(VideoDataOutput2) 52 PHONON_HEIR(VideoDataOutput2) 53 54 protected: 55 virtual void frameReady(const VideoFrame2 &) override; 56 57 virtual void endOfMedia() override; 58 59 Q_SIGNALS: 60 /** 61 * The signal is emitted whenever a frame should be displayed. 62 * nowStamp is the current time, outStamp tells the users 63 * what time the frame should be displayed with. 64 * 65 * The relevant frames should be fetched and displayed using frameForTime 66 * method. 67 */ 68 void frameReadySignal(const Phonon::Experimental::VideoFrame2 &); 69 70 /** 71 * This signal is emitted after the last frameReady signal of a 72 * media is emitted. 73 */ 74 void endOfMediaSignal(); 75 }; 76 77 } // namespace Experimental 78 } //namespace Phonon 79 80 #endif // PHONON_VIDEODATAOUTPUT2_H 81