Mercurial > libavcodec.hg
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 |