24#include <QMutexLocker>
26#include <hybris/media/media_codec_layer.h>
27#include <hybris/media/surface_texture_client_hybris.h>
44 thiz->onFrameAvailable();
54 MH_ERROR(
"video::HybrisGlSink: Could not connect to remote buffer queue.");
59 MH_ERROR(
"video::HybrisGlSink: Could not associate local texture id with remote buffer streak.");
64 HybrisVideoSinkPrivate::on_frame_available_callback,
72 HybrisVideoSinkPrivate::on_frame_available_callback,
90HybrisVideoSink::HybrisVideoSink(uint32_t gl_texture,
100void HybrisVideoSink::onFrameAvailable()
103 d->updateTransformationMatrix();
111 static QHash<PlayerKey, DSSessionWrapperHybris> lut;
112 static QMutex lut_guard;
116 QMutexLocker lg(&lut_guard);
117 if (!lut.contains(key))
118 lut[key] = decoding_service_create_session(key);
121 return [](uint32_t textureId,
QObject *parent) {
122 return new HybrisVideoSink(textureId, parent);
128 Q_D(HybrisVideoSink);
131 gl_consumer_update_texture(d->gl_texture_consumer);