diff options
author | Yogender Kumar Gupta <yogender.gupta@gmail.com> | 2014-03-18 16:01:15 +0530 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-18 20:37:26 +0100 |
commit | 6f7ca1f55be1270e0d7c33409de4473e4dd00add (patch) | |
tree | ebf109047e5c102406ab235df86eb980461a9dd2 /libavcodec/h264.c | |
parent | 7ab315ec69018dd38fb851788053a74c5763d26e (diff) | |
download | ffmpeg-6f7ca1f55be1270e0d7c33409de4473e4dd00add.tar.gz |
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.c | 7 |
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, |