本文整理汇总了C++中AbstractStream::isDisabled方法的典型用法代码示例。如果您正苦于以下问题:C++ AbstractStream::isDisabled方法的具体用法?C++ AbstractStream::isDisabled怎么用?C++ AbstractStream::isDisabled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AbstractStream
的用法示例。
在下文中一共展示了AbstractStream::isDisabled方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
示例2: setPosition
bool PlaylistManager::setPosition(mtime_t time)
{
bool ret = true;
for(int real = 0; real < 2; real++)
{
/* Always probe if we can seek first */
std::vector<AbstractStream *>::iterator it;
for(it=streams.begin(); it!=streams.end(); ++it)
{
AbstractStream *st = *it;
if(!st->isDisabled())
ret &= st->setPosition(time, !real);
}
if(!ret)
break;
}
return ret;
}
示例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;
/* 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;
}
示例4: drain
void PlaylistManager::drain()
{
for(;;)
{
bool b_drained = true;
std::vector<AbstractStream *>::iterator it;
for(it=streams.begin(); it!=streams.end(); ++it)
{
AbstractStream *st = *it;
if (st->isDisabled())
continue;
b_drained &= st->drain();
}
if(b_drained)
break;
msleep(20*1000); /* ugly, but we have no way to get feedback */
}
es_out_Control(p_demux->out, ES_OUT_RESET_PCR);
}
示例5: 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;
}