Music Hub  ..
A session-wide music playback service
egl_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_EGL_VIDEO_SINK_H
18 #define LOMIRI_MEDIAHUB_EGL_VIDEO_SINK_H
19 
20 #include "player.h"
21 #include "video_sink_p.h"
22 
23 namespace lomiri {
24 namespace MediaHub {
25 
26 class EglVideoSinkPrivate;
27 class EglVideoSink: public VideoSink
28 {
29  Q_OBJECT
30 
31 public:
32  static VideoSinkFactory createFactory(PlayerKey playerKey);
33  virtual ~EglVideoSink();
34 
35  bool swapBuffers() override;
36 
37 private:
38  EglVideoSink(uint32_t gl_texture, PlayerKey key, QObject *parent);
39  Q_DECLARE_PRIVATE(EglVideoSink);
40 };
41 
42 } // namespace MediaHub
43 } // namespace lomiri
44 
45 #endif // LOMIRI_MEDIAHUB_EGL_VIDEO_SINK_H
QObject
player.h
lomiri::MediaHub::VideoSink
A video sink abstracts a queue of buffers, that receives a stream of decoded video buffers from an ar...
Definition: video_sink.h:34
lomiri::MediaHub::VideoSinkFactory
std::function< VideoSink *(uint32_t textureId, QObject *parent)> VideoSinkFactory
Definition: video_sink_p.h:43
video_sink_p.h
lomiri::MediaHub::EglVideoSink::swapBuffers
bool swapBuffers() override
Releases the current buffer, and consumes the next buffer in the queue, making it available for consu...
Definition: egl_video_sink.cpp:301
lomiri::MediaHub::EglVideoSink
Definition: egl_video_sink.h:27
lomiri::MediaHub::PlayerKey
uint32_t PlayerKey
Definition: video_sink_p.h:44
lomiri
Definition: dbus_utils.h:24
lomiri::MediaHub::EglVideoSink::~EglVideoSink
virtual ~EglVideoSink()
Definition: egl_video_sink.cpp:290
lomiri::MediaHub::EglVideoSink::createFactory
static VideoSinkFactory createFactory(PlayerKey playerKey)
Definition: egl_video_sink.cpp:294