Index: vf_menu.c =================================================================== RCS file: /cvsroot/mplayer/main/libmenu/vf_menu.c,v retrieving revision 1.2 diff -u -r1.2 vf_menu.c --- vf_menu.c 18 Nov 2002 00:09:37 -0000 1.2 +++ vf_menu.c 21 Nov 2002 11:55:36 -0000 @@ -165,6 +164,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ mp_image_t *dmpi = NULL; + if(vf->priv->current->show) { // Close all menu who requested it while(vf->priv->current->cl && vf->priv->current != vf->priv->root) { menu_t* m = vf->priv->current; @@ -197,16 +197,37 @@ if(mp_input_key_cb && !vf->priv->current->show) mp_input_key_cb = NULL; +#ifndef __powerpc__ +#define MENU_IMGFLAGS MP_IMGFLAG_ACCEPT_STRIDE +#else +#define MENU_IMGFLAGS MP_IMGFLAG_ACCEPT_STRIDE&MP_IMGFLAG_PREFER_ALIGNED_STRIDE +#endif + if(mpi->flags&MP_IMGFLAG_DIRECT) dmpi = mpi->priv; else { dmpi = vf_get_image(vf->next,mpi->imgfmt, - MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, + MP_IMGTYPE_TEMP, MENU_IMGFLAGS, mpi->w,mpi->h); copy_mpi(dmpi,mpi); } menu_draw(vf->priv->current,dmpi); + } else { + if(mp_input_key_cb) + mp_input_key_cb = NULL; + dmpi = vf_get_image(vf->next,mpi->imgfmt, + MP_IMGTYPE_EXPORT, MENU_IMGFLAGS, + mpi->w,mpi->h); +#undef MENU_IMGFLAGS + dmpi->stride[0] = mpi->stride[0]; + dmpi->stride[1] = mpi->stride[1]; + dmpi->stride[2] = mpi->stride[2]; + dmpi->planes[0] = mpi->planes[0]; + dmpi->planes[1] = mpi->planes[1]; + dmpi->planes[2] = mpi->planes[2]; + dmpi->priv = mpi->priv; + } return vf_next_put_image(vf,dmpi); }