From 49d26a277d8653f63b50f07371bf02b3453e8839 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Tue, 15 Apr 2014 17:35:31 +0200 Subject: nouveau/vdec: small fixes to h264 handling nouveau_vp3_inter_sizes requires sliec_count as argument just as the other places that call it from h264 code do. Hopefully fixes something. Fix the status_vp code to allow status == 0 too, when processing hasn't started yet. set h264->second_field correctly. --- src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/nouveau/nvc0') diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c b/src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c index 0d152b9624f..07170a0e4c3 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c @@ -39,7 +39,7 @@ static void dump_comm_vp(struct nouveau_vp3_decoder *dec, struct comm *comm, u32 debug_printf("parse_endpos[%i] = { @ %08x}\n", i, comm->parse_endpos[i]); #endif debug_printf("mb_y = %u\n", comm->mb_y[idx]); - if (comm->status_vp[idx] == 1) + if (comm->status_vp[idx] <= 1) return; if ((comm->pvp_stage & 0xff) != 0xff) { @@ -112,7 +112,7 @@ nvc0_decoder_vp(struct nouveau_vp3_decoder *dec, union pipe_desc desc, else pic_addr[i] = null_addr; } - if (!is_ref) + if (!is_ref && (dec->refs[target->valid_ref].decoded_top && dec->refs[target->valid_ref].decoded_bottom)) nvc0_decoder_kick_ref(dec, target); nouveau_pushbuf_space(push, 8 + 3 * (codec != PIPE_VIDEO_FORMAT_MPEG12) + -- cgit v1.2.3