A method comprising: receiving, at a source component of a processing pipeline, a rate change request for a data sample having a particular source time; responsive to receiving the rate change request, examining one or more buffers associated with the source component to ascertain whether a corresponding data sample over which the rate change is to occur is present; if the data sample is found in the one or more buffers, attaching rate change information to the data sample; and if the data sample is not found in the source component's buffers, sending the rate change request to a next in line downstream component, receiving the rate change request with the next in line downstream component; and responsive to receiving the rate change request, examining one or more buffers associated with the downstream component to ascertain whether a corresponding data sample over which the rate change is to occur is present and: if the data sample is found in the downstream component's buffers, attaching rate change information to the data sample; and if the data sample is not found in the downstream component's buffers, sending the rate change request to a next in line downstream component; continuing to send the rate change request to downstream components if the data sample is not found in any buffers of components that receive the request, until the rate change request is received by a renderer; and, if the rate change request is received by the renderer and the data sample has been rendered by the renderer, discarding the rate change request, otherwise processing the rate change request with the data sample. receiving, at a source component of a processing pipeline, a rate change request for a data sample having a particular source time; responsive to receiving the rate change request, examining one or more buffers associated with the source component to ascertain whether a corresponding data sample over which the rate change is to occur is present; if the data sample is found in the one or more buffers, attaching rate change information to the data sample; and if the data sample is not found in the source component's buffers, sending the rate change request to a next in line downstream component, receiving the rate change request with the next in line downstream component; and responsive to receiving the rate change request, examining one or more buffers associated with the downstream component to ascertain whether a corresponding data sample over which the rate change is to occur is present and: if the data sample is found in the downstream component's buffers, attaching rate change information to the data sample; and if the data sample is not found in the downstream component's buffers, sending the rate change request to a next in line downstream component; if the data sample is found in the downstream component's buffers, attaching rate change information to the data sample; and if the data sample is not found in the downstream component's buffers, sending the rate change request to a next in line downstream component; continuing to send the rate change request to downstream components if the data sample is not found in any buffers of components that receive the request, until the rate change request is received by a renderer; and, if the rate change request is received by the renderer and the data sample has been rendered by the renderer, discarding the rate change request, otherwise processing the rate change request with the data sample.