Exemplo n.º 1
0
void EC_MediaPlayer::Pause()
{
    // Don't do anything if rendering is not enabled
    if (!ViewEnabled() || GetFramework()->IsHeadless())
        return;
    if (!componentPrepared_)
        return;
    if (!mediaPlayer_ || mediaPlayer_->Media().isEmpty())
        return;
    if (!mediaPlayer_->GetVideoWidget())
        return;

    QAbstractAnimation::State state = GetMediaState();
    if (state == QAbstractAnimation::Running)
        mediaPlayer_->GetVideoWidget()->Pause();
}
Exemplo n.º 2
0
bool EC_MediaPlayer::SeekMedia(float timeInSeconds)
{
    // Don't do anything if rendering is not enabled
    if (!ViewEnabled() || GetFramework()->IsHeadless())
        return false;
    if (!componentPrepared_ || !mediaPlayer_ || mediaPlayer_->Media().isEmpty())
        return false;
    if (!mediaPlayer_->GetVideoWidget())
        return false;

    QAbstractAnimation::State state = GetMediaState();
    if (state == QAbstractAnimation::Running)
    {
        if (timeInSeconds < 0.0)
            timeInSeconds = 0.0;
        uint_least64_t seekTimeMsec = timeInSeconds * 1000.0;
        return mediaPlayer_->GetVideoWidget()->Seek(seekTimeMsec);
    }
    return false;
}
Exemplo n.º 3
0
MEDIA_STATE
NICIndicateMediaState(
    __in PFDO_DATA FdoData
    )
{
    MEDIA_STATE CurrMediaState;
    KIRQL              oldIrql;

    KeAcquireSpinLock(&FdoData->Lock, &oldIrql);

    CurrMediaState = GetMediaState(FdoData);

    if (CurrMediaState != FdoData->MediaState)
    {
        DebugPrint(WARNING, DBG_IOCTLS, "Media state changed to %s\n",
            ((CurrMediaState == Connected)?
            "Connected": "Disconnected"));

        FdoData->MediaState = CurrMediaState;

        if (CurrMediaState == Connected)
        {
            MP_CLEAR_FLAG(FdoData, fMP_ADAPTER_NO_CABLE);
        }
        else
        {
            MP_SET_FLAG(FdoData, fMP_ADAPTER_NO_CABLE);
        }

        KeReleaseSpinLock(&FdoData->Lock, oldIrql);

        // Indicate the media event
        NICServiceIndicateStatusIrp(FdoData);
    }
    else
    {
        KeReleaseSpinLock(&FdoData->Lock, oldIrql);
    }

    return CurrMediaState;
}
Exemplo n.º 4
0
void VlcVideoWidget::Stop() 
{
    if (vlcPlayer_)
    {
        libvlc_state_t state = GetMediaState();
        if (state == libvlc_Playing || state == libvlc_Paused || state == libvlc_Ended)
        {
            /** @bug @todo These should not be here and is not actually doing anything. 
                Take a fresh look at the threading in this object and remove these hacks. */
            if (onScreenPixmapMutex_.tryLock(50))
                onScreenPixmapMutex_.unlock();
            if (renderPixmapMutex_.tryLock(50))
                renderPixmapMutex_.unlock();
            if (statusAccess.tryLock(50))
                statusAccess.unlock();

            libvlc_media_player_stop(vlcPlayer_);
        }
        update();
        ForceUpdateImage();
    }
}