[MPlayer-cvslog] r36401 - trunk/libmpcodecs/vd.c

Reimar Döffinger Reimar.Doeffinger at gmx.de
Mon Aug 5 23:11:47 CEST 2013



On 05.08.2013, at 21:36, Ingo Brückl <ib at wupperonline.de> wrote:

> Reimar Döffinger wrote on Mon, 5 Aug 2013 20:49:28 +0200:
> 
>> That one seems fine to me, except that the vd_mpegpes change seems
>> completely broken to me (will cause continuous reinits if a different
>> aspect is forced into sh_aspect).
> 
> Isn't that what vd_mpegpes already does right now?
> 
>  if(len>10 && !d[0] && !d[1] && d[2]==1 && d[3]==0xB3) {
>      float old_aspect = sh->aspect;
>      int oldw = sh->disp_w, oldh = sh->disp_h;
>      mp_header_process_sequence_header(&picture, &d[4]);
>      sh->aspect = mpeg12_aspect_info(&picture);
>      sh->disp_w = picture.display_picture_width;
>      sh->disp_h = picture.display_picture_height;
>      if(sh->aspect != old_aspect || sh->disp_w != oldw || sh->disp_h != oldh) {
>          if(!mpcodecs_config_vo(sh, sh->disp_w,sh->disp_h,IMGFMT_MPEGPES))
>              return 0;
>      }
>  }
> 
> If mpeg12_aspect_info(&picture) differs from actual sh->aspect (old_aspect),
> mpcodecs_config_vo() will be called where sh->aspect may be changed by a
> movie_aspect setting, thus making sh->aspect different from the picture
> aspect again.

Maybe, it certainly isn't what it is supposed to do...
The condition should trigger once when the encoded aspect changes.


More information about the MPlayer-cvslog mailing list