summaryrefslogtreecommitdiff
path: root/vp8/common/mbpitch.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2012-04-18 13:51:58 -0700
committerRonald S. Bultje <rbultje@google.com>2012-04-18 14:05:39 -0700
commit18433aef17d9c4674de98a329e4e46e5677f846e (patch)
treed92072b825a7def3e5392dd00cca05feadfeb3b9 /vp8/common/mbpitch.c
parent1cc406ab4a16549fc3b44c0b20f7e81dfc2b649c (diff)
downloadlibvpx-18433aef17d9c4674de98a329e4e46e5677f846e.tar
libvpx-18433aef17d9c4674de98a329e4e46e5677f846e.tar.gz
libvpx-18433aef17d9c4674de98a329e4e46e5677f846e.tar.bz2
libvpx-18433aef17d9c4674de98a329e4e46e5677f846e.zip
Compound prediction for splitmv macroblocks.
Change-Id: I0af3395500b1cb0ed629249eb6636a0c9322cb18
Diffstat (limited to 'vp8/common/mbpitch.c')
-rw-r--r--vp8/common/mbpitch.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/vp8/common/mbpitch.c b/vp8/common/mbpitch.c
index 054042c0b..b23cbbe2c 100644
--- a/vp8/common/mbpitch.c
+++ b/vp8/common/mbpitch.c
@@ -22,6 +22,7 @@ static void setup_block
BLOCKD *b,
int mv_stride,
unsigned char **base,
+ unsigned char **base2,
int Stride,
int offset,
BLOCKSET bs
@@ -39,6 +40,7 @@ static void setup_block
b->pre_stride = Stride;
b->pre = offset;
b->base_pre = base;
+ b->base_second_pre = base2;
}
}
@@ -49,6 +51,7 @@ static void setup_macroblock(MACROBLOCKD *x, BLOCKSET bs)
int block;
unsigned char **y, **u, **v;
+ unsigned char **y2, **u2, **v2;
if (bs == DEST)
{
@@ -61,20 +64,24 @@ static void setup_macroblock(MACROBLOCKD *x, BLOCKSET bs)
y = &x->pre.y_buffer;
u = &x->pre.u_buffer;
v = &x->pre.v_buffer;
+
+ y2 = &x->second_pre.y_buffer;
+ u2 = &x->second_pre.u_buffer;
+ v2 = &x->second_pre.v_buffer;
}
for (block = 0; block < 16; block++) /* y blocks */
{
- setup_block(&x->block[block], x->dst.y_stride, y, x->dst.y_stride,
+ setup_block(&x->block[block], x->dst.y_stride, y, y2, x->dst.y_stride,
(block >> 2) * 4 * x->dst.y_stride + (block & 3) * 4, bs);
}
for (block = 16; block < 20; block++) /* U and V blocks */
{
- setup_block(&x->block[block], x->dst.uv_stride, u, x->dst.uv_stride,
+ setup_block(&x->block[block], x->dst.uv_stride, u, u2, x->dst.uv_stride,
((block - 16) >> 1) * 4 * x->dst.uv_stride + (block & 1) * 4, bs);
- setup_block(&x->block[block+4], x->dst.uv_stride, v, x->dst.uv_stride,
+ setup_block(&x->block[block+4], x->dst.uv_stride, v, v2, x->dst.uv_stride,
((block - 16) >> 1) * 4 * x->dst.uv_stride + (block & 1) * 4, bs);
}
}