int off = y * w_block;
for (x = 0; x < w_block; x++) {
if (texture_num == 0) {
- ctx->tex_fun(p + x * 16, frame->linesize[0],
+ ctx->tex_fun(p + x * 4 * ctx->uncompress_pix_size, frame->linesize[0],
d + (off + x) * ctx->tex_rat);
} else {
- ctx->tex_fun2(p + x * 16, frame->linesize[0],
+ ctx->tex_fun2(p + x * 4 * ctx->uncompress_pix_size, frame->linesize[0],
d + (off + x) * ctx->tex_rat2);
}
}
ff_texturedsp_init(&ctx->dxtc);
ctx->texture_count = 1;
+ ctx->uncompress_pix_size = 4;
switch (avctx->codec_tag) {
case MKTAG('H','a','p','1'):
case MKTAG('H','a','p','A'):
texture_name = "RGTC1";
ctx->tex_rat = 8;
- ctx->tex_fun = ctx->dxtc.rgtc1u_block;
- avctx->pix_fmt = AV_PIX_FMT_RGB0;
+ ctx->tex_fun = ctx->dxtc.rgtc1u_gray_block;
+ avctx->pix_fmt = AV_PIX_FMT_GRAY8;
+ ctx->uncompress_pix_size = 1;
break;
case MKTAG('H','a','p','M'):
texture_name = "DXT5-YCoCg-scaled / RGTC1";