From 3d2c3ef4b46d96023d6f0d358e4d7d65568da67c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michaelni@gmx.at> Date: Sun, 14 Feb 2010 02:08:48 +0000 Subject: [PATCH] Remove slice_table checks from decode_cabac_mb_cbp_luma() and set left/top_cbp so these checks arent needed. Originally committed as revision 21819 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.h | 8 ++++---- libavcodec/h264_cabac.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 9b4a72e9558..f5eb17bbd73 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -927,17 +927,17 @@ static void fill_decode_caches(H264Context *h, int mb_type){ if(top_type) { h->top_cbp = h->cbp_table[top_xy]; } else if(IS_INTRA(mb_type)) { - h->top_cbp = 0x1C0; + h->top_cbp = 0x1CF; } else { - h->top_cbp = 0; + h->top_cbp = 0x00F; } // left_cbp if (left_type[0]) { h->left_cbp = h->cbp_table[left_xy[0]] & 0x1f0; } else if(IS_INTRA(mb_type)) { - h->left_cbp = 0x1C0; + h->left_cbp = 0x1CF; } else { - h->left_cbp = 0; + h->left_cbp = 0x00F; } if (left_type[0]) { h->left_cbp |= ((h->cbp_table[left_xy[0]]>>((left_block[0]&(~1))+1))&0x1) << 1; diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index aba25a539ac..a35b3eb0bd1 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -867,8 +867,8 @@ static int decode_cabac_mb_chroma_pre_mode( H264Context *h) { static int decode_cabac_mb_cbp_luma( H264Context *h) { int cbp_b, cbp_a, ctx, cbp = 0; - cbp_a = h->slice_table[h->left_mb_xy[0]] == h->slice_num ? h->left_cbp : -1; - cbp_b = h->slice_table[h->top_mb_xy] == h->slice_num ? h->top_cbp : -1; + cbp_a = h->left_cbp; + cbp_b = h->top_cbp; ctx = !(cbp_a & 0x02) + 2 * !(cbp_b & 0x04); cbp |= get_cabac_noinline(&h->cabac, &h->cabac_state[73 + ctx]); -- GitLab