itype = ittrans16[intra_types[0]];
itype = adjust_pred16(itype, r->avail_cache[5-4], r->avail_cache[5-1]);
r->h.pred16x16[itype](Y, s->linesize);
- dsp->add_pixels_clamped(s->block[0], Y, s->current_picture.linesize[0]);
- dsp->add_pixels_clamped(s->block[1], Y + 8, s->current_picture.linesize[0]);
- Y += s->current_picture.linesize[0] * 8;
- dsp->add_pixels_clamped(s->block[2], Y, s->current_picture.linesize[0]);
- dsp->add_pixels_clamped(s->block[3], Y + 8, s->current_picture.linesize[0]);
+ dsp->add_pixels_clamped(s->block[0], Y, s->linesize);
+ dsp->add_pixels_clamped(s->block[1], Y + 8, s->linesize);
+ Y += s->linesize * 8;
+ dsp->add_pixels_clamped(s->block[2], Y, s->linesize);
+ dsp->add_pixels_clamped(s->block[3], Y + 8, s->linesize);
itype = ittrans16[intra_types[0]];
if(itype == PLANE_PRED8x8) itype = DC_PRED8x8;
* mask for retrieving all bits in coded block pattern
* corresponding to one 8x8 block
*/
-#define LUMA_CBP_BLOCK_MASK 0x303
+#define LUMA_CBP_BLOCK_MASK 0x33
#define U_CBP_MASK 0x0F0000
#define V_CBP_MASK 0xF00000
int i;
for(i = 0; i < 4; i++)
- if(cbp & (LUMA_CBP_BLOCK_MASK << shifts[i]))
+ if((cbp & (LUMA_CBP_BLOCK_MASK << shifts[i])) || r->block_type == RV34_MB_P_MIX16x16)
s->dsp.add_pixels_clamped(s->block[i], s->dest[0] + (i & 1)*8 + (i&2)*4*s->linesize, s->linesize);
if(cbp & U_CBP_MASK)
s->dsp.add_pixels_clamped(s->block[4], s->dest[1], s->uvlinesize);
r->deblock_coefs[mb_pos] = 0;
else
r->deblock_coefs[mb_pos] = rv34_set_deblock_coef(r);
- s->current_picture.qscale_table[s->mb_x + s->mb_y * s->mb_stride] = s->qscale;
+ s->current_picture_ptr->qscale_table[s->mb_x + s->mb_y * s->mb_stride] = s->qscale;
if(cbp == -1)
return -1;
if(MPV_frame_start(s, s->avctx) < 0)
return -1;
ff_er_frame_start(s);
- s->current_picture_ptr = &s->current_picture;
r->cur_pts = r->si.pts;
if(s->pict_type != FF_B_TYPE){
r->last_pts = r->next_pts;