A method of adapting a playout schedule of a stream of media packets
according to network and channel conditions includes (a) setting a
playout schedule for a next packet i+1 of the stream upon receiving a
current packet i; (b) computing a length of the current packet i based at
least in part on a target playout schedule for the next packet i+1; (c)
scaling packet i if necessary; (d) outputting packet i; and (e) updating
the playout schedule for next packet i+1 based at least in part on the
playout schedule and the length of current packet i.