Abstract - Overlay multicast, which performs topology construction and data relaying in the application layer, has recently emerged as a promising vehicle for data distribution. In most of the existing systems, only a single stream is assumed for each overlay, and multiple streams, if needed, are distributed separately. In addition, while the overlay node performs relay functions, they generally do not filter the content to match the heterogeneous bandwidth constraints. We consider a more general model, in which a multicast session may consist of multiple data streams, such as video and audio, which are to be delivered to the same set of nodes. The services to these steams are elastic through layer dropping, shaping, or transcoding. In this paper, we focus on an important resource allocation problem in such an adaptive multi-stream multicast framework: Assume that each stream has an associated utility function, how to maximize the total utility of all the streams in a multicast session...