Opened 15 years ago
Closed 15 years ago
Last modified 15 years ago
#523 closed defect (invalid)
ATI xv playback has messed up colours (looks like red/blue inversion or similar)
Reported by: | Owned by: | Isaac Richards | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | ati xv colors colours |
Cc: | Ticket locked: | no |
Description
Colours are roughly red->blue, blue->red. They certainly seem to be swapped on the OSD.
It looks like the xv surface is being fed data in the wrong pixel format, although I haven't figured out quite why yet. The I420 format is being used (although if I change the preferences in the code to YV12 the results are basically the same). mplayer handles xv output fine so I don't think it is an ATI driver bug (xfree 4.3.0.1, ati proprietary driver driver 8.18.6).
Any pointers and I'll happily have a go at debugging this.
Thanks,
Mark
Change History (4)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
Ask user questions on the mailing lists or find any of the numerous answer in the archives about the Xv "hue" settings.
comment:3 Changed 15 years ago by
This commit adds printing of the FourCC codes of the XVideo surfaces when "-v playback" is enabled. It als adds the IYUV planar format to the list of accepted formats; IYUV is bit equivalent to the I420 format, so we just treat it as if we had seen a I420 id.
mark-clist AT npsl.co.uk, can you attach the FourCC codes it prints out for your ATI card?
Look for "XVideo Format" in the output..
You should look at: VideoOutputXv::PrepareFrameXv?(VideoFrame? *frame) VideoOutputXv::InitXVideo() OSDSurface::BlendToYV12(unsigned char *yuvptr) const
Also http://www.fourcc.org/yuv.php has a run down of the various popular hardware pixel formats. It is possible that the ATI card is using some other planar format like YCrCb which uses the same intensity plane but completely different color planes. MythTV currently only supports I420 and YV12 for XVideo; so you either want to get that by modifying InitXVideo or add another format converter to PrepareFrameXv?().