本文整理汇总了C++中ISegment::isTemplate方法的典型用法代码示例。如果您正苦于以下问题:C++ ISegment::isTemplate方法的具体用法?C++ ISegment::isTemplate怎么用?C++ ISegment::isTemplate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISegment
的用法示例。
在下文中一共展示了ISegment::isTemplate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/* Returns wanted segment, or next in sequence if not found */
ISegment * SegmentInformation::getNextSegment(SegmentInfoType type, uint64_t i_pos,
uint64_t *pi_newpos, bool *pb_gap) const
{
*pb_gap = false;
*pi_newpos = i_pos;
if( type != INFOTYPE_MEDIA )
return NULL;
std::vector<ISegment *> retSegments;
const size_t size = getSegments( type, retSegments );
if( size )
{
std::vector<ISegment *>::const_iterator it;
for(it = retSegments.begin(); it != retSegments.end(); ++it)
{
ISegment *seg = *it;
if(seg->isTemplate()) /* we don't care about seq number */
{
/* Check if we don't exceed timeline */
MediaSegmentTemplate *templ = dynamic_cast<MediaSegmentTemplate*>(retSegments[0]);
SegmentTimeline *timeline = (templ) ? templ->segmentTimeline.Get() : NULL;
if(timeline)
{
*pi_newpos = std::max(timeline->minElementNumber(), i_pos);
if(timeline->maxElementNumber() < i_pos)
return NULL;
}
else
{
*pi_newpos = i_pos;
/* start number */
*pi_newpos = std::max((uint64_t)templ->startNumber.Get(), i_pos);
}
return seg;
}
else if(seg->getSequenceNumber() >= i_pos)
{
*pi_newpos = seg->getSequenceNumber();
*pb_gap = (*pi_newpos != i_pos);
return seg;
}
}
}
return NULL;
}