diff -uNrp a/input/ffms.c b/input/ffms.c --- a/input/ffms.c 2010-02-15 12:48:41 +0200 +++ b/input/ffms.c 2010-04-06 19:07:57 +0300 @@ -207,7 +207,7 @@ static int read_frame( x264_picture_t *p * With threaded input, copying the pointers would result in the data changing during encoding. * FIXME: don't do redundant sws_scales for singlethreaded input, or fix FFMS to allow * multiple FFMS_Frame buffers. */ - sws_scale( h->scaler, (uint8_t**)frame->Data, (int*)frame->Linesize, 0, + sws_scale( h->scaler, (const uint8_t * const *)frame->Data, (int*)frame->Linesize, 0, frame->EncodedHeight, p_pic->img.plane, p_pic->img.i_stride ); const FFMS_FrameInfo *info = FFMS_GetFrameInfo( h->track, i_frame ); diff -uNrp a/input/lavf.c b/input/lavf.c --- a/input/lavf.c 2010-02-15 12:48:41 +0200 +++ b/input/lavf.c 2010-04-06 19:07:29 +0300 @@ -121,7 +121,7 @@ static int read_frame_internal( x264_pic if( check_swscale( h, c, i_frame ) ) return -1; /* FIXME: avoid sws_scale where possible (no colorspace conversion). */ - sws_scale( h->scaler, frame->data, frame->linesize, 0, c->height, p_pic->img.plane, p_pic->img.i_stride ); + sws_scale( h->scaler, (const uint8_t * const *)frame->data, frame->linesize, 0, c->height, p_pic->img.plane, p_pic->img.i_stride ); if( info ) info->interlaced = frame->interlaced_frame;