| @@ -142,32 +142,6 @@ static const uint8_t string_table[256] = { | |||
| n2 &= n3 & 0x00FF00FF; \ | |||
| } | |||
| #define SVQ1_DO_CODEBOOK_INTRA() \ | |||
| for (y = 0; y < height; y++) { \ | |||
| for (x = 0; x < width / 4; x++, codebook++) { \ | |||
| n1 = n4; \ | |||
| n2 = n4; \ | |||
| SVQ1_ADD_CODEBOOK() \ | |||
| /* store result */ \ | |||
| dst[x] = n1 << 8 | n2; \ | |||
| } \ | |||
| dst += pitch / 4; \ | |||
| } | |||
| #define SVQ1_DO_CODEBOOK_NONINTRA() \ | |||
| for (y = 0; y < height; y++) { \ | |||
| for (x = 0; x < width / 4; x++, codebook++) { \ | |||
| n3 = dst[x]; \ | |||
| /* add mean value to vector */ \ | |||
| n1 = n4 + ((n3 & 0xFF00FF00) >> 8); \ | |||
| n2 = n4 + (n3 & 0x00FF00FF); \ | |||
| SVQ1_ADD_CODEBOOK() \ | |||
| /* store result */ \ | |||
| dst[x] = n1 << 8 | n2; \ | |||
| } \ | |||
| dst += pitch / 4; \ | |||
| } | |||
| #define SVQ1_CALC_CODEBOOK_ENTRIES(cbook) \ | |||
| codebook = (const uint32_t *)cbook[level]; \ | |||
| if (stages > 0) \ | |||
| @@ -228,7 +202,17 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, uint8_t *pixels, | |||
| memset(&dst[y * (pitch / 4)], mean, width); | |||
| } else { | |||
| SVQ1_CALC_CODEBOOK_ENTRIES(ff_svq1_intra_codebooks); | |||
| SVQ1_DO_CODEBOOK_INTRA() | |||
| for (y = 0; y < height; y++) { | |||
| for (x = 0; x < width / 4; x++, codebook++) { | |||
| n1 = n4; | |||
| n2 = n4; | |||
| SVQ1_ADD_CODEBOOK() | |||
| /* store result */ | |||
| dst[x] = n1 << 8 | n2; | |||
| } | |||
| dst += pitch / 4; | |||
| } | |||
| } | |||
| } | |||
| @@ -276,7 +260,19 @@ static int svq1_decode_block_non_intra(GetBitContext *bitbuf, uint8_t *pixels, | |||
| mean = get_vlc2(bitbuf, svq1_inter_mean.table, 9, 3) - 256; | |||
| SVQ1_CALC_CODEBOOK_ENTRIES(ff_svq1_inter_codebooks); | |||
| SVQ1_DO_CODEBOOK_NONINTRA() | |||
| for (y = 0; y < height; y++) { | |||
| for (x = 0; x < width / 4; x++, codebook++) { | |||
| n3 = dst[x]; | |||
| /* add mean value to vector */ | |||
| n1 = n4 + ((n3 & 0xFF00FF00) >> 8); | |||
| n2 = n4 + (n3 & 0x00FF00FF); | |||
| SVQ1_ADD_CODEBOOK() | |||
| /* store result */ | |||
| dst[x] = n1 << 8 | n2; | |||
| } | |||
| dst += pitch / 4; | |||
| } | |||
| } | |||
| return 0; | |||
| } | |||