[MPlayer-dev-eng] [BUG] expand=-1:-1:-1:-1:1, getting black blocks

D Richard Felker III dalias at aerifal.cx
Sun Oct 13 23:48:35 CEST 2002


On Sat, Oct 12, 2002 at 06:02:43PM +0200, Arpi wrote:
> Hi,
> 
> > > i'll look at it.
> > thx.
> 
> looked.
> Micahel's 2nd patch should work, anyway the better workaround:
> 
> Index: vf_expand.c
> ===================================================================
> RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_expand.c,v
> retrieving revision 1.16
> diff -u -r1.16 vf_expand.c
> --- vf_expand.c 10 Sep 2002 22:18:32 -0000      1.16
> +++ vf_expand.c 12 Oct 2002 15:58:44 -0000
> @@ -185,12 +185,7 @@
>  static void get_image(struct vf_instance_s* vf, mp_image_t *mpi){
>  //    if(mpi->type==MP_IMGTYPE_IPB) return; // not yet working
>  #ifdef OSD_SUPPORT
> -    if(vf->priv->osd && (mpi->flags&MP_IMGFLAG_PRESERVE)){
> -       // check if we have to render osd!
> -       vo_update_osd(vf->priv->exp_w, vf->priv->exp_h);
> -       if(vo_osd_check_range_update(vf->priv->exp_x,vf->priv->exp_y,
> -           vf->priv->exp_x+mpi->w,vf->priv->exp_y+mpi->h)) return;
> -    }
> +    if(vf->priv->osd) return;
>  #endif
>      if(vf->priv->exp_w==mpi->width ||
>         (mpi->flags&(MP_IMGFLAG_ACCEPT_STRIDE|MP_IMGFLAG_ACCEPT_WIDTH)) ){
> 
> It will disallow direct rendering if OSD parameter set to 1.
> The "problem" is that vf_expand allows directrender if nothing visible on
> OSD or the source mpi allow modification of the buffer (MP_IMGFLAG_PRESERVE
> not set). If you enable/disable OSD (or a subtitle appear/disappear) while
> playing, then DR will be en/disable between frames, maybe confusing the
> codec. Imho it's really a codec bug, it should be handled there.

If it's no longer possible to use DR when there's no OSD text visible,
then there should be a way to disable the nonsense automatic expand
filter in mencoder, since it will (I think?) make things much slower.

Rich




More information about the MPlayer-dev-eng mailing list