summaryrefslogtreecommitdiff
path: root/libavcodec/snow.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/snow.c')
-rw-r--r--libavcodec/snow.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavcodec/snow.c b/libavcodec/snow.c
index 4758698813..6309307f42 100644
--- a/libavcodec/snow.c
+++ b/libavcodec/snow.c
@@ -2033,8 +2033,16 @@ static inline void decode_subband(SnowContext *s, SubBand *b, DWTELEM *src, DWTE
//FIXME try to store a more naive run
v=1;
}else{
+ int py= y>>1;
run--;
v=0;
+
+ if(y && parent && py < b->parent->height){
+ while(run && x+2<w && !src[x + 2 + (y-1)*stride] && !parent[((x+1)>>1) + py*2*stride]){
+ x++;
+ run--;
+ }
+ }
}
}
if(v){
@@ -2046,7 +2054,7 @@ static inline void decode_subband(SnowContext *s, SubBand *b, DWTELEM *src, DWTE
}
}
}
- if(level+1 == s->spatial_decomposition_count){
+ if(w > 200 /*level+1 == s->spatial_decomposition_count*/){
STOP_TIMER("decode_subband")
}