X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fhapdec.c;h=8fd4aa962c6cf356373f216d4d3798e1c0f6bda9;hb=76cc0f0f673353cd4746cd3b83838ae335e5d9ed;hp=a1abb3285f8d5cd7801ffb7c3dee977e9c675b56;hpb=b26dd5ae2fb94caed888005cb6fc21f3df840a24;p=ffmpeg diff --git a/libavcodec/hapdec.c b/libavcodec/hapdec.c index a1abb3285f8..8fd4aa962c6 100644 --- a/libavcodec/hapdec.c +++ b/libavcodec/hapdec.c @@ -300,10 +300,10 @@ static int decompress_texture_thread_internal(AVCodecContext *avctx, void *arg, 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); } } @@ -438,6 +438,7 @@ static av_cold int hap_init(AVCodecContext *avctx) ff_texturedsp_init(&ctx->dxtc); ctx->texture_count = 1; + ctx->uncompress_pix_size = 4; switch (avctx->codec_tag) { case MKTAG('H','a','p','1'): @@ -461,8 +462,9 @@ static av_cold int hap_init(AVCodecContext *avctx) 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";