# HG changeset patch # User lorenm # Date 1180871083 0 # Node ID f0ffa056b77c1435f18e912e8d6c9dfb78569f37 # Parent fd173be649b7e4275a71ea3fae1737cd1e445971 filter_mb_fast() doesn't handle h->deblocking_filter==2 (skip slice edges), so delegate that case to filter_mb(). Patch by Andreas ªÓman [andreas at olebyn dot nu]. diff -r fd173be649b7 -r f0ffa056b77c h264.c --- a/h264.c Sat Jun 02 11:44:44 2007 +0000 +++ b/h264.c Sun Jun 03 11:44:43 2007 +0000 @@ -6665,13 +6665,16 @@ int mb_xy, mb_type; int qp, qp0, qp1, qpc, qpc0, qpc1, qp_thresh; - if(mb_x==0 || mb_y==0 || !s->dsp.h264_loop_filter_strength) { + mb_xy = mb_x + mb_y*s->mb_stride; + + if(mb_x==0 || mb_y==0 || !s->dsp.h264_loop_filter_strength || + (h->deblocking_filter == 2 && (h->slice_table[mb_xy] != h->slice_table[h->top_mb_xy] || + h->slice_table[mb_xy] != h->slice_table[mb_xy - 1]))) { filter_mb(h, mb_x, mb_y, img_y, img_cb, img_cr, linesize, uvlinesize); return; } assert(!FRAME_MBAFF); - mb_xy = mb_x + mb_y*s->mb_stride; mb_type = s->current_picture.mb_type[mb_xy]; qp = s->current_picture.qscale_table[mb_xy]; qp0 = s->current_picture.qscale_table[mb_xy-1];