changeset 5613:481592004427

draw_slices with framedrop fixed
author arpi
date Sun, 14 Apr 2002 01:21:13 +0000
parents 027568c0f982
children b2b1942b16d5
files libmpcodecs/vd_ffmpeg.c libmpcodecs/vd_libmpeg2.c
diffstat 2 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vd_ffmpeg.c	Sun Apr 14 01:20:26 2002 +0000
+++ b/libmpcodecs/vd_ffmpeg.c	Sun Apr 14 01:21:13 2002 +0000
@@ -147,7 +147,8 @@
 
     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 @@
 	    // 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,
--- a/libmpcodecs/vd_libmpeg2.c	Sun Apr 14 01:20:26 2002 +0000
+++ b/libmpcodecs/vd_libmpeg2.c	Sun Apr 14 01:21:13 2002 +0000
@@ -154,7 +154,7 @@
 		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 {