[MPlayer-dev-eng] Wrong YUV4MPEG aspect ratio code

Leonardo Giordani leonardo.giordani at treuropa.com
Mon May 24 11:21:32 CEST 2004


Hallo mplayer developers,

I created a YUV4MPEG stream with frames of size 720x576 and pixel aspect ratio 
59:54, but opening it with mplayer I noticed the following MPlayer output
(CVS snapshot 20040524):

[...]
Opening video decoder: [raw] RAW Uncompressed Video
VDec: vo config request - 720 x 576 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1,09:1 - prescaling to correct movie aspect.
VO: [xv] 720x576 => 720x658 Planar YV12
Selected video codec: [rawyv12] vfm:raw (RAW YV12)
[...]

This is wrong. The movie aspect ratio is not 1,09, it is 1,33!
In fact the scaling is wrong and I see the movie squeezed.

The problem is in demux_y4m.c lines 198-200:

[...]
ratio = y4m_si_get_sampleaspect(priv->si);
if (ratio.d != 0 && ratio.n != 0)
  sh->aspect = (float)ratio.n/(float)ratio.d;
[...]

The Sample Aspect in YUV4MPEG header is the Pixel Aspect Ratio (PAR), not the 
Movie Aspect Ratio (MAR).

If you do not know the PAR just suppose it to be 1:1 and set

MAR = Xdim / Ydim

In this case you know the PAR, so the right computation is

MAR = Xdim * PAR / Ydim

giving for the above picture MAR = 1.3625 (in fact a correct PAL picture is 
702x576 and not 720x576, thus giving a MAR = 1.3284375 = 1.33 = 4:3).

Thank you for your work!

Leonardo Giordani

-- 
Leonardo Giordani

Tele-Rilevamento Europa - T.R.E. s.r.l.
a POLIMI spin-off company
Via Vittoria Colonna, 7
20149 Milano - Italia
tel.: +39.02.4343.121
fax: +39.02.4343.1230
e-mail: leonardo.giordani at treuropa.com
web: www.treuropa.com




More information about the MPlayer-dev-eng mailing list