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]);