void
YTLocalVideoData::videoDownloadFinished()
{
    _mutex.lock();

    Q_ASSERT(_videoFile->size() > 0);

    Q_ASSERT(_videoPath.endsWith(kPartialContentSuffix));
    _videoPath = _videoPath.left(_videoPath.size() - strlen(kPartialContentSuffix));

    if (QFile(_videoPath).exists())
        QFile(_videoPath).remove();

    _videoFile->rename(_videoPath);
    _videoFile.clear();

    Q_ASSERT(!_quality.isEmpty());

    _mutex.unlock();

    QSqlQuery q;
    q.prepare("UPDATE local_videos SET video=?, quality=? WHERE videoId=?");
    q.addBindValue(_videoPath);
    q.addBindValue(_quality);
    q.addBindValue(_videoId);
    executeSqlQuery(q);

    emit videoUrlChanged(videoUrl());
    qDebug() << "Finished downloading video: " << _videoId;
}
Ejemplo n.º 2
0
void VideoDetailsModel::retriveRealUrl()
{
    Video *video = new Video;
    QUrl videoUrl(m_videoUrl);
    video->setWebpage(videoUrl);
    video->loadStreamUrl();
    connect(video, SIGNAL(gotStreamUrl(QUrl)), this, SLOT(streamUrl(QUrl)));
}
Ejemplo n.º 3
0
DlnaYouTubeVideo::DlnaYouTubeVideo(Logger *log, QString host, int port, QObject *parent) :
    DlnaVideoItem(log, host, port, parent),
    m_url(),
    m_analyzeStream(true),
    m_videoUrlInProgress(false),
    m_unavailableMessage(),
    m_title(),
    m_streamUrl(),
    ffmpeg(this),
    m_youtube(0),
    mutex(),
    replyWaitCondition()
{
    m_youtube = new YouTube();
    connect(this, SIGNAL(destroyed()), m_youtube, SLOT(deleteLater()));
    connect(this, SIGNAL(getVideoUrl(QString)), m_youtube, SLOT(getVideoUrl(QString)));
    connect(m_youtube, SIGNAL(videoNotAvailable(QString)), this, SLOT(videoNotAvailable(QString)));
    connect(m_youtube, SIGNAL(gotVideoTitle(QString)), this, SLOT(videoTitle(QString)));
    connect(m_youtube, SIGNAL(gotVideoUrl(QString)), this, SLOT(videoUrl(QString)));
    connect(m_youtube, SIGNAL(videoUrlError(QString)), this, SLOT(videoUrlError(QString)));
}