Mailing List archive

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

[linux-dvb] Re: dvb driver corrupts video memory?



Hello,

note: update at the end of the message.

> This means the official DVB driver, the DVB CVS driver, but not the
> dvb-kernel driver, right?

It occurs with the DVB 1.0.0, 1.0.1, DVB CVS and the dvb-kernel CVS
version. What I haven't tried yet is the metzlerbros.org version.

> You can enable or disable the "v4l" module in your X config. If loaded,
> it will present your dvb-card as a "Xv adaptor". The main advantage is
>...
> Do you load this module and use it?

Yes. I can force xawtv not to use it with -noxv -remote (yes, it
really needs both flags - with -noxv alone neither overlay [black] nor
grabdisplay [distorted] works - no idea why, but I don't completely
understand the interactions between HW, X server, bttv, dvb,
/dev/video*, Xvideo, xawtv here...)

> Can you make a screenshot of this and put it onto some webpage?

http://sites.inka.de/bigred/tmp/broken-video.jpg
Note that this screen capture is a bit incorrect (video memory
read/write conflict with capturing vs. video?), the vertical
stripes are really solid, not dotted. It looks like the columns are
swapped, like 23401567 instead of 01234567 (the pattern changes with
every occurrence).

> > 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.
>
> Hm, from your descriptions I assume that you're using the plain overlay
> mode without the "v4l" X module loaded.

wrong, but I have tried it with and without the module, and got the
problem in both cases (but it may be that I haven't rebooted the
machine in between for all tests, so this is unreliable).

Update: I have patched xawtv to make the overlay window one pixel
smaller on each edge. With this patch I can't reproduce the bug any
more. This further supports my initial hypothesis about an off by one
error.

Olaf

Here's the xawtv patch for reference (it gets the clipping wrong but
this is not the concern).

--- x11/x11.c.orig      Mon Apr  7 17:47:21 2003
+++ x11/x11.c   Mon Oct 20 19:54:13 2003
@@ -505,8 +505,12 @@
            fprintf(stderr," %s\n",conf ? "yes" : "no");
        if (conf) {
            overlay_on = 1;
-           if (f_drv & CAN_OVERLAY)
-               drv->overlay(h_drv,&wfmt,wx,wy,oc,oc_count,1);
+           if (f_drv & CAN_OVERLAY) {
+               struct ng_video_fmt wfmtx = wfmt;
+               wfmtx.width -= 2;
+               wfmtx.height -= 2;
+               drv->overlay(h_drv,&wfmtx,wx+1,wy+1,oc,oc_count,1);
+           }
            if (overlay_refresh)
                DEL_TIMER(overlay_refresh);
            overlay_refresh = ADD_TIMER(refresh_timer);

=== end of patch ===



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



Home | Main Index | Thread Index