summaryrefslogtreecommitdiff
path: root/vp8/decoder/decodframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/decoder/decodframe.c')
-rw-r--r--vp8/decoder/decodframe.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c
index cb1f6d14e..4d6ebbe33 100644
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -140,6 +140,35 @@ void mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd)
xd->block[i].dequant = pc->Y1dequant[QIndex];
}
+#if CONFIG_LOSSLESS
+ if(!QIndex)
+ {
+ pbi->common.rtcd.idct.idct1 = vp8_short_inv_walsh4x4_1_x8_c;
+ pbi->common.rtcd.idct.idct16 = vp8_short_inv_walsh4x4_x8_c;
+ pbi->common.rtcd.idct.idct1_scalar_add = vp8_dc_only_inv_walsh_add_c;
+ pbi->common.rtcd.idct.iwalsh1 = vp8_short_inv_walsh4x4_1_lossless_c;
+ pbi->common.rtcd.idct.iwalsh16 = vp8_short_inv_walsh4x4_lossless_c;
+ pbi->dequant.idct_add = vp8_dequant_idct_add_lossless_c;
+ pbi->dequant.dc_idct_add = vp8_dequant_dc_idct_add_lossless_c;
+ pbi->dequant.dc_idct_add_y_block = vp8_dequant_dc_idct_add_y_block_lossless_c;
+ pbi->dequant.idct_add_y_block = vp8_dequant_idct_add_y_block_lossless_c;
+ pbi->dequant.idct_add_uv_block = vp8_dequant_idct_add_uv_block_lossless_c;
+ }
+ else
+ {
+ pbi->common.rtcd.idct.idct1 = vp8_short_idct4x4llm_1_c;
+ pbi->common.rtcd.idct.idct16 = vp8_short_idct4x4llm_c;
+ pbi->common.rtcd.idct.idct1_scalar_add = vp8_dc_only_idct_add_c;
+ pbi->common.rtcd.idct.iwalsh1 = vp8_short_inv_walsh4x4_1_c;
+ pbi->common.rtcd.idct.iwalsh16 = vp8_short_inv_walsh4x4_c;
+ pbi->dequant.idct_add = vp8_dequant_idct_add_c;
+ pbi->dequant.dc_idct_add = vp8_dequant_dc_idct_add_c;
+ pbi->dequant.dc_idct_add_y_block = vp8_dequant_dc_idct_add_y_block_c;
+ pbi->dequant.idct_add_y_block = vp8_dequant_idct_add_y_block_c;
+ pbi->dequant.idct_add_uv_block = vp8_dequant_idct_add_uv_block_c;
+ }
+#endif
+
for (i = 16; i < 24; i++)
{
xd->block[i].dequant = pc->UVdequant[QIndex];