Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 May 1998 13:20:23 -0400
From:      Randall Hopper <rhh@ct.picker.com>
To:        sos@FreeBSD.ORG, Amancio Hasty <hasty@rah.star-gate.com>
Cc:        freebsd-multimedia@FreeBSD.ORG
Subject:   Re: fxtv 0.46 capturing or displaying fields reversed
Message-ID:  <19980515132023.A6661@ct.picker.com>
In-Reply-To: <199805150959.LAA01398@sos.freebsd.dk>; from Sren Schmidt on Fri, May 15, 1998 at 11:59:31AM %2B0200
References:  <199805150726.JAA02189@labinfo.iet.unipi.it> <199805150959.LAA01398@sos.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help

--fdj2RfSjLxBAspz7
Content-Type: text/plain; charset=us-ascii

Sren Schmidt:
 |If I obscure the fullsize window fxtv core dumps immediately and
 |has always done so, I havn't had time to investigate why yet.

Amancio Hasty:
 |Just do a search on your mail box /folder , I have to run if you can't
 |find it easily just e-mail me back and will try to get it for you.
 |
 |When you get a chance can you generate a new tar ball with your patch?

Try this.  May not fix your problem but it is "a" problem at least.

Tomi (Vainio) and I are still trying to get to the bottom of his XImages
bug.  Some odd circumstance results in the stack getting trashed when
while processing a new frame (but only when the window is near max size and
of course only in XImages mode).

If someone else that's seeing this wants to help, please try this (my last
set of things to try for Tomi).  First, uncomment the debug FLAGS in the
Makefile and build a debug version of Fxtv 0.46:

Recent msg to Tomi:
 |You know, I didn't take that "??" in the stack seriously enough.  This
 |should say "... in TVSCREENNewFrameHdlr", not "0x6d000 in ??".  I suspect
 |that somehow the stack is getting stomped in this function.
 |
 |Off-the-bat, I don't see where it'd be happening.
 |
 |If you're a developer, could you add a "signal(SIGUSR1, SIG_IGN);" to the
 |top of TVSCREENNewFrameHdlr(), recompile, set a breakpoint in tvscreen.c
 |right after the signal() call and run like this:
 |
 | tick:~/src/fxtv/work/fxtv-0.46(129)% gdb ./fxtv 
 | (gdb) break tvscreen.c:###
 | (gdb) run -synchronous -disableDirectV -geometry 768x576
 |
 |when the breakpoint triggers, alternate these commands until that ?? appears:
 |
 | (gdb) where
 | (gdb) step
 |
 |Alternatively, if there's sometime when I could log onto your workstation
 |over the weekend and that's ok with you, I could do this same thing
 |myself.  Would allow me to print things out and sanity check program state
 |while I'm at it.

Again, if somebody that's seeing this has time to let me on their box
sometime this weekend, I can look into it myself.

Randall

--fdj2RfSjLxBAspz7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="fxtv-0.46-stdximgFIX.patch"

--- ORIG/Makefile	Wed Nov  5 01:14:25 1997
+++ Makefile	Wed May  6 20:36:19 1998
@@ -7,10 +7,10 @@
 override CF_VERS           = -DVERS_STR=\"0.46\"
 override INC               = -I$(X11BASE)/include -I/usr/local/include
 override LD_INC            = -L$(X11BASE)/lib -L/usr/local/lib
-override CFLAGS            = -O2 -m486 $(INC) $(CF_VERS)
-#override CFLAGS            = -g $(INC) $(CF_VERS)
-override LDFLAGS           = $(LD_INC) 
-#override LDFLAGS           = -g $(LD_INC) 
+#override CFLAGS            = -O2 -m486 $(INC) $(CF_VERS)
+override CFLAGS            = -g $(INC) $(CF_VERS)
+#override LDFLAGS           = $(LD_INC) 
+override LDFLAGS           = -g $(LD_INC) 
 override LIBS              = -ltiff -lXaw3d -lXmu -lXt -lXpm -lXxf86dga \
 	                     -lXxf86vm -lSM -lICE -lXext -lX11 
 
@@ -30,7 +30,7 @@
 
 $(EXEC) : $(CSRCOBJ)
 	$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
-	strip $(EXEC)
+#	strip $(EXEC)
 
 tv.o : tv.c app_rsrc.h
 
--- ORIG/tvscreen.c	Wed Nov  5 01:01:57 1997
+++ tvscreen.c	Wed May  6 20:34:22 1998
@@ -2366,20 +2366,15 @@
             image->is_shm = True;
         }
         else if ( c->xfer_mode == TV_TRANSFER_STD_IMAGE ) {
-            /*  FIXME:  Handle 3Bpp 24bpp  */
-            int   bpp_adj = (v->depth+7)/8*8;
-
-            if ( bpp_adj == 24 )
-                bpp_adj = 32;
-
             image->ximg = XCreateImage( TVDISPLAY, v->visual, v->depth, 
                                         ZPixmap, 0, NULL, g->w, g->h, 
-                                        bpp_adj, 0 );
+                                        BitmapPad(TVDISPLAY), 0 );
             if ( image->ximg == NULL ) {
                 fprintf( stderr, "XCreateImage() failed\n" );
                 exit(1);
             }
-            image->ximg->data = malloc( g->w * g->h * (bpp_adj / 8) );
+            image->ximg->data = malloc( image->ximg->bytes_per_line * 
+                                        image->ximg->height );
             if ( image->ximg->data == NULL )
                 TVUTILOutOfMemory();
             image->is_shm = False;

--fdj2RfSjLxBAspz7--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980515132023.A6661>