From 4efbbf02fae250deb7f976e02b234b29782c4a64 Mon Sep 17 00:00:00 2001 From: arpi Date: Sun, 14 Apr 2002 01:21:13 +0000 Subject: draw_slices with framedrop fixed git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5614 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vd_ffmpeg.c | 6 +++--- libmpcodecs/vd_libmpeg2.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'libmpcodecs') diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c index 1b6273b444..78d7200281 100644 --- a/libmpcodecs/vd_ffmpeg.c +++ b/libmpcodecs/vd_ffmpeg.c @@ -147,7 +147,8 @@ static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){ if(len<=0) return NULL; // skipped frame - if(ctx->vo_inited && !ctx->convert){ + avctx->draw_horiz_band=NULL; + if(ctx->vo_inited && !ctx->convert && !(flags&3)){ mpi=mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, MP_IMGFLAG_PRESERVE | (ctx->do_slices?MP_IMGFLAG_DRAW_CALLBACK:0), sh->disp_w, sh->disp_h); @@ -155,8 +156,7 @@ static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){ // vd core likes slices! avctx->draw_horiz_band=draw_slice; avctx->opaque=sh->video_out; - } else - avctx->draw_horiz_band=NULL; + } } ret = avcodec_decode_video(avctx, &lavc_picture, diff --git a/libmpcodecs/vd_libmpeg2.c b/libmpcodecs/vd_libmpeg2.c index efad8eef40..45158fc02b 100644 --- a/libmpcodecs/vd_libmpeg2.c +++ b/libmpcodecs/vd_libmpeg2.c @@ -154,7 +154,7 @@ static mp_image_t* parse_chunk (sh_video_t* sh, int code, uint8_t * buffer, int mp_image_t* mpi; int flags; if (picture->picture_coding_type == B_TYPE){ - flags=vd_use_slices?MP_IMGFLAG_DRAW_CALLBACK:0; + flags=(!framedrop && vd_use_slices)?MP_IMGFLAG_DRAW_CALLBACK:0; picture->display_frame= picture->current_frame = picture->temp_frame; } else { -- cgit v1.2.3