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

View file

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