changeset 11354:2a9acfd46715 libavcodec

Optimize *_type init, 1.5 cpu cycles faster.
author michael
date Thu, 04 Mar 2010 01:03:15 +0000
parents 1ea249b4c6e7
children 3f7b7e3695c0
files h264.h
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/h264.h	Wed Mar 03 23:27:43 2010 +0000
+++ b/h264.h	Thu Mar 04 01:03:15 2010 +0000
@@ -824,10 +824,18 @@
     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[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;
-    if(h->slice_table[left_xy[0] ] != h->slice_num) h->left_type[0] = h->left_type[1] = 0;
 }
 
 static void fill_decode_caches(H264Context *h, int mb_type){