Browse Source

H264: Don't deblock if alpha or beta is 0.

This ensures that the MMX loop filter is always bitexact with the C version.
Patch by Haruhiko Yamagata <h.yamagata _a_ nifty com>

Originally committed as revision 18923 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Haruhiko Yamagata David Conrad 16 years ago
parent
commit
86b0e9948b
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      libavcodec/h264.c

+ 4
- 0
libavcodec/h264.c View File

@@ -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];


Loading…
Cancel
Save