houxiao
2016-12-22 f04b2e05a32f810ebe66b7b3a15f37b532ce2dc0
RtspFace/PipeLine.cpp
@@ -85,23 +85,33 @@
   }
   else if (elems.size() == 2)
   {
      elem_begin->gain(*pm);
      if (elem_begin->gain(*pm))
      elem_last->pay(*pm);
      else
         return elem_begin;
      return elem_last;
   }
   else
   {
      elem_begin->gain(*pm);
      if (!elem_begin->gain(*pm))
         return elem_begin;
      
      bool lastRet = true;
      elem_vec_t::iterator iter = elems.begin();
      while (elem_begin != elem_last)
      {
         ++iter;
         elem_begin = *iter;
         elem_begin->pay(*pm);
         elem_begin->gain(*pm);
      while (elem_begin != elem_last)
      {
         if (lastRet && (lastRet = elem_begin->pay(*pm)) )
            lastRet = elem_begin->gain(*pm);
         else
            return elem_begin;
         ++iter;
         elem_begin = *iter;
      }
   
      if (lastRet)
      elem_last->pay(*pm);
      return elem_last;
   }