summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-14 01:21:13 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-14 01:21:13 +0000
commit4efbbf02fae250deb7f976e02b234b29782c4a64 (patch)
tree0fde17ad994e0d2fe1879d20965566a7d0761217 /libmpcodecs
parentb9ea078f4f3a4185f1c1a88f861e691a375758c3 (diff)
downloadmpv-4efbbf02fae250deb7f976e02b234b29782c4a64.tar.bz2
mpv-4efbbf02fae250deb7f976e02b234b29782c4a64.tar.xz
draw_slices with framedrop fixed
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5614 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_ffmpeg.c6
-rw-r--r--libmpcodecs/vd_libmpeg2.c2
2 files changed, 4 insertions, 4 deletions
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 {