Lines Matching refs:refs

160    } refs[0x10];
170 nouveau_vp3_handle_references(struct nouveau_vp3_decoder *dec, struct nouveau_vp3_video_buffer *refs[16], unsigned seq, struct nouveau_vp3_video_buffer *target)
175 if (!refs[i])
178 idx = refs[i]->valid_ref;
179 //debug_printf("ref[%i] %p in slot %i\n", i, refs[i], idx);
181 if (dec->refs[idx].vidbuf != refs[i]) {
182 debug_printf("%p is not a real ref\n", refs[i]);
187 assert(dec->refs[idx].vidbuf == refs[i]);
188 dec->refs[idx].last_used = seq;
191 if (dec->refs[target->valid_ref].vidbuf == target) {
192 dec->refs[target->valid_ref].last_used = seq;
199 if (dec->refs[i].vidbuf == target) {
202 } else if (!dec->refs[i].last_used) {
204 } else if (empty_spot == ~0U && dec->refs[i].last_used != seq)
209 dec->refs[empty_spot].last_used = seq;
210 // debug_printf("Kicked %p to add %p to slot %i\n", dec->refs[empty_spot].vidbuf, target, empty_spot);
211 dec->refs[empty_spot].vidbuf = target;
212 dec->refs[empty_spot].decoded_bottom = dec->refs[empty_spot].decoded_top = 0;
219 struct nouveau_vp3_video_buffer *refs[16],
260 refs[0] = (struct nouveau_vp3_video_buffer *)desc->ref[0];
261 refs[!!refs[0]] = (struct nouveau_vp3_video_buffer *)desc->ref[1];
268 struct nouveau_vp3_video_buffer *refs[16],
307 refs[0] = (struct nouveau_vp3_video_buffer *)desc->ref[0];
308 refs[!!refs[0]] = (struct nouveau_vp3_video_buffer *)desc->ref[1];
315 struct nouveau_vp3_video_buffer *refs[16],
365 refs[j] = (struct nouveau_vp3_video_buffer *)d->ref[i];
366 h->refs[j].fifo_idx = j + 1;
367 h->refs[j].tmp_idx = refs[j]->valid_ref;
368 assert(dec->refs[refs[j]->valid_ref].vidbuf == refs[j]);
369 h->refs[j].field_order_cnt[0] = d->field_order_cnt_list[i][0];
370 h->refs[j].field_order_cnt[1] = d->field_order_cnt_list[i][1];
371 h->refs[j].frame_idx = d->frame_num_list[i];
372 if (!dec->refs[refs[j]->valid_ref].field_pic_flag) {
373 h->refs[j].top_is_reference = d->top_is_reference[i];
374 h->refs[j].bottom_is_reference = d->bottom_is_reference[i];
376 h->refs[j].is_long_term = d->is_long_term[i];
377 h->refs[j].notseenyet = 0;
378 h->refs[j].field_pic_flag = dec->refs[refs[j]->valid_ref].field_pic_flag;
379 h->refs[j].top_field_marking =
380 dec->refs[refs[j]->valid_ref].decoded_top && d->top_is_reference[i] ?
382 h->refs[j].bottom_field_marking =
383 dec->refs[refs[j]->valid_ref].decoded_bottom && d->bottom_is_reference[i] ?
385 h->refs[j].pad = 0;
393 h->refs[j].field_pic_flag = d->field_pic_flag;
402 struct nouveau_vp3_video_buffer *refs[16],
407 assert(dec->refs[target->valid_ref].vidbuf == target);
410 if (!dec->refs[target->valid_ref].decoded_top &&
411 !dec->refs[target->valid_ref].decoded_bottom)
412 dec->refs[target->valid_ref].decoded_first = d->bottom_field_flag;
413 else if (dec->refs[target->valid_ref].decoded_first != d->bottom_field_flag)
417 dec->refs[target->valid_ref].field_pic_flag = d->field_pic_flag;
419 dec->refs[target->valid_ref].decoded_bottom = 1;
421 dec->refs[target->valid_ref].decoded_top = 1;
427 struct nouveau_vp3_video_buffer *refs[16],
451 refs[0] = (struct nouveau_vp3_video_buffer *)d->ref[0];
452 refs[!!refs[0]] = (struct nouveau_vp3_video_buffer *)d->ref[1];
459 struct nouveau_vp3_video_buffer *refs[16])
467 *caps = nouveau_vp3_fill_picparm_mpeg12_vp(dec, desc.mpeg12, refs, is_ref, vp);
468 nouveau_vp3_handle_references(dec, refs, dec->fence_seq, target);
471 dec->refs[target->valid_ref].decoded_top = 1;
474 dec->refs[target->valid_ref].decoded_bottom = 1;
477 dec->refs[target->valid_ref].decoded_top = 1;
478 dec->refs[target->valid_ref].decoded_bottom = 1;
483 *caps = nouveau_vp3_fill_picparm_mpeg4_vp(dec, desc.mpeg4, refs, is_ref, vp);
484 nouveau_vp3_handle_references(dec, refs, dec->fence_seq, target);
487 dec->refs[target->valid_ref].decoded_top = 1;
488 dec->refs[target->valid_ref].decoded_bottom = 1;
490 if (!dec->refs[target->valid_ref].decoded_top)
491 dec->refs[target->valid_ref].decoded_top = 1;
493 dec->refs[target->valid_ref].decoded_bottom = 1;
495 if (!dec->refs[target->valid_ref].decoded_bottom)
496 dec->refs[target->valid_ref].decoded_bottom = 1;
498 dec->refs[target->valid_ref].decoded_top = 1;
502 *caps = nouveau_vp3_fill_picparm_vc1_vp(dec, desc.vc1, refs, is_ref, vp);
503 nouveau_vp3_handle_references(dec, refs, dec->fence_seq, target);
506 dec->refs[target->valid_ref].decoded_top = 1;
507 dec->refs[target->valid_ref].decoded_bottom = 1;
511 *caps = nouveau_vp3_fill_picparm_h264_vp(dec, desc.h264, refs, is_ref, vp);
512 nouveau_vp3_handle_references(dec, refs, dec->fence_seq, target);
513 nouveau_vp3_fill_picparm_h264_vp_refs(dec, desc.h264, refs, target, vp);