Abstract: A method of managing the flow of data through a video decoder is described. The method includes receiving a stream of video data including compressed video frames organized in groups-of-pictures (GOP). A GOP typically includes one intra-frame coded image and a plurality of inter-frame coded images. Data included in received GOPs as uniquely identified GOP data blocks with uniquely identified compressed video frames are entered in a pre-decode cache module and they are selected, based on a current playback status, to be appended to a decode queue for GOP data blocks that will be delivered as input to a video decoder (106). Output data from the decoder (106) is delivered as decoded video frames to a post-decode cache module (303). Also described is a video decoder and a software program product.