Esempio n. 1
0
bool IPTVChannel::Tune(const IPTVTuningData &tuning, bool scanning)
{
    QMutexLocker locker(&m_tune_lock);

    LOG(VB_CHANNEL, LOG_INFO, LOC + QString("Tune(%1)")
        .arg(tuning.GetDeviceName()));

    if (tuning.GetDataURL().scheme().toUpper() == "RTSP")
    {
        // TODO get RTP info using RTSP
    }

    if (!tuning.IsValid())
    {
        LOG(VB_CHANNEL, LOG_ERR, LOC + QString("Invalid tuning info %1")
            .arg(tuning.GetDeviceName()));
        return false;
    }

    if (m_last_tuning == tuning)
    {
        LOG(VB_CHANNEL, LOG_DEBUG, LOC + QString("Already tuned to %1")
            .arg(tuning.GetDeviceName()));
        return true;
    }

    m_last_tuning = tuning;

    if (!m_firsttune || scanning)
        // for historical reason, an initial tune is requested at
        // startup so don't open the stream handler just yet it will
        // be opened after the next Tune or SetStreamData)
    {
        MPEGStreamData *tmp = m_stream_data;

        CloseStreamHandler();
        if (tmp)
            SetStreamData(tmp);
        else
            OpenStreamHandler();
    }

    m_firsttune = false;

    LOG(VB_CHANNEL, LOG_INFO, LOC + QString("Tuned to (%1)")
        .arg(tuning.GetDeviceName()));

    return true;
}
Esempio n. 2
0
bool IPTVChannel::EnterPowerSavingMode(void)
{
    CloseStreamHandler();
    return true;
}
Esempio n. 3
0
void IPTVChannel::Close(void)
{
    if (m_stream_handler)
        CloseStreamHandler();
}