radeon/uvd: fix MPEG2/4 ref frame index limit
authorChristian König <christian.koenig@amd.com>
Wed, 28 Aug 2013 16:55:56 +0000 (18:55 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 29 Aug 2013 06:51:12 +0000 (08:51 +0200)
Otherwise the first few frames have an incorrect reference index.

Signed-off-by: Christian König <christian.koenig@amd.com>
src/gallium/drivers/radeon/radeon_uvd.c

index f3652a64c9c33a1d71f13370d00a9c018eec3f6d..3e00977987b947025e8e773efc0fb51a2b4292cc 100644 (file)
@@ -493,8 +493,8 @@ uint8_t     pquant
 /* extract the frame number from a referenced video buffer */
 static uint32_t get_ref_pic_idx(struct ruvd_decoder *dec, struct pipe_video_buffer *ref)
 {
-       uint32_t min = dec->frame_number - NUM_MPEG2_REFS;
-       uint32_t max = dec->frame_number - 1;
+       uint32_t min = MAX2(dec->frame_number, NUM_MPEG2_REFS) - NUM_MPEG2_REFS;
+       uint32_t max = MAX2(dec->frame_number, 1) - 1;
        uintptr_t frame;
 
        /* seems to be the most sane fallback */