changeset 5177:ea61020e5e87 libavcodec

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,
author gpoirier
date Thu, 21 Jun 2007 07:52:06 +0000
parents 82f7eaa32f46
children b215d5a5fa9a
files h264.c
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/h264.c	Thu Jun 21 07:46:48 2007 +0000
+++ b/h264.c	Thu Jun 21 07:52:06 2007 +0000
@@ -3024,8 +3024,18 @@
     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;