Date: Tue, 30 Oct 2007 08:59:34 +0100 From: Dieter <freebsd@sopwith.solgatos.com> To: simokawa@FreeBSD.org Cc: freebsd-firewire@FreeBSD.org Subject: Re: kern/113785: [firewire] dropouts when playing DV on firewire Message-ID: <200710301559.PAA11721@sopwith.solgatos.com> In-Reply-To: Your message of "Tue, 30 Oct 2007 01:19:54 GMT." <200710300119.l9U1Jsv8040070@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <200710300119.l9U1Jsv8040070@freefall.freebsd.org>, simokawa@FreeBSD.org writes: > Synopsis: [firewire] dropouts when playing DV on firewire > > State-Changed-From-To: open->feedback > State-Changed-By: simokawa > State-Changed-When: Tue Oct 30 01:17:44 UTC 2007 > State-Changed-Why: > I increased tx/rx buffer size in rev. 1.7 and 1.5.12.2 of > src/usr.sbin/fwcontrol/fwdv.c. I hope this fixes your problem. > > http://www.freebsd.org/cgi/query-pr.cgi?pr=113785 -#define NCHUNK 8 +#define NCHUNK 64 I tried this, it didn't help. I also tried cranking it up to 256, which still didn't help. :-( Given that the NEC controller has the problem only when "hot powered-up", I wonder if it is an initialization problem. Is there a way to log what FreeBSD sends to the camcorder, similar to tcpdump(1) ? Comparing what FreeBSD sends if it detects the camcorder at boot time with what it sends when the camcorder is powered up later might allow fixing the having-to-reboot problem. Perhaps the VIA controller always sends the bad initialization? The compiler whined: fwcontrol.c:611: warning: control reaches end of non-void function fwdv.c:93: warning: no previous prototype for 'dvrecv' fwdv.c:248: warning: no previous prototype for 'dvsend' At least the compiler warnings are easily fixed: diff -u -r1.1 fwcontrol.c --- fwcontrol.c 2007/10/30 15:32:15 1.1 +++ fwcontrol.c 2007/10/30 15:33:10 @@ -58,7 +58,7 @@ extern int dvrecv(int, char *, char, int); extern int dvsend(int, char *, char, int); -int sysctl_set_int(const char *, int); +void sysctl_set_int(const char *, int); static void usage(void) @@ -603,7 +603,7 @@ } } -int +void sysctl_set_int(const char *name, int val) { if (sysctlbyname(name, NULL, NULL, &val, sizeof(int)) < 0) diff -u -r1.1 fwdv.c --- fwdv.c 2007/10/30 02:50:42 1.1 +++ fwdv.c 2007/10/30 15:45:42 @@ -88,6 +88,10 @@ #define MAXBLOCKS (300) #define CYCLE_FRAC 0xc00 +/* prototypes */ +int dvrecv(int, char *, char, int); +int dvsend(int, char *, char, int); + int dvrecv(int d, char *filename, char ich, int count) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710301559.PAA11721>
