void VideoHttpBuffer::fileSizeChanged(unsigned fileSize)
{
    if (!fileSize)
        qDebug() << "VideoHttpBuffer: fileSize is 0, may cause problems!";

    bool firstTime = gst_app_src_get_size(m_element) <= 0;

    if (m_element)
        gst_app_src_set_size(m_element, fileSize);

    if (firstTime && fileSize)
        emit bufferingReady();
}
예제 #2
0
void GstVideoPlayerBackend::setVideoBuffer(VideoHttpBuffer *videoHttpBuffer)
{
    if (m_videoBuffer)
    {
        disconnect(m_videoBuffer, 0, this, 0);
        m_videoBuffer->clearPlayback();
        m_videoBuffer->deleteLater();
    }

    m_videoBuffer = videoHttpBuffer;

    if (m_videoBuffer)
    {
        connect(m_videoBuffer, SIGNAL(bufferingStarted()), this, SIGNAL(bufferingStarted()));
        connect(m_videoBuffer, SIGNAL(bufferingStopped()), this, SIGNAL(bufferingStopped()));
        connect(m_videoBuffer, SIGNAL(bufferingReady()), SLOT(playIfReady()));
        connect(m_videoBuffer, SIGNAL(streamError(QString)), SLOT(streamError(QString)));
    }
}