# HG changeset patch # User reimar # Date 1238336109 0 # Node ID 48ba0e64e7546e5edee3268aad1a9dee2674d346 # Parent 713fe7dab281025228d22bed3cea8e19bde7dffe Use MP_MAX_PLANES as size of arrays passed to mpcodecs_draw_slice. diff -r 713fe7dab281 -r 48ba0e64e754 libmpcodecs/vd_ffmpeg.c --- a/libmpcodecs/vd_ffmpeg.c Sun Mar 29 13:47:30 2009 +0000 +++ b/libmpcodecs/vd_ffmpeg.c Sun Mar 29 14:15:09 2009 +0000 @@ -451,7 +451,7 @@ AVFrame *src, int offset[4], int y, int type, int height){ sh_video_t *sh = s->opaque; - uint8_t *source[3]= {src->data[0] + offset[0], src->data[1] + offset[1], src->data[2] + offset[2]}; + uint8_t *source[MP_MAX_PLANES]= {src->data[0] + offset[0], src->data[1] + offset[1], src->data[2] + offset[2]}; #if 0 int start=0, i; int width= s->width; diff -r 713fe7dab281 -r 48ba0e64e754 libmpcodecs/vd_libmpeg2.c --- a/libmpcodecs/vd_libmpeg2.c Sun Mar 29 13:47:30 2009 +0000 +++ b/libmpcodecs/vd_libmpeg2.c Sun Mar 29 14:15:09 2009 +0000 @@ -125,14 +125,12 @@ vd_libmpeg2_ctx_t *context = sh->context; mpeg2dec_t* mpeg2dec = context->mpeg2dec; const mpeg2_info_t * info = mpeg2_info (mpeg2dec); - int stride[3]; + int stride[MP_MAX_PLANES] = {mpeg2dec->decoder.stride, mpeg2dec->decoder.uv_stride, mpeg2dec->decoder.uv_stride}; + uint8_t *srcs[MP_MAX_PLANES] = {src[0], src[1], src[2]}; // printf("draw_slice() y=%d \n",y); - stride[0]=mpeg2dec->decoder.stride; - stride[1]=stride[2]=mpeg2dec->decoder.uv_stride; - - mpcodecs_draw_slice(sh, (uint8_t **)src, + mpcodecs_draw_slice(sh, srcs, stride, info->sequence->picture_width, (y+16<=info->sequence->picture_height) ? 16 : info->sequence->picture_height-y,