# HG changeset patch # User michael # Date 1263774868 0 # Node ID 9bdf0bb607a366e69b98b3aa9261fc385c87453b # Parent 3082525ea11d0107d7270fe43eb01f0fc6ac45d3 Make qp check for loop filter skiping also work with MBAFF. diff -r 3082525ea11d -r 9bdf0bb607a3 h264.h --- a/h264.h Mon Jan 18 00:21:58 2010 +0000 +++ b/h264.h Mon Jan 18 00:34:28 2010 +0000 @@ -798,15 +798,14 @@ //for sufficiently low qp, filtering wouldn't do anything //this is a conservative estimate: could also check beta_offset and more accurate chroma_qp - if(!FRAME_MBAFF){ int qp_thresh = h->qp_thresh; //FIXME strictly we should store qp_thresh for each mb of a slice int qp = s->current_picture.qscale_table[mb_xy]; if(qp <= qp_thresh - && (s->mb_x == 0 || ((qp + s->current_picture.qscale_table[mb_xy-1] + 1)>>1) <= qp_thresh) + && (left_xy[0]<0 || ((qp + s->current_picture.qscale_table[left_xy[0]] + 1)>>1) <= qp_thresh) + && (left_xy[1]<0 || ((qp + s->current_picture.qscale_table[left_xy[1]] + 1)>>1) <= qp_thresh) && (top_xy < 0 || ((qp + s->current_picture.qscale_table[top_xy ] + 1)>>1) <= qp_thresh)){ return 1; } - } *((uint64_t*)&h->non_zero_count_cache[0+8*1])= *((uint64_t*)&h->non_zero_count[mb_xy][ 0]); *((uint64_t*)&h->non_zero_count_cache[0+8*2])= *((uint64_t*)&h->non_zero_count[mb_xy][ 8]);