ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvs/xvidcore/src/decoder.c
(Generate patch)

Comparing xvidcore/src/decoder.c (file contents):
Revision 1.80 by Skal, Mon Apr 16 19:01:28 2007 UTC vs.
Revision 1.81 by Isibaar, Thu May 28 15:42:06 2009 UTC

# Line 201 | Line 201 | decoder_create(xvid_dec_create_t * creat
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   }
# Line 748 | Line 751 | decoder_iframe(DECODER * dec,
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  
# Line 975 | Line 978 | decoder_pframe(DECODER * dec,
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  
# Line 1384 | Line 1387 | decoder_bframe(DECODER * dec,
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 */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines