func: size_t uint8_t* size_t RTPFragmentationHeader* fragmentation) fragmentation -> fragmentationVectorSize = 0; memset ( fragmentation -> fragmentationLength , 0 , kMaxVP8Partitions * sizeof ( size_t ) ); fragmentation -> fragmentationOffset [ partition_id ] = ( * it ) . dataPtr - frame_buffer; assert ( fragmentation -> fragmentationOffset [ partition_id ] < frame_buffer_length ); fragmentation -> fragmentationLength [ partition_id ] = ( * partition_end ) . dataPtr + ( * partition_end ) . sizeBytes - ( * it ) . dataPtr; assert ( fragmentation -> fragmentationLength [ partition_id ] <= frame_buffer_length ); new_length += fragmentation -> fragmentationLength [ partition_id ]; if ( partition_id + 1 > fragmentation -> fragmentationVectorSize )  fragmentation -> fragmentationVectorSize = partition_id + 1; if ( fragmentation -> fragmentationLength [ 0 ] == 0 )  fragmentation -> fragmentationOffset [ 0 ] = 0; for (int i = 1; i < fragmentation->fragmentationVectorSize; ++i) if ( fragmentation -> fragmentationLength [ i ] == 0 )  fragmentation -> fragmentationOffset [ i ] = fragmentation -> fragmentationOffset [ i - 1 ] + fragmentation -> fragmentationLength [ i - 1 ]; assert ( i == 0 || fragmentation -> fragmentationOffset [ i ] >= fragmentation -> fragmentationOffset [ i - 1 ] ); assert ( new_length <= frame_buffer_length ); return new_length ; 