Network coding has recently emerged as an alternative to traditional routing algorithms in communication systems. In network coding, the network nodes can combine the packets they receive before forwarding them to the neighbouring nodes. Intensive research efforts have demonstrated that such a processing in the network nodes can provide advantages in terms of throughput or robustness. These potentials, combined with the advent of ad hoc and wireless delivery architectures have triggered the interest of research community about the application of the network coding principles to streaming applications. This paper describes the potentials of network coding in emerging delivery architectures such as overlay or peer-to-peer networks. It overviews the principles of practical network coding algorithms and outlines the challenges posed by multimedia streaming applications. Finally, it provides a survey of the recent work on the application of network coding to media streaming applications, both in wireless or wired communication scenarios. Promising results have been demonstrated where network coding is able to bring benefits in media streaming applications. However, delay and complexity constraints are often posed as the main challenging issues that still prevent the wide-scale deployment of network coding algorithms in multimedia communication.