390 |
// decode an inter macroblock |
// decode an inter macroblock |
391 |
|
|
392 |
static void |
static void |
|
set_block(uint8_t * dst, int stride, int width, int height, int color) |
|
|
{ |
|
|
int i; |
|
|
for (i = 0; i < height; i++) |
|
|
{ |
|
|
memset(dst, color, width); |
|
|
dst += stride; |
|
|
} |
|
|
} |
|
|
|
|
|
static void |
|
393 |
rrv_mv_scaleup(VECTOR * mv) |
rrv_mv_scaleup(VECTOR * mv) |
394 |
{ |
{ |
395 |
if (mv->x > 0) { |
if (mv->x > 0) { |
443 |
pY_Cur = dec->cur.y + (y_pos << 5) * stride + (x_pos << 5); |
pY_Cur = dec->cur.y + (y_pos << 5) * stride + (x_pos << 5); |
444 |
pU_Cur = dec->cur.u + (y_pos << 4) * stride2 + (x_pos << 4); |
pU_Cur = dec->cur.u + (y_pos << 4) * stride2 + (x_pos << 4); |
445 |
pV_Cur = dec->cur.v + (y_pos << 4) * stride2 + (x_pos << 4); |
pV_Cur = dec->cur.v + (y_pos << 4) * stride2 + (x_pos << 4); |
|
DPRINTF(DPRINTF_MB,"[%i,%i] %i,%i %i,%i %i,%i %i,%i", |
|
|
x_pos, y_pos, |
|
|
mv[0].x, mv[0].y, |
|
|
mv[1].x, mv[1].y, |
|
|
mv[2].x, mv[2].y, |
|
|
mv[3].x, mv[3].y); |
|
|
|
|
446 |
rrv_mv_scaleup(&mv[0]); |
rrv_mv_scaleup(&mv[0]); |
447 |
rrv_mv_scaleup(&mv[1]); |
rrv_mv_scaleup(&mv[1]); |
448 |
rrv_mv_scaleup(&mv[2]); |
rrv_mv_scaleup(&mv[2]); |
449 |
rrv_mv_scaleup(&mv[3]); |
rrv_mv_scaleup(&mv[3]); |
|
|
|
|
DPRINTF(DPRINTF_MB," %i,%i %i,%i %i,%i %i,%i", |
|
|
mv[0].x, mv[0].y, |
|
|
mv[1].x, mv[1].y, |
|
|
mv[2].x, mv[2].y, |
|
|
mv[3].x, mv[3].y); |
|
450 |
}else{ |
}else{ |
451 |
pY_Cur = dec->cur.y + (y_pos << 4) * stride + (x_pos << 4); |
pY_Cur = dec->cur.y + (y_pos << 4) * stride + (x_pos << 4); |
452 |
pU_Cur = dec->cur.u + (y_pos << 3) * stride2 + (x_pos << 3); |
pU_Cur = dec->cur.u + (y_pos << 3) * stride2 + (x_pos << 3); |
645 |
|
|
646 |
if (reduced_resolution) |
if (reduced_resolution) |
647 |
{ |
{ |
648 |
mb_width /= 2; |
mb_width = (dec->width + 31) / 32; |
649 |
mb_height /= 2; |
mb_height = (dec->height + 31) / 32; |
650 |
} |
} |
651 |
|
|
652 |
bound = 0; |
bound = 0; |
794 |
|
|
795 |
if (reduced_resolution) |
if (reduced_resolution) |
796 |
{ |
{ |
797 |
mb_width /= 2; |
mb_width = (dec->width + 31) / 32; |
798 |
mb_height /= 2; |
mb_height = (dec->height + 31) / 32; |
799 |
} |
} |
800 |
|
|
801 |
start_timer(); |
start_timer(); |
1755 |
|
|
1756 |
if (reduced_resolution) |
if (reduced_resolution) |
1757 |
{ |
{ |
1758 |
const int rmb_height = dec->mb_height / 2; |
const int rmb_width = (dec->width + 31) / 32; |
1759 |
const int rmb_width = dec->mb_width / 2; |
const int rmb_height = (dec->height + 31) / 32; |
1760 |
const int edged_width2 = dec->edged_width /2; |
const int edged_width2 = dec->edged_width /2; |
1761 |
int i,j; |
int i,j; |
1762 |
|
|