diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-07-05 11:41:30 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-07-05 11:41:30 +0200 |
commit | cced6f4d58168096f13a4d34555754717979429d (patch) | |
tree | c2febbecb61ae395f7281e7131735c1effc1c4ff /libavcodec/aic.c | |
parent | 0f85c96091e9e2c1ab0b939cd966c7c7220dadb0 (diff) | |
parent | e6d8acf6a8fba4743eb56eabe72a741d1bbee3cb (diff) | |
download | ffmpeg-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.c | 9 |
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 { |