[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Hope this helps.
Michael G. Petry:
|A couple of us with Matrox cardsan 8meg have seen a strange shifting of
|the video image when running fxtv. I'm running it at 1280x1024 in 24 bit
|mode with a Bpp of 4. In the course of trying to understand the problem,
|it seems the image is shifted by 256 pixels. What concerns me is 1280 -
|1024 is where I came up with the guess of 256. (it use to run justfine in
|In TVCAPTUREStart of tvcapture.c I changed the folowing:
| video.addr = x->base_addr + (((g.y * x->pitch) + g.x + 256 ) * Bpp);
|This is a real hack at looking for the root cause. I don't know if this is a
|Matrox peculiarity or not. Are any others running in a higher than 1024xXXXX
|mode on their video boards and experiencing an image shift?
|Michael G Petry:
| |Randall Hopper:
| |> I gather the video block on the Millenium @ 1280 looks fine
| |> (solid, rectangular, correct colors); it just not in the window
| |> frame. It's off to the left. And only does this in 1280x1024, not
| |> 1024x768.
| |Yep. That's it.
| | video.addr = x->base_addr + (((g.y * x->pitch) + g.x + 256 ) * Bpp);
|Interesting. That means pitch and Bpp (4) are right. The g.y and g.x
|nums you reported looked right. That only leaves base_addr. Sounds like
|what DGA's reporting is less by 1024 bytes from what that hardware is
| |Igor Nikolaev writes:
| | > I have fxtv Version 0.46 and (working) milennium II AGP (Xfree 3.3.2).
| | > My videocard works in 32bpp mode (in 16bpp all o'k)
| | >
| | > This is well know bug or unknown feature?
| | >
| |This is known feature and Randall is trying to find out why this
| |happens. You can "fix" it by adding 256 to picture position.
| |tvcapture.c line 1509:
| |video.addr = x->base_addr + (g.y * x->pitch + g.x) * Bpp; ====>
| |video.addr = x->base_addr + (g.y * x->pitch + g.x + 256) * Bpp;
|Not much else I can do. From what we've seen, sounds like an XFree86 bug
|related to the Matrox 8Meg cards at 32bpp at desktops larger than 1024x768.
|You and Michael needed the "+256" for 1280. From Igor's pic, looks like
|for 1600x1200 he needs (and likely you'd need) +640:
| video.addr = x->base_addr + (g.y * x->pitch + g.x + 640) * Bpp;
To Unsubscribe: send mail to majordomo@xxxxxxxxxxx
with "unsubscribe freebsd-multimedia" in the body of the message