void OverlayCategory::update() { if ( getOverlay().isVisible() ) { OverlayRendererSPtr renderer = getOverlay().getEngine()->getOverlayCache().getRenderer(); if ( renderer ) { if ( isPositionChanged() || renderer->isSizeChanged() ) { doUpdatePosition(); } if ( isSizeChanged() || renderer->isSizeChanged() ) { doUpdateSize(); } if ( isChanged() || isSizeChanged() || renderer->isSizeChanged() ) { doUpdate(); doUpdateBuffer( renderer->getSize() ); } m_positionChanged = false; m_sizeChanged = false; } } }
int GstPlayer::play() { QLOG_TRACE() << this << "GstPlayer::play"; //if(!isLoaded){ GstState state, pending; gst_element_get_state(pipeline,&state,&pending,0); if(GST_STATE_PAUSED != state){ QLOG_TRACE() << "Player not ready - can't play. Queueing request."; playingRequested = true; return 0; } playingRequested = false; if(mustSeek) this->seekStart(); GstStateChangeReturn ret = gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_PLAYING); if(GST_STATE_CHANGE_SUCCESS == ret || GST_STATE_CHANGE_NO_PREROLL == ret ){ QLOG_TRACE() << "Set to play successful."; }else if(GST_STATE_CHANGE_ASYNC == ret){ // this is what usually happens when file exists and is being loaded. QLOG_TRACE() << "Setting to play asynchronously. Probably all right."; }else if(GST_STATE_CHANGE_FAILURE == ret){ QLOG_TRACE() << "Failed to change state to PLAY."; } // start querying position: positionQueryTimer->setInterval(500); positionQueryTimer->setSingleShot(false); connect(positionQueryTimer,SIGNAL(timeout()),this,SLOT(doUpdatePosition())); positionQueryTimer->start(); return 0; }