An "adaptive audio playback controller" operates by decoding and reading
received packets of an audio signal into a signal buffer. Samples of the
decoded audio signal are then played out of the signal buffer according
to the needs of a player device. Jitter control and packet loss
concealment are accomplished by continuously analyzing buffer content in
real-time, and determining whether to provide unmodified playback from
the buffer contents, whether to compress buffer content, stretch buffer
content, or whether to provide for packet loss concealment for overly
delayed or lost packets as a function of buffer content. Further, the
adaptive audio playback controller also determines where to stretch or
compress particular frames or signal segments in the signal buffer, and
how much to stretch or compress such segments in order to optimize
perceived playback quality.