Re: impostor yv12
D Richard Felker III <[email protected]> Thu, 5 Feb 2004 02:26:51 -0500
| Newsgroups | gmane.comp.video.mplayer.g2.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Feb 05, 2004 at 01:21:29AM +0200, Ivan Kalvachev wrote: > D Richard Felker III said: > > On Wed, Feb 04, 2004 at 02:42:04AM +0200, Ivan Kalvachev wrote: > >> Hello, > >> I had send few patches and few mails to xvid people > >> regarding their handling of YV12 format. > >> In short they claimed that it is reversed and they swaped the UV > >> planes. I had tracked a bug in DSHOW and VfW handling of > >> IYUV - they had mapped it to yv12, while IYUV is the same as I420. > >> Few weaks ago I checked the image.c routines and noticed that > >> the thing are unchanged, but later i found out that the VfW/DShow issues > >> have been sorted. > >> > >> So, > >> In short the YV12 format is not the format that mplayer claims it is. > >> YV12 is in fact YVU / YCrCb /, that is in no way the default MPEG > >> standart > >> color format. As you know in MPEG 0,1,2,3 blocks are Y, Cb is #4 block, > >> Cr > >> is #5 block. > >> Yes, I know that all code over mplayer-g1 use IMGFMT_YV12 as YUV, but in > >> fact this format is the I420 or IYUV format. The real conversion is done > >> at vo_xv (in draw_slice around line 488). Same for vo_directx and > >> probably > >> all that support planar formats. I should say that now I see the reason > >> mplayer to have always U as plane[1] and V as plane[2]. > >> > >> Well, I don't want to change all IMGFMT_YV12 to I420, or to IMGFMT_YUV, > >> as it is a too global change. But we should make G2 in the right way. > >> Of cource if it is not already done. > > > > RTFM, this is all nonsense. MPlayer does not care about plane order, > > except when allocating or exporting buffers for crappy external > > codecs/filters/vo's that care. > I DO RTFM and RTFS > Thx for you both explaining me things I know and explain too. > This what I say is that we always have Y U V order in planes > and YV12 should be with flag SWAPPED set becouse it have > its plains in YVU order. > I would like to avoid referencing to yv12 as defalut and normal standart. In G1, I420 gets the "swapped" flag and YV12 is "normal". I agree this is backwards, but it doesn't particularly matter. G2 cares even less about plane order; it's just there so that codecs or vo's which have the "common plane" stride restriction will have it honored. Rich