Mercurial > mplayer.hg
comparison libswscale/swscale_template.c @ 22383:508e55817748
Fix a possible crash on 64 bit systems when the lumSrcPtr or chrSrcPtr
does not fit in 32 bits. The SWS_ACCURATE_RND is still broken though.
author | reimar |
---|---|
date | Thu, 01 Mar 2007 19:48:40 +0000 |
parents | 5f47768cbda5 |
children | 29827d88d2da |
comparison
equal
deleted
inserted
replaced
22382:0cdde40210bd | 22383:508e55817748 |
---|---|
3167 } | 3167 } |
3168 }else{ | 3168 }else{ |
3169 for(i=0; i<vLumFilterSize; i++) | 3169 for(i=0; i<vLumFilterSize; i++) |
3170 { | 3170 { |
3171 lumMmxFilter[4*i+0]= (int32_t)lumSrcPtr[i]; | 3171 lumMmxFilter[4*i+0]= (int32_t)lumSrcPtr[i]; |
3172 lumMmxFilter[4*i+1]= (uint64_t)lumSrcPtr[i] >> 32; | |
3172 lumMmxFilter[4*i+2]= | 3173 lumMmxFilter[4*i+2]= |
3173 lumMmxFilter[4*i+3]= | 3174 lumMmxFilter[4*i+3]= |
3174 ((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001; | 3175 ((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001; |
3175 } | 3176 } |
3176 for(i=0; i<vChrFilterSize; i++) | 3177 for(i=0; i<vChrFilterSize; i++) |
3177 { | 3178 { |
3178 chrMmxFilter[4*i+0]= (int32_t)chrSrcPtr[i]; | 3179 chrMmxFilter[4*i+0]= (int32_t)chrSrcPtr[i]; |
3180 chrMmxFilter[4*i+1]= (uint64_t)chrSrcPtr[i] >> 32; | |
3179 chrMmxFilter[4*i+2]= | 3181 chrMmxFilter[4*i+2]= |
3180 chrMmxFilter[4*i+3]= | 3182 chrMmxFilter[4*i+3]= |
3181 ((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001; | 3183 ((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001; |
3182 } | 3184 } |
3183 } | 3185 } |