当前位置: 首页>>代码示例>>C++>>正文


C++ AbstractStream::isSelected方法代码示例

本文整理汇总了C++中AbstractStream::isSelected方法的典型用法代码示例。如果您正苦于以下问题:C++ AbstractStream::isSelected方法的具体用法?C++ AbstractStream::isSelected怎么用?C++ AbstractStream::isSelected使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AbstractStream的用法示例。


在下文中一共展示了AbstractStream::isSelected方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: demux

AbstractStream::status PlaylistManager::demux(mtime_t nzdeadline, bool send)
{
    AbstractStream::status i_return = AbstractStream::status_eof;

    std::vector<AbstractStream *>::iterator it;
    for(it=streams.begin(); it!=streams.end(); ++it)
    {
        AbstractStream *st = *it;

        if (st->isDisabled())
        {
            if(st->isSelected() && !st->isEOF())
                reactivateStream(st);
            else
                continue;
        }

        AbstractStream::status i_ret = st->demux(nzdeadline, send);
        if(i_ret == AbstractStream::status_buffering_ahead ||
           i_return == AbstractStream::status_buffering_ahead)
        {
            i_return = AbstractStream::status_buffering_ahead;
        }
        else if(i_ret == AbstractStream::status_buffering)
        {
            i_return = AbstractStream::status_buffering;
        }
        else if(i_ret == AbstractStream::status_demuxed &&
                i_return != AbstractStream::status_buffering)
        {
            i_return = AbstractStream::status_demuxed;
        }
        else if(i_ret == AbstractStream::status_dis)
        {
            i_return = AbstractStream::status_dis;
        }
    }

    /* might be end of current period */
    if(i_return == AbstractStream::status_eof && currentPeriod)
    {
        unsetPeriod();
        currentPeriod = playlist->getNextPeriod(currentPeriod);
        i_return = (setupPeriod()) ? AbstractStream::status_eop : AbstractStream::status_eof;
    }

    return i_return;
}
开发者ID:743848887,项目名称:vlc,代码行数:48,代码来源:PlaylistManager.cpp

示例2: bufferize

AbstractStream::buffering_status PlaylistManager::bufferize(mtime_t i_nzdeadline,
                                                            unsigned i_min_buffering, unsigned i_extra_buffering)
{
    AbstractStream::buffering_status i_return = AbstractStream::buffering_end;

    /* First reorder by status >> buffering level */
    std::vector<AbstractStream *> prioritized_streams(streams);
    std::sort(prioritized_streams.begin(), prioritized_streams.end(), streamCompare);

    std::vector<AbstractStream *>::iterator it;
    for(it=prioritized_streams.begin(); it!=prioritized_streams.end(); ++it)
    {
        AbstractStream *st = *it;

        if (st->isDisabled() &&
            (!st->isSelected() || !st->canActivate() || !reactivateStream(st)))
                continue;

        AbstractStream::buffering_status i_ret = st->bufferize(i_nzdeadline, i_min_buffering, i_extra_buffering);
        if(i_return != AbstractStream::buffering_ongoing) /* Buffering streams need to keep going */
        {
            if(i_ret > i_return)
                i_return = i_ret;
        }

        /* Bail out, will start again (high prio could be same starving stream) */
        if( i_return == AbstractStream::buffering_lessthanmin )
            break;
    }

    vlc_mutex_lock(&demux.lock);
    if(demux.i_nzpcr == VLC_TS_INVALID &&
       i_return != AbstractStream::buffering_lessthanmin /* prevents starting before buffering is reached */ )
    {
        demux.i_nzpcr = getFirstDTS();
    }
    vlc_mutex_unlock(&demux.lock);

    return i_return;
}
开发者ID:Geal,项目名称:vlc,代码行数:40,代码来源:PlaylistManager.cpp

示例3: bufferize

AbstractStream::buffering_status PlaylistManager::bufferize(mtime_t i_nzdeadline,
                                                            unsigned i_min_buffering, unsigned i_extra_buffering)
{
    AbstractStream::buffering_status i_return = AbstractStream::buffering_end;

    std::vector<AbstractStream *>::iterator it;
    for(it=streams.begin(); it!=streams.end(); ++it)
    {
        AbstractStream *st = *it;

        if (st->isDisabled())
        {
            if(st->isSelected() && !st->isDead())
                reactivateStream(st);
            else
                continue;
        }

        AbstractStream::buffering_status i_ret = st->bufferize(i_nzdeadline, i_min_buffering, i_extra_buffering);
        if(i_return != AbstractStream::buffering_ongoing) /* Buffering streams need to keep going */
        {
            if(i_ret > i_return)
                i_return = i_ret;
        }
    }

    vlc_mutex_lock(&demux.lock);
    if(demux.i_nzpcr == VLC_TS_INVALID &&
       i_return != AbstractStream::buffering_lessthanmin /* prevents starting before buffering is reached */ )
    {
        demux.i_nzpcr = getFirstDTS();
    }
    vlc_mutex_unlock(&demux.lock);

    return i_return;
}
开发者ID:DaemonSnake,项目名称:vlc,代码行数:36,代码来源:PlaylistManager.cpp


注:本文中的AbstractStream::isSelected方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。