In a system having a computer, a video client, and an interface coupled between the computer and video client that facilitates data transmission between the computer and the video client, the interface connected to the computer via a standardized bus, the interface having a buffer for storing data frames received from the computer to be sent to the video client, the buffer having a fill amount that varies with the amount of data it stores, the interface having an optimal buffer fill amount, an apparatus for performing data transmission flow control, the apparatus comprising:
- apparatus adapted to poll the interface a first time to determine the fill amount of the buffer on the interface;
- apparatus adapted to receive a first buffer fill amount value from the interface;
- apparatus adapted to send a plurality of frames of video and audio data in an isochronous manner to the buffer on the interface such that a delay period exists between the sending of each frame, wherein each frame of said plurality of frames comprises at least one header, a video portion, and an audio portion;
- apparatus adapted to poll the interface a second time to determine the buffer fill amount after the plurality of frames are sent to the buffer on the interface;
- apparatus adapted to receive a second buffer fill amount value from the interface;
- and
- apparatus adapted to if the second buffer fill amount value is smaller than the optimal fill amount, and smaller than the first buffer fill amount value, decrease the delay period between transmission of frames from the computer to the buffer on the interface,
- apparatus adapted to, if the second buffer fill amount value is larger than the optimal fill amount, and larger than the first buffer fill amount value, increase the delay period between transmission of frames from the computer to the buffer on the interface.