comparison msrledec.c @ 8265:bb310197d59f libavcodec

Print out some errors found during MS RLE decoding
author kostya
date Sat, 06 Dec 2008 09:01:11 +0000
parents f874e1d5cf07
children ce2bb0ae8587
comparison
equal deleted inserted replaced
8264:48dcf657f897 8265:bb310197d59f
143 p1 = *src++; 143 p1 = *src++;
144 if(p1 == 0) { //Escape code 144 if(p1 == 0) { //Escape code
145 p2 = *src++; 145 p2 = *src++;
146 if(p2 == 0) { //End-of-line 146 if(p2 == 0) { //End-of-line
147 output = pic->data[0] + (--line) * pic->linesize[0]; 147 output = pic->data[0] + (--line) * pic->linesize[0];
148 if (line < 0) 148 if (line < 0){
149 av_log(avctx, AV_LOG_ERROR, "Next line is beyond picture bounds\n");
149 return -1; 150 return -1;
151 }
150 pos = 0; 152 pos = 0;
151 continue; 153 continue;
152 } else if(p2 == 1) { //End-of-picture 154 } else if(p2 == 1) { //End-of-picture
153 return 0; 155 return 0;
154 } else if(p2 == 2) { //Skip 156 } else if(p2 == 2) { //Skip
155 p1 = *src++; 157 p1 = *src++;
156 p2 = *src++; 158 p2 = *src++;
157 line -= p2; 159 line -= p2;
158 if (line < 0) 160 if (line < 0){
161 av_log(avctx, AV_LOG_ERROR, "Skip beyond picture bounds\n");
159 return -1; 162 return -1;
163 }
160 pos += p1; 164 pos += p1;
161 output = pic->data[0] + line * pic->linesize[0] + pos * (depth >> 3); 165 output = pic->data[0] + line * pic->linesize[0] + pos * (depth >> 3);
162 continue; 166 continue;
163 } 167 }
164 // Copy data 168 // Copy data