aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-03-04 01:03:15 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-03-04 01:03:15 +0000
commitb46b5ac9f8d013e238931fef9783e91c12d50b71 (patch)
treeafeb78a434d193868ef4fbc2f468dedc3a43bfc9 /libavcodec
parent91cfeac66877fd1dd49f94f920d823a886845d37 (diff)
downloadffmpeg-b46b5ac9f8d013e238931fef9783e91c12d50b71.tar.gz
Optimize *_type init, 1.5 cpu cycles faster.
Originally committed as revision 22192 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 842088b7cd..7caf7b3ed2 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){