patch by Vitor: [vitor1001 gmail com] Originally committed as revision 9438 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
@@ -102,10 +102,10 @@ static inline void apply_motion_generic(RoqContext *ri, int x, int y, int deltax | |||||
my = y + deltay; | my = y + deltay; | ||||
/* check MV against frame boundaries */ | /* check MV against frame boundaries */ | ||||
if ((mx < 0) || (mx > ri->avctx->width - sz) || | |||||
(my < 0) || (my > ri->avctx->height - sz)) { | |||||
if ((mx < 0) || (mx > ri->width - sz) || | |||||
(my < 0) || (my > ri->height - sz)) { | |||||
av_log(ri->avctx, AV_LOG_ERROR, "motion vector out of bounds: MV = (%d, %d), boundaries = (0, 0, %d, %d)\n", | av_log(ri->avctx, AV_LOG_ERROR, "motion vector out of bounds: MV = (%d, %d), boundaries = (0, 0, %d, %d)\n", | ||||
mx, my, ri->avctx->width, ri->avctx->height); | |||||
mx, my, ri->width, ri->height); | |||||
return; | return; | ||||
} | } | ||||
@@ -145,11 +145,11 @@ static void roqvideo_decode_frame(RoqContext *ri) | |||||
} | } | ||||
xpos += 16; | xpos += 16; | ||||
if (xpos >= ri->avctx->width) { | |||||
xpos -= ri->avctx->width; | |||||
if (xpos >= ri->width) { | |||||
xpos -= ri->width; | |||||
ypos += 16; | ypos += 16; | ||||
} | } | ||||
if(ypos >= ri->avctx->height) | |||||
if(ypos >= ri->height) | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
@@ -160,6 +160,8 @@ static int roq_decode_init(AVCodecContext *avctx) | |||||
RoqContext *s = avctx->priv_data; | RoqContext *s = avctx->priv_data; | ||||
s->avctx = avctx; | s->avctx = avctx; | ||||
s->width = avctx->width; | |||||
s->height = avctx->height; | |||||
s->last_frame = &s->frames[0]; | s->last_frame = &s->frames[0]; | ||||
s->current_frame = &s->frames[1]; | s->current_frame = &s->frames[1]; | ||||
avctx->pix_fmt = PIX_FMT_YUV444P; | avctx->pix_fmt = PIX_FMT_YUV444P; | ||||