As multimedia-capable, network-enabled devices become ever more abundant, device heterogeneity and resource sharing
dynamics remain difficult challenges in networked continuous media applications. These challenges often cause the
applications to exhibit very brittle real-time performance. Due to heterogeneity, minor variations in encoding can mean
a continuous media item performs well on some devices but very poorly on others. Resource sharing can mean that
content can work for some of the time, but real-time delivery is frequently interrupted due to competition for resources.
Quality-adaptive approaches seek to preserve real-time performance, by evaluating and executing trade-offs between the
quality of application results and the resources required and available to produce them. Since the approach requires the
applications to adapt the results they produce, we refer to them as <i>elastic real-time applications</i>. In this paper, we use
video as a specific example of an elastic real-time application. We describe a general strategy for CPU adaptation called
<i>Priority-Progress</i> adaptation, which compliments and extends previous work on adaptation for network bandwidth. The
basic idea of Priority-Progress is to utilize priority and timestamp attributes of the media to reorder execution steps, so that
low priority work can be skipped in the event that the CPU is too constrained to otherwise maintain real-time progress.
We have implemented this approach in a prototype video application. We will present benchmark results that demonstrate
the advantages of Priority-Progress adaptation in comparison to techniques employed in current popular video players.
These advantages include better timeliness as CPU utilization approaches saturation, and more user-centric control over
quality-adapation (for example to boost the video quality of selected video in a multi-video scenario). Although we focus
on video in this paper, we believe that the Priority-Progress technique is applicable to other multimedia and other real-time
applications, and can similarly help them address the challenges of device heterogenity and dynamic resource sharing.