Mercurial > libavcodec.hg
comparison mpegvideo.c @ 196:9ffa69cd4ed6 libavcodec
This fixes segfaults because of uninitialized s->mbintra_table variable - patch by Vladimir Dergachev <volodya@mindspring.com>
author | arpi_esp |
---|---|
date | Fri, 11 Jan 2002 21:32:34 +0000 |
parents | 27d1773552c9 |
children | 21abf1b20016 |
comparison
equal
deleted
inserted
replaced
195:92f726205082 | 196:9ffa69cd4ed6 |
---|---|
178 | 178 |
179 /* cbp values */ | 179 /* cbp values */ |
180 s->coded_block = av_mallocz(y_size); | 180 s->coded_block = av_mallocz(y_size); |
181 if (!s->coded_block) | 181 if (!s->coded_block) |
182 goto fail; | 182 goto fail; |
183 } | |
183 | 184 |
184 /* which mb is a intra block */ | 185 /* which mb is a intra block */ |
185 s->mbintra_table = av_mallocz(y_size/4); | 186 s->mbintra_table = av_mallocz(s->mb_width * s->mb_height); |
186 if (!s->mbintra_table) | 187 if (!s->mbintra_table) |
187 goto fail; | 188 goto fail; |
188 memset(s->mbintra_table, 1, y_size/4); | 189 memset(s->mbintra_table, 1, s->mb_width * s->mb_height); |
189 } | |
190 /* default structure is frame */ | 190 /* default structure is frame */ |
191 s->picture_structure = PICT_FRAME; | 191 s->picture_structure = PICT_FRAME; |
192 | 192 |
193 /* init macroblock skip table */ | 193 /* init macroblock skip table */ |
194 if (!s->encoding) { | 194 if (!s->encoding) { |
207 if (s->ac_val[0]) | 207 if (s->ac_val[0]) |
208 free(s->ac_val[0]); | 208 free(s->ac_val[0]); |
209 if (s->coded_block) | 209 if (s->coded_block) |
210 free(s->coded_block); | 210 free(s->coded_block); |
211 if (s->mbintra_table) | 211 if (s->mbintra_table) |
212 free(s->mbintra_table); | 212 { free(s->mbintra_table);s->mbintra_table=NULL; } |
213 if (s->mbskip_table) | 213 if (s->mbskip_table) |
214 free(s->mbskip_table); | 214 free(s->mbskip_table); |
215 for(i=0;i<3;i++) { | 215 for(i=0;i<3;i++) { |
216 if (s->last_picture_base[i]) | 216 if (s->last_picture_base[i]) |
217 free(s->last_picture_base[i]); | 217 free(s->last_picture_base[i]); |
232 free(s->motion_val); | 232 free(s->motion_val); |
233 if (s->h263_pred) { | 233 if (s->h263_pred) { |
234 free(s->dc_val[0]); | 234 free(s->dc_val[0]); |
235 free(s->ac_val[0]); | 235 free(s->ac_val[0]); |
236 free(s->coded_block); | 236 free(s->coded_block); |
237 free(s->mbintra_table); | 237 { free(s->mbintra_table);s->mbintra_table=NULL; } |
238 } | 238 } |
239 if (s->mbskip_table) | 239 if (s->mbskip_table) |
240 free(s->mbskip_table); | 240 free(s->mbskip_table); |
241 for(i=0;i<3;i++) { | 241 for(i=0;i<3;i++) { |
242 free(s->last_picture_base[i]); | 242 free(s->last_picture_base[i]); |