aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/aic.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-05 11:41:30 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-07-05 11:41:30 +0200
commitcced6f4d58168096f13a4d34555754717979429d (patch)
treec2febbecb61ae395f7281e7131735c1effc1c4ff /libavcodec/aic.c
parent0f85c96091e9e2c1ab0b939cd966c7c7220dadb0 (diff)
parente6d8acf6a8fba4743eb56eabe72a741d1bbee3cb (diff)
downloadffmpeg-cced6f4d58168096f13a4d34555754717979429d.tar.gz
Merge commit 'e6d8acf6a8fba4743eb56eabe72a741d1bbee3cb'
* commit 'e6d8acf6a8fba4743eb56eabe72a741d1bbee3cb': indeo: use a typedef for the mc function pointer cabac: x86 version of get_cabac_bypass aic: use chroma scan tables while decoding luma component in progressive mode Conflicts: libavcodec/aic.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/aic.c')
-rw-r--r--libavcodec/aic.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/aic.c b/libavcodec/aic.c
index 5a7d6c74b1..70e9f3f103 100644
--- a/libavcodec/aic.c
+++ b/libavcodec/aic.c
@@ -196,11 +196,11 @@ static int aic_decode_header(AICContext *ctx, const uint8_t *src, int size)
} while (0)
static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
- int band, int slice_width)
+ int band, int slice_width, int force_chroma)
{
int has_skips, coeff_type, coeff_bits, skip_type, skip_bits;
const int num_coeffs = aic_num_band_coeffs[band];
- const uint8_t *scan = aic_scan[band];
+ const uint8_t *scan = aic_scan[band | force_chroma];
int mb, idx;
unsigned val;
@@ -322,7 +322,8 @@ static int aic_decode_slice(AICContext *ctx, int mb_x, int mb_y,
sizeof(*ctx->slice_data) * slice_width * AIC_BAND_COEFFS);
for (i = 0; i < NUM_BANDS; i++)
if ((ret = aic_decode_coeffs(&gb, ctx->data_ptr[i],
- i, slice_width)) < 0)
+ i, slice_width,
+ !ctx->interlaced)) < 0)
return ret;
for (mb = 0; mb < slice_width; mb++) {
@@ -337,7 +338,7 @@ static int aic_decode_slice(AICContext *ctx, int mb_x, int mb_y,
ctx->dsp.idct(ctx->block);
if (!ctx->interlaced) {
- dst = Y + (blk & 1) * 8 * ystride + (blk >> 1) * 8;
+ dst = Y + (blk >> 1) * 8 * ystride + (blk & 1) * 8;
ctx->dsp.put_signed_pixels_clamped(ctx->block, dst,
ystride);
} else {