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

Bug#383194: marked as done (fbtv does not work correctly on radeonfb)



Your message dated Sun, 29 Jul 2007 17:47:15 +0000
with message-id <E1IFCrL-0007Xe-MP@ries.debian.org>
and subject line Bug#383194: fixed in xawtv 3.95.dfsg.1-4
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: fbtv
Version: 3.95-1
Tags: patch

Hello,
  this patch fixes 4 problems with fbtv I've observed with radeonfb:

(1) Fixes to support 15bpp depth in v4l-conf.  d->bpp must be used to
    distinguish between 24 and 32 RGB888 formats, but d->depth must
    be used to distinguish between RGB555 and RGB565.

(2) When switching terminals fbtv forgets to reload palette.

(3) Clearing 256MB of videoram is dog slow.  It is better to just clear
    visible area - which is usually 10-100 times smaller.

(4) On atyfb FBIOGETCMAP returns (in 15/16bpp) returns cmap with 256
    entries, but when this cmap is programmed back it returns EINVAL
    when cmap length is over 32 (or over 64 for 16bpp).  Fortunately
    first 32/64 entries are programmed anyway, so we can just ignore
    EINVAL returned from FBIOPUTCMAP.

						Thanks,
							Petr Vandrovec



diff -urN xawtv-3.95.dist/console/fbtools.c xawtv-3.95/console/fbtools.c
--- xawtv-3.95.dist/console/fbtools.c	2003-02-14 15:14:04.000000000 +0100
+++ xawtv-3.95/console/fbtools.c	2006-08-15 16:07:29.000000000 +0200
@@ -447,7 +447,7 @@
     fb_activate_current(tty);
 
     /* cls */
-    fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+    fb_memset(fb_mem+fb_mem_offset,0,fb_var.yres * fb_fix.line_length);
     return fb;
 
  err:
@@ -458,15 +458,33 @@
 void
 fb_cleanup(void)
 {
+    struct fb_var_screeninfo var;
+
     /* restore console */
+    if (0 == ioctl(fb,FBIOGET_VSCREENINFO,&var)) {
+	if (!memcmp(&var, &fb_ovar, sizeof(var))) {
+	    goto skip_var;
+	}
+    }
     if (-1 == ioctl(fb,FBIOPUT_VSCREENINFO,&fb_ovar))
 	perror("ioctl FBIOPUT_VSCREENINFO");
+skip_var:
     if (-1 == ioctl(fb,FBIOGET_FSCREENINFO,&fb_fix))
 	perror("ioctl FBIOGET_FSCREENINFO");
     if (fb_ovar.bits_per_pixel == 8 ||
 	fb_fix.visual == FB_VISUAL_DIRECTCOLOR) {
-	if (-1 == ioctl(fb,FBIOPUTCMAP,&ocmap))
-	    perror("ioctl FBIOPUTCMAP");
+	if (-1 == ioctl(fb,FBIOPUTCMAP,&ocmap)) {
+            /*
+             * radeonfb in 15/16bpp returns EINVAL when color
+             * map retrieved by FBIOGETCMAP is programmed back
+             * by FBIOPUTCMAP.  It still programs palette
+             * correctly, just instead of ignoring items 64-255
+             * it returns an error.
+             */
+	    if (errno != EINVAL) {
+	        perror("ioctl FBIOPUTCMAP");
+	    }
+	}
     }
     close(fb);
 
diff -urN xawtv-3.95.dist/console/fbtv.c xawtv-3.95/console/fbtv.c
--- xawtv-3.95.dist/console/fbtv.c	2005-09-30 12:09:22.000000000 +0200
+++ xawtv-3.95/console/fbtv.c	2006-08-15 16:07:04.000000000 +0200
@@ -230,6 +230,26 @@
 }
 
 static void
+fb_loadpalette(int fd)
+{
+    if (fb_var.bits_per_pixel == 8 ||
+        fb_fix.visual == FB_VISUAL_DIRECTCOLOR) {
+        if (-1 == ioctl(fd,FBIOPUTCMAP,&cmap)) {
+	    /*
+	     * radeonfb in 15/16bpp returns EINVAL when color 
+	     * map retrieved by FBIOGETCMAP is programmed back
+	     * by FBIOPUTCMAP.  It still programs palette
+	     * correctly, just instead of ignoring items 64-255
+	     * it returns an error.
+	     */
+	    if (errno != EINVAL) {
+                perror("ioctl FBIOPUTCMAP");
+	    }
+	}
+    }
+}
+
+static void
 fb_initcolors(int fd, int gray)
 {
     /* get colormap */
@@ -288,11 +308,7 @@
     }
 
     /* set colormap */
-    if (fb_var.bits_per_pixel == 8 ||
-	fb_fix.visual == FB_VISUAL_DIRECTCOLOR) {
-	if (-1 == ioctl(fd,FBIOPUTCMAP,&cmap))
-	    perror("ioctl FBIOPUTCMAP");
-    }
+    fb_loadpalette(fd);
 }
 
 static void
@@ -511,11 +527,17 @@
 }
 
 static void
+clear_video(void)
+{
+    fb_memset(fb_mem+fb_mem_offset,0,fb_var.yres * fb_fix.line_length);
+}
+
+static void
 do_fullscreen(void)
 {
     do_va_cmd(2,"capture","off");
     quiet = !quiet;
-    fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+    clear_video();
     do_va_cmd(2,"capture","on");
 }
 
@@ -553,8 +575,9 @@
     case FB_ACQ_REQ:
 	switch_last = fb_switch_state;
         fb_switch_acquire();
-	fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+	clear_video();
 	ioctl(fb,FBIOPAN_DISPLAY,&fb_var);
+	fb_loadpalette(fb);
 	do_va_cmd(2,"capture","on");
 	break;
     case FB_ACTIVE:
@@ -748,7 +771,7 @@
     }
 #endif
 
-    fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+    clear_video();
     for (;!sig;) {
 	if ((fb_switch_state == FB_ACTIVE || keep_dma_on) && !quiet) {
 	    /* clear first lines */
@@ -918,7 +941,7 @@
 	audio_off();
     drv->close(h_drv);
     if (fb_switch_state == FB_ACTIVE)
-	fb_memset(fb_mem+fb_mem_offset,0,fb_fix.smem_len);
+	clear_video();
     tty_cleanup();
     fb_cleanup();
     exit(0);
diff -urN xawtv-3.95.dist/console/v4l-conf.c xawtv-3.95/console/v4l-conf.c
--- xawtv-3.95.dist/console/v4l-conf.c	2005-02-09 13:27:36.000000000 +0100
+++ xawtv-3.95/console/v4l-conf.c	2006-08-15 15:15:22.000000000 +0200
@@ -347,7 +347,7 @@
     /* set values */
     fb.fmt.width  = d->width;
     fb.fmt.height = d->height;
-    switch (d->bpp) {
+    switch (d->bpp != 16 ? d->bpp : d->depth) {
     case  8: fb.fmt.pixelformat = V4L2_PIX_FMT_HI240;   break;
 #if BYTE_ORDER == BIG_ENDIAN
     case 15: fb.fmt.pixelformat = V4L2_PIX_FMT_RGB555X; break;


--- End Message ---
--- Begin Message ---
Source: xawtv
Source-Version: 3.95.dfsg.1-4

We believe that the bug you reported is fixed in the latest version of
xawtv, which is due to be installed in the Debian FTP archive:

alevtd_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/alevtd_3.95.dfsg.1-4_ia64.deb
fbtv_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/fbtv_3.95.dfsg.1-4_ia64.deb
pia_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/pia_3.95.dfsg.1-4_ia64.deb
radio_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/radio_3.95.dfsg.1-4_ia64.deb
scantv_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/scantv_3.95.dfsg.1-4_ia64.deb
streamer_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/streamer_3.95.dfsg.1-4_ia64.deb
ttv_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/ttv_3.95.dfsg.1-4_ia64.deb
v4l-conf_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/v4l-conf_3.95.dfsg.1-4_ia64.deb
webcam_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/webcam_3.95.dfsg.1-4_ia64.deb
xawtv-plugins_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/xawtv-plugins_3.95.dfsg.1-4_ia64.deb
xawtv-tools_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/xawtv-tools_3.95.dfsg.1-4_ia64.deb
xawtv_3.95.dfsg.1-4.diff.gz
  to pool/main/x/xawtv/xawtv_3.95.dfsg.1-4.diff.gz
xawtv_3.95.dfsg.1-4.dsc
  to pool/main/x/xawtv/xawtv_3.95.dfsg.1-4.dsc
xawtv_3.95.dfsg.1-4_ia64.deb
  to pool/main/x/xawtv/xawtv_3.95.dfsg.1-4_ia64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 383194@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Krzysztof Burghardt <krzysztof@burghardt.pl> (supplier of updated xawtv package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Sun, 29 Jul 2007 15:00:06 +0200
Source: xawtv
Binary: xawtv-plugins fbtv radio ttv webcam pia xawtv xawtv-tools scantv streamer alevtd v4l-conf
Architecture: source ia64
Version: 3.95.dfsg.1-4
Distribution: unstable
Urgency: low
Maintainer: Krzysztof Burghardt <krzysztof@burghardt.pl>
Changed-By: Krzysztof Burghardt <krzysztof@burghardt.pl>
Description: 
 alevtd     - http daemon for videotext pages
 fbtv       - linux console (fbcon) TV application
 pia        - movie player
 radio      - ncurses-based radio application
 scantv     - scan TV channels for stations
 streamer   - capture tool (images / movies)
 ttv        - tty TV application
 v4l-conf   - tool to configure video4linux drivers
 webcam     - capture and upload images
 xawtv      - X11 TV application
 xawtv-plugins - plugins for xawtv and motv
 xawtv-tools - Miscellaneous tools distributed with xawtv
Closes: 199570 202133 369803 374626 379251 383194
Changes: 
 xawtv (3.95.dfsg.1-4) unstable; urgency=low
 .
   * Applied Kristof Koehler's patch for problems with recording
     oss audio using streamer (Closes: #374626)
   * Applied Romain FRANCOISE's patch for unmute sound on xavtv
     exit (Closes: #199570)
   * Applied Steven Barker's patches for radio application.
     This fixes multiple issues listed in bug report (Closes: #202133)
   * Applied Bjoern Erik Nilsen's patch that fixes some memory leaks
     in the v4l plugins (Closes: #369803)
   * Applied Petr Vandrovec's patch that fixes 4 problems with fbtv
     observed with radeonfb. Fixes to support 15bpp depth in v4l-conf,
     reload palette when switching terminals, clear only visible area
     of videoram instead of clearing 256MB and problem with FBIOGETCMAP.
     (Closes: #383194)
   * Changed ${Source-Version} substvar to ${binary:Version}
   * Adjust debconf-templates.
   * New maintainer (Closes: #379251)
Files: 
 858bef506510e9816b7d9e8334ead80e 1101 graphics extra xawtv_3.95.dfsg.1-4.dsc
 dda43cd87d7dd96162db7efe36ff82c5 29315 graphics extra xawtv_3.95.dfsg.1-4.diff.gz
 b89a6dcd854f62ea7c96578b5497211d 341586 x11 extra xawtv_3.95.dfsg.1-4_ia64.deb
 e38286c2f4a9f68479a4a2ece1649b84 52606 x11 extra pia_3.95.dfsg.1-4_ia64.deb
 79fcadc72afc6d2b3442739a0deb0623 100944 graphics extra fbtv_3.95.dfsg.1-4_ia64.deb
 c62409f318e55c6b55a2bde66736738d 76064 graphics extra ttv_3.95.dfsg.1-4_ia64.deb
 cdb8d4e2fb856eced307974bc984d153 83878 graphics extra scantv_3.95.dfsg.1-4_ia64.deb
 d8973dc18c43e1028ea862eb1516f1b9 77516 graphics extra streamer_3.95.dfsg.1-4_ia64.deb
 189f5e160947dcf946df77c49bb2eae6 21954 sound extra radio_3.95.dfsg.1-4_ia64.deb
 5578c5c8a33d1b68bc502705b8f18ae6 31396 graphics extra v4l-conf_3.95.dfsg.1-4_ia64.deb
 b41779abf049aa47103ef0488015405f 39776 graphics extra xawtv-tools_3.95.dfsg.1-4_ia64.deb
 3d06485775776cc141dade8d06c8ff54 124500 graphics extra xawtv-plugins_3.95.dfsg.1-4_ia64.deb
 5db26edd3e295ab9990dd2ef3538ad47 50168 net extra webcam_3.95.dfsg.1-4_ia64.deb
 ab12c9e0c538b067b24fdf2af221df57 42030 net extra alevtd_3.95.dfsg.1-4_ia64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFGrNFumdOZoew2oYURAn4dAKC3uBfKTM7HXfb/bGprxvsVPDYC2QCfWSWO
4HSwxmYp26epyBb+sYBFgX4=
=Akqp
-----END PGP SIGNATURE-----


--- End Message ---

Reply to: