[MPlayer-dev-eng] [DEVEL-ANNOUNCE] Mach64_vid finishing
Nick Kurshev
nickols_k at mail.ru
Sat Feb 16 09:16:12 CET 2002
Hello!
I've implement YUY2 support in vidix's mach64_vid driver.
It works fine for me. But planar fourccs are still not supported.
Indeed, I have rare access to this card, so please be without any
hopes into my address. But if someone wants - he can continue
improving of this driver.
My test configuration was: Cel1-266 + 3DRage IIC AGP 1x (2MB of Video memory).
My test movie is well known 405.avi
I was amazed by video performance of this card!
I've tested scaling on this card at 1024x768 - it gives me realtime
playback in the same time SW scaling on VESA gives me only 2 fps ;)
I've found out that BES of mach64 is similar to BES of Rrage128-Radeon2
cards but it's much simpler and less documented from open source point.
All what should be done by volunteers for planar fourccs - it's playing
with VIDEO_FORMAT video register. But it would be much better to dump out
video registers during DVD playback under Win98 with using gfxdump project:
cvs -z9 -d:pserver:anonymous at cvs.linuxvideo.org:/cvs/livid co -kb gatos-ati
I hope it will solve any problems ;)
Also this patch may help a lot:
--- mach64_vid.c.old Sat Feb 16 11:09:33 2002
+++ mach64_vid.c Sat Feb 16 11:13:39 2002
@@ -594,25 +594,25 @@
d1line = top*pitch;
d2line = src_h*pitch+(d1line>>2);
d3line = d2line+((src_h*pitch)>>2);
d1line += (left >> 16) & ~15;
d2line += (left >> 17) & ~15;
d3line += (left >> 17) & ~15;
config->offset.y = d1line & ~15;
config->offset.v = d2line & ~15;
config->offset.u = d3line & ~15;
besr.vid_buf0_base_adrs=((mach64_overlay_offset+config->offsets[0]+config->offset.y)&~15);
- besr.vid_buf1_base_adrs=((mach64_overlay_offset+config->offsets[0]+config->offset.v)&~15);
- besr.vid_buf2_base_adrs=((mach64_overlay_offset+config->offsets[0]+config->offset.u)&~15);
+ besr.vid_buf1_base_adrs=((mach64_overlay_offset+config->offsets[0]+config->offset.v)&~15)|1;
+ besr.vid_buf2_base_adrs=((mach64_overlay_offset+config->offsets[0]+config->offset.u)&~15)|1;
besr.vid_buf3_base_adrs=((mach64_overlay_offset+config->offsets[1]+config->offset.y)&~15);
- besr.vid_buf4_base_adrs=((mach64_overlay_offset+config->offsets[1]+config->offset.v)&~15);
- besr.vid_buf5_base_adrs=((mach64_overlay_offset+config->offsets[1]+config->offset.u)&~15);
+ besr.vid_buf4_base_adrs=((mach64_overlay_offset+config->offsets[1]+config->offset.v)&~15)|1;
+ besr.vid_buf5_base_adrs=((mach64_overlay_offset+config->offsets[1]+config->offset.u)&~15)|1;
config->offset.y = ((besr.vid_buf0_base_adrs)&~15) - mach64_overlay_offset;
config->offset.v = ((besr.vid_buf1_base_adrs)&~15) - mach64_overlay_offset;
config->offset.u = ((besr.vid_buf2_base_adrs)&~15) - mach64_overlay_offset;
if(besr.fourcc == IMGFMT_I420 || besr.fourcc == IMGFMT_IYUV)
{
uint32_t tmp;
tmp = config->offset.u;
config->offset.u = config->offset.v;
config->offset.v = tmp;
}
But don't forget keep pitch = 32 for planar fourcc! :(
Best regards! Nick
--
"We found out that many TVout problems can be solve like this:
Please attach a TV or VCR to the port and try again.
We hope that helps."
(ATI Inc.)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20020216/ed11e66b/attachment.pgp>
More information about the MPlayer-dev-eng
mailing list