Exploiting Heterogeneity in P2P Video Streaming