diff options
author | Maarten Lankhorst <[email protected]> | 2014-04-15 17:35:31 +0200 |
---|---|---|
committer | Maarten Lankhorst <[email protected]> | 2014-04-17 10:30:39 +0200 |
commit | 49d26a277d8653f63b50f07371bf02b3453e8839 (patch) | |
tree | a6499a181626e54388790d6e7279f871a143ce97 /src/gallium/drivers/nouveau/nvc0 | |
parent | 09cd376353f534611323da9bedb9b88242b6e4fa (diff) |
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.
Diffstat (limited to 'src/gallium/drivers/nouveau/nvc0')
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c | 4 |
1 files changed, 2 insertions, 2 deletions
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) + |