Date: Fri, 16 Nov 2007 22:20:03 GMT From: Dieter <freebsd@sopwith.solgatos.com> To: freebsd-firewire@FreeBSD.org Subject: Re: kern/113785: [firewire] dropouts when playing DV on firewire Message-ID: <200711162220.lAGMK3s9039592@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/113785; it has been noted by GNATS. From: Dieter <freebsd@sopwith.solgatos.com> To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/113785: [firewire] dropouts when playing DV on firewire Date: Fri, 16 Nov 2007 13:23:35 +0000 [ previous reply didn't make it into the PR system, trying again ] 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?200711162220.lAGMK3s9039592>