From: Andreas Ă–man Date: Thu, 21 Jun 2007 07:52:06 +0000 (+0000) Subject: Don't swap back un-deblocked lines for intra prediction when X-Git-Tag: v0.5~8627 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b69378e2955b8a1efceb4867719b7da1200702e5;p=platform%2Fupstream%2Flibav.git Don't swap back un-deblocked lines for intra prediction when at slice boundaries for deblocking-type 2 content. This is needed for slice based threading only and doesn't do much good or bad otherwise. Patch by Andreas Oman %andreas A olebyn P nu% Original thread: date: Jun 18, 2007 1:21 PM subject: Re: [FFmpeg-devel] [PATCH] h264 parallelized, Originally committed as revision 9380 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 99e104e..cab2841 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3024,8 +3024,18 @@ static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_c MpegEncContext * const s = &h->s; int temp8, i; uint64_t temp64; - int deblock_left = (s->mb_x > 0); - int deblock_top = (s->mb_y > 0); + int deblock_left; + int deblock_top; + int mb_xy; + + if(h->deblocking_filter == 2) { + mb_xy = s->mb_x + s->mb_y*s->mb_stride; + deblock_left = h->slice_table[mb_xy] == h->slice_table[mb_xy - 1]; + deblock_top = h->slice_table[mb_xy] == h->slice_table[h->top_mb_xy]; + } else { + deblock_left = (s->mb_x > 0); + deblock_top = (s->mb_y > 0); + } src_y -= linesize + 1; src_cb -= uvlinesize + 1;