summaryrefslogtreecommitdiff
path: root/libavcodec/h264.c
diff options
context:
space:
mode:
authorYogender Kumar Gupta <yogender.gupta@gmail.com>2014-03-18 16:01:15 +0530
committerMichael Niedermayer <michaelni@gmx.at>2014-03-18 20:37:26 +0100
commit6f7ca1f55be1270e0d7c33409de4473e4dd00add (patch)
treeebf109047e5c102406ab235df86eb980461a9dd2 /libavcodec/h264.c
parent7ab315ec69018dd38fb851788053a74c5763d26e (diff)
avcodec/h264: fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction
This is limited to the case where x264_build = -1, to not break x264 decoding Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r--libavcodec/h264.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index d919363c66..eeb867332c 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2486,7 +2486,12 @@ static av_always_inline void hl_decode_mb_predict_luma(H264Context *h,
uint8_t *const ptr = dest_y + block_offset[i];
const int dir = h->intra4x4_pred_mode_cache[scan8[i]];
if (transform_bypass && h->sps.profile_idc == 244 && dir <= 1) {
- h->hpc.pred8x8l_add[dir](ptr, h->mb + (i * 16 + p * 256 << pixel_shift), linesize);
+ if (h->x264_build != -1) {
+ h->hpc.pred8x8l_add[dir](ptr, h->mb + (i * 16 + p * 256 << pixel_shift), linesize);
+ } else
+ h->hpc.pred8x8l_filter_add[dir](ptr, h->mb + (i * 16 + p * 256 << pixel_shift),
+ (h-> topleft_samples_available << i) & 0x8000,
+ (h->topright_samples_available << i) & 0x4000, linesize);
} else {
const int nnz = h->non_zero_count_cache[scan8[i + p * 16]];
h->hpc.pred8x8l[dir](ptr, (h->topleft_samples_available << i) & 0x8000,