According to one embodiment, a Programmable Video Recorder (PVR) receives
streaming multimedia data from a data source and stores the multimedia
data in a backing store. Prior to being stored, the multimedia data is
assigned Presentation TimeStamps (PTS)s according to a capture graph
clock that is associated with the PVR. Thereafter, system clock times
that correspond with the times in which each data packet is read from the
backing store are compared with the corresponding PTSs of each data
packet to generate a clock scaling value that is used to slave the system
clock with the capture graph clock. The clock scaling value may include
the average of a plurality of scaling values that are calculated during a
predetermined duration of time corresponding with the most recently read
data packets.