Пример #1
0
	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;
			}
		}
	}
Пример #2
0
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;
}