Mercurial > libavcodec.hg
comparison snow.c @ 2604:b7e6c3d31c65 libavcodec
Snow segfault bug in revision 1.43 patch by (Yartrebo /yartrebo earthlink net/)
author | michael |
---|---|
date | Wed, 13 Apr 2005 01:57:19 +0000 |
parents | 5ec55feb6fdd |
children | 39ef4c5454f0 |
comparison
equal
deleted
inserted
replaced
2603:37cdd1a1174a | 2604:b7e6c3d31c65 |
---|---|
2756 if(s->keyframe || (s->avctx->debug&512)){ | 2756 if(s->keyframe || (s->avctx->debug&512)){ |
2757 if(mb_y==mb_h) | 2757 if(mb_y==mb_h) |
2758 return; | 2758 return; |
2759 | 2759 |
2760 if(add){ | 2760 if(add){ |
2761 for(y=block_w*mb_y; y<block_w*(mb_y+1); y++) | 2761 for(y=block_w*mb_y; y<FFMIN(h,block_w*(mb_y+1)); y++) |
2762 { | 2762 { |
2763 // DWTELEM * line = slice_buffer_get_line(sb, y); | 2763 // DWTELEM * line = slice_buffer_get_line(sb, y); |
2764 DWTELEM * line = sb->line[y]; | 2764 DWTELEM * line = sb->line[y]; |
2765 for(x=0; x<w; x++) | 2765 for(x=0; x<w; x++) |
2766 { | 2766 { |
2770 if(v&(~255)) v= ~(v>>31); | 2770 if(v&(~255)) v= ~(v>>31); |
2771 dst8[x + y*ref_stride]= v; | 2771 dst8[x + y*ref_stride]= v; |
2772 } | 2772 } |
2773 } | 2773 } |
2774 }else{ | 2774 }else{ |
2775 for(y=block_w*mb_y; y<block_w*(mb_y+1); y++) | 2775 for(y=block_w*mb_y; y<FFMIN(h,block_w*(mb_y+1)); y++) |
2776 { | 2776 { |
2777 // DWTELEM * line = slice_buffer_get_line(sb, y); | 2777 // DWTELEM * line = slice_buffer_get_line(sb, y); |
2778 DWTELEM * line = sb->line[y]; | 2778 DWTELEM * line = sb->line[y]; |
2779 for(x=0; x<w; x++) | 2779 for(x=0; x<w; x++) |
2780 { | 2780 { |
2824 if(s->keyframe || (s->avctx->debug&512)){ | 2824 if(s->keyframe || (s->avctx->debug&512)){ |
2825 if(mb_y==mb_h) | 2825 if(mb_y==mb_h) |
2826 return; | 2826 return; |
2827 | 2827 |
2828 if(add){ | 2828 if(add){ |
2829 for(y=block_w*mb_y; y<block_w*(mb_y+1); y++){ | 2829 for(y=block_w*mb_y; y<FFMIN(h,block_w*(mb_y+1)); y++){ |
2830 for(x=0; x<w; x++){ | 2830 for(x=0; x<w; x++){ |
2831 int v= buf[x + y*w] + (128<<FRAC_BITS) + (1<<(FRAC_BITS-1)); | 2831 int v= buf[x + y*w] + (128<<FRAC_BITS) + (1<<(FRAC_BITS-1)); |
2832 v >>= FRAC_BITS; | 2832 v >>= FRAC_BITS; |
2833 if(v&(~255)) v= ~(v>>31); | 2833 if(v&(~255)) v= ~(v>>31); |
2834 dst8[x + y*ref_stride]= v; | 2834 dst8[x + y*ref_stride]= v; |
2835 } | 2835 } |
2836 } | 2836 } |
2837 }else{ | 2837 }else{ |
2838 for(y=block_w*mb_y; y<block_w*(mb_y+1); y++){ | 2838 for(y=block_w*mb_y; y<FFMIN(h,block_w*(mb_y+1)); y++){ |
2839 for(x=0; x<w; x++){ | 2839 for(x=0; x<w; x++){ |
2840 buf[x + y*w]-= 128<<FRAC_BITS; | 2840 buf[x + y*w]-= 128<<FRAC_BITS; |
2841 } | 2841 } |
2842 } | 2842 } |
2843 } | 2843 } |