qmlglsink: Expose itemInitialized as property

Instead of just signalling when ready exposing the state
as a property allows us to bind at any time if player is
loaded async.
This commit is contained in:
Jochen Henneberg 2017-09-06 07:59:56 +00:00 committed by Matthew Waters
parent ee021c0418
commit 1874d01eda
2 changed files with 14 additions and 2 deletions

View file

@ -178,6 +178,12 @@ QtGLVideoItem::getForceAspectRatio()
return this->priv->force_aspect_ratio;
}
bool
QtGLVideoItem::itemInitialized()
{
return m_openGlContextInitialized;
}
QSGNode *
QtGLVideoItem::updatePaintNode(QSGNode * oldNode,
UpdatePaintNodeData * updatePaintNodeData)
@ -290,7 +296,7 @@ QtGLVideoItem::onSceneGraphInitialized ()
GST_DEBUG ("%p created wrapped GL context %" GST_PTR_FORMAT, this,
this->priv->other_context);
emit itemInitialized();
emit itemInitializedChanged();
}
void

View file

@ -64,6 +64,11 @@ class InitializeSceneGraph;
class QtGLVideoItem : public QQuickItem, protected QOpenGLFunctions
{
Q_OBJECT
Q_PROPERTY(bool itemInitialized
READ itemInitialized
NOTIFY itemInitializedChanged)
public:
QtGLVideoItem();
~QtGLVideoItem();
@ -72,13 +77,14 @@ public:
void getDAR(gint *, gint *);
void setForceAspectRatio(bool);
bool getForceAspectRatio();
bool itemInitialized();
QSharedPointer<QtGLVideoItemInterface> getInterface() { return proxy; };
/* private for C interface ... */
QtGLVideoItemPrivate *priv;
Q_SIGNALS:
void itemInitialized();
void itemInitializedChanged();
private Q_SLOTS:
void handleWindowChanged(QQuickWindow * win);