| 201 |
|
|
| 202 |
|
dec->fixed_dimensions = (dec->width > 0 && dec->height > 0); |
| 203 |
|
|
| 204 |
< |
if (dec->fixed_dimensions) |
| 205 |
< |
return decoder_resize(dec); |
| 204 |
> |
if (dec->fixed_dimensions) { |
| 205 |
> |
int ret = decoder_resize(dec); |
| 206 |
> |
if (ret == XVID_ERR_MEMORY) create->handle = NULL; |
| 207 |
> |
return ret; |
| 208 |
> |
} |
| 209 |
|
else |
| 210 |
|
return 0; |
| 211 |
|
} |
| 751 |
|
bound = read_video_packet_header(bs, dec, 0, |
| 752 |
|
&quant, NULL, NULL, &intra_dc_threshold); |
| 753 |
|
x = bound % mb_width; |
| 754 |
< |
y = bound / mb_width; |
| 754 |
> |
y = MIN((bound / mb_width), (mb_height-1)); |
| 755 |
|
} |
| 756 |
|
mb = &dec->mbs[y * dec->mb_width + x]; |
| 757 |
|
|
| 978 |
|
bound = read_video_packet_header(bs, dec, fcode - 1, |
| 979 |
|
&quant, &fcode, NULL, &intra_dc_threshold); |
| 980 |
|
x = bound % mb_width; |
| 981 |
< |
y = bound / mb_width; |
| 981 |
> |
y = MIN((bound / mb_width), (mb_height-1)); |
| 982 |
|
} |
| 983 |
|
mb = &dec->mbs[y * dec->mb_width + x]; |
| 984 |
|
|
| 1387 |
|
int bound = read_video_packet_header(bs, dec, resync_len, &quant, |
| 1388 |
|
&fcode_forward, &fcode_backward, &intra_dc_threshold); |
| 1389 |
|
x = bound % dec->mb_width; |
| 1390 |
< |
y = bound / dec->mb_width; |
| 1390 |
> |
y = MIN((bound / dec->mb_width), (dec->mb_height-1)); |
| 1391 |
|
/* reset predicted macroblocks */ |
| 1392 |
|
dec->p_fmv = dec->p_bmv = zeromv; |
| 1393 |
|
/* update resync len with new fcodes */ |