# HG changeset patch # User michael # Date 1058446304 0 # Node ID f9e4db4e4759de3b51a9d9c54201b663509fd3a8 # Parent 4a12cb46540a14751da98a708d7feb60c2bccc0c new ff_draw_horiz_band() diff -r 4a12cb46540a -r f9e4db4e4759 libmpcodecs/vd_ffmpeg.c --- a/libmpcodecs/vd_ffmpeg.c Wed Jul 16 11:22:12 2003 +0000 +++ b/libmpcodecs/vd_ffmpeg.c Thu Jul 17 12:51:44 2003 +0000 @@ -329,21 +329,28 @@ } static void draw_slice(struct AVCodecContext *s, - uint8_t **src, int linesize, +#if LIBAVCODEC_BUILD >= 4670 + AVFrame *src, int offset[4], +#else + uint8_t **src, int linesize, +#endif int y, int width, int height){ sh_video_t * sh = s->opaque; - int stride[3]; int start=0, i; int skip_stride= (s->width+15)>>4; uint8_t *skip= &s->coded_frame->mbskip_table[(y>>4)*skip_stride]; int threshold= s->coded_frame->age; - +#if LIBAVCODEC_BUILD >= 4670 + uint8_t *source[3]= {src->data[0] + offset[0], src->data[1] + offset[1], src->data[2] + offset[2]}; +#else + int stride[3]; stride[0]=linesize; if(s->coded_frame->linesize[1]){ stride[1]= s->coded_frame->linesize[1]; stride[2]= s->coded_frame->linesize[2]; }else stride[1]=stride[2]=stride[0]/2; +#endif #if 0 if(s->pict_type!=B_TYPE){ for(i=0; i*16= 4670 + mpcodecs_draw_slice (sh, source, src->linesize, width, height, 0, y); +#else mpcodecs_draw_slice (sh,src, stride, width, height, 0, y); +#endif } + static int init_vo(sh_video_t *sh){ vd_ffmpeg_ctx *ctx = sh->context; AVCodecContext *avctx = ctx->avctx; @@ -389,7 +401,7 @@ case PIX_FMT_YUV411P: ctx->best_csp=IMGFMT_411P;break; //dv ntsc case PIX_FMT_YUV422: ctx->best_csp=IMGFMT_YUY2;break; //huffyuv perhaps in the future case PIX_FMT_RGB24 : ctx->best_csp=IMGFMT_BGR24;break; //huffyuv - case PIX_FMT_RGBA32: ctx->best_csp=IMGFMT_BGR32;break; //huffyuv + case PIX_FMT_RGBA32: ctx->best_csp=IMGFMT_BGR32;break; //huffyuv / mjpeg #ifdef HAVE_XVMC case PIX_FMT_XVMC: //ctx->best_csp=IMGFMT_XVMC_MPEG2; ctx->best_csp=sh->codec->outfmt[sh->outfmtidx];//!!maybe!!??