From 2b13612d23b274d1b1b051e25b298576cba0fa5e Mon Sep 17 00:00:00 2001 From: conrad Date: Sun, 24 May 2009 03:39:20 +0000 Subject: [PATCH] H264: Don't deblock if alpha or beta is 0. This ensures that the MMX loop filter is always bitexact with the C version. git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18923 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- libavcodec/h264.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 550c4990d..f4c172b60 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -6003,6 +6003,7 @@ static void filter_mb_edgev( H264Context *h, uint8_t *pix, int stride, int16_t b const int index_a = qp + h->slice_alpha_c0_offset; const int alpha = (alpha_table+52)[index_a]; const int beta = (beta_table+52)[qp + h->slice_beta_offset]; + if (alpha ==0 || beta == 0) return; if( bS[0] < 4 ) { int8_t tc[4]; @@ -6019,6 +6020,7 @@ static void filter_mb_edgecv( H264Context *h, uint8_t *pix, int stride, int16_t const int index_a = qp + h->slice_alpha_c0_offset; const int alpha = (alpha_table+52)[index_a]; const int beta = (beta_table+52)[qp + h->slice_beta_offset]; + if (alpha ==0 || beta == 0) return; if( bS[0] < 4 ) { int8_t tc[4]; @@ -6187,6 +6189,7 @@ static void filter_mb_edgeh( H264Context *h, uint8_t *pix, int stride, int16_t b const int index_a = qp + h->slice_alpha_c0_offset; const int alpha = (alpha_table+52)[index_a]; const int beta = (beta_table+52)[qp + h->slice_beta_offset]; + if (alpha ==0 || beta == 0) return; if( bS[0] < 4 ) { int8_t tc[4]; @@ -6204,6 +6207,7 @@ static void filter_mb_edgech( H264Context *h, uint8_t *pix, int stride, int16_t const int index_a = qp + h->slice_alpha_c0_offset; const int alpha = (alpha_table+52)[index_a]; const int beta = (beta_table+52)[qp + h->slice_beta_offset]; + if (alpha ==0 || beta == 0) return; if( bS[0] < 4 ) { int8_t tc[4]; -- 2.39.2