Music Hub ..
A session-wide music playback service
 
Loading...
Searching...
No Matches
video_sink.h
Go to the documentation of this file.
1/*
2 * Copyright © 2021-2022 UBports Foundation.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef LOMIRI_MEDIAHUB_VIDEO_SINK_H
18#define LOMIRI_MEDIAHUB_VIDEO_SINK_H
19
20#include "global.h"
21
22#include <QMatrix4x4>
23#include <QObject>
24#include <QScopedPointer>
25
26namespace lomiri {
27namespace MediaHub {
28
29class VideoSinkPrivate;
30
35{
36 Q_OBJECT
37 Q_DISABLE_COPY(VideoSink)
38
39public:
40 virtual ~VideoSink();
41
45 const QMatrix4x4 &transformationMatrix() const;
46
53 virtual bool swapBuffers() = 0;
54
59Q_SIGNALS:
61
62protected:
63 VideoSink(VideoSinkPrivate *d, QObject *parent = nullptr);
64
65 Q_DECLARE_PRIVATE(VideoSink)
66 QScopedPointer<VideoSinkPrivate> d_ptr;
67};
68
69} // namespace MediaHub
70} // namespace lomiri
71
72#endif // LOMIRI_MEDIAHUB_VIDEO_SINK_H
A video sink abstracts a queue of buffers, that receives a stream of decoded video buffers from an ar...
Definition video_sink.h:35
virtual bool swapBuffers()=0
Releases the current buffer, and consumes the next buffer in the queue, making it available for consu...
void frameAvailable()
The signal is emitted whenever a new frame is available and a subsequent call to swapBuffers() will n...
#define MH_EXPORT
Definition global.h:27