[SCM] libav/experimental: Optimize *_type init, 1.5 cpu cycles faster.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:02:49 UTC 2013


The following commit has been merged in the experimental branch:
commit b46b5ac9f8d013e238931fef9783e91c12d50b71
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Thu Mar 4 01:03:15 2010 +0000

    Optimize *_type init, 1.5 cpu cycles faster.
    
    Originally committed as revision 22192 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 842088b..7caf7b3 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -824,10 +824,18 @@ static void fill_decode_neighbors(H264Context *h, int mb_type){
     h->left_type[0] = s->current_picture.mb_type[left_xy[0]] ;
     h->left_type[1] = s->current_picture.mb_type[left_xy[1]] ;
 
+    if(FMO){
     if(h->slice_table[topleft_xy ] != h->slice_num) h->topleft_type = 0;
     if(h->slice_table[top_xy     ] != h->slice_num) h->top_type     = 0;
-    if(h->slice_table[topright_xy] != h->slice_num) h->topright_type= 0;
     if(h->slice_table[left_xy[0] ] != h->slice_num) h->left_type[0] = h->left_type[1] = 0;
+    }else{
+        if(h->slice_table[topleft_xy ] != h->slice_num){
+            h->topleft_type = 0;
+            if(h->slice_table[top_xy     ] != h->slice_num) h->top_type     = 0;
+            if(h->slice_table[left_xy[0] ] != h->slice_num) h->left_type[0] = h->left_type[1] = 0;
+        }
+    }
+    if(h->slice_table[topright_xy] != h->slice_num) h->topright_type= 0;
 }
 
 static void fill_decode_caches(H264Context *h, int mb_type){

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list