Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] dvb driver corrupts video memory?



Here's a bug report against the DVB driver, all versions.

Short version: DVB -> /dev/video1 -> xawtv -> Xvideo -> Matrox G550
sometimes apparently corrupts video memory.

Long version:

I have the following system:
Athlon XP2400, Linux 2.4.22, Matrox G550 with two monitors,
XFree86 4.2.99.1, Hauppauge Nexus 2.1, an old Bt848 card,
vdr 1.2.5, xawtv 3.90.
The kernel bttv driver is loaded as video0 and dvb-ttpci as video1.
For the DVB driver version, see below.

It seems like xawtv always uses the "Matrox G-Series Backend Scaler"
device for video output (in overlay mode). This comes with the X
server. It can use either one of the two video devices as input and
all seems to work fine.

However, with certain things done to the xawtv window, the video
output suddenly gets distorted. These certain things include moving
the window around, obscuring parts of it, quick switching of the focus
in and out of that window, switching of virtual desktops. The common
theme seems to me that the output needs clipping or is turned off and
on. Another way to trigger the problem is to use the analogtv plugin
with a very noisy channel.

The distortions look like vertical stripes, 1-10 pixels wide, of the
video window getting reordered. The pattern always changes, sometimes
it changes with channel switches in vdr or more window manipulations
(including getting fixed). The OSD is affected too. With the DVB
driver from CVS 2003-10-13, it is considerably worse than with version
1.0.0. With the older version a channel switch re-orders the
corruption, often in the direction of getting fixed. With the newer
version, the corruption always stays until rebooting the machine.

Also with the newer version, in "corrupted mode" some X applications
misbehave, e.g. Mozilla shows black bars instead of characters. This
may be the problem described in the mplayer docs where an application
directly writing into video memory corrupts the X server's pixmap cache.

What I've noticed, after some experiments with window manager settings
(fvwm, if this matters at all), if I display the xawtv window without
any decoration, after closing the xawtv window, there remains a
vertical stripe 1 pixel wide on the left edge of the former window.

|| Therefore I assume the root cause could be an off by one error in
|| the calculation of the pixel positions in memory where the DVB driver
|| writes image data.

I suppose what happens further is that the Matrox hardware scaler then
feeds these wrong positions into positions which are even more wrong
and everything gets confused. (But after it once was corrupted, it
also happens with the display on the secondary screen, which is not
touched by the hardware scaler.)

Since the problem only occurs with DVB (not with only the bttv driver,
but it persists after unloading the DVB driver, indicating that indeed
some memory gets corrupted), and somewhat depends on the DVB driver
version, I assume the bug is in the DVB driver.

Olaf



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index