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>