Date: Thu, 6 Mar 1997 10:16:10 -0500 (EST) From: Charles Henrich <henrich@crh.cl.msu.edu> To: tom@inna.net, freebsd-multimedia@freebsd.org Subject: Re: Video Capture for FreeBSD Message-ID: <199703061516.KAA03252@crh.cl.msu.edu> References: <5flsrp$f0n$1@msunews.cl.msu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
In lists.freebsd.multimedia you write:
>Thanks!
>It looks ugly but I defined :
>char bigbuff[921600]
>then changed the writing routine to look like :
> for (c = 0 ; c < ROWS*COLS*3; c++) {
> bigbuff[c]= ((*rgb16 >> 7) & 0xf8); /* r */
> c++;
> bigbuff[c]= ((*rgb16 >> 2) & 0xf8); /* g */
> c++;
> bigbuff[c]= ((*rgb16++ << 3) & 0xf8); /* b */
> }
> write(o, &bigbuff[0], 921600);
>I would be interested in seeing how this could be done more elegantly.
>Thanks! It now runs in 2.54 seconds! I can take my QuickCam off the
>air and replace it with the WinTV card and a security camera.
Change the code back to what it was.. Find all occurences of operation on that
descriptor and chaqnge them to operations on a file pointer (e.g. fopen instead
of open, fclose instead of close, fwrite instead of write)..
This will give you buffered writes which should provide you a very large
performance win.
-Crh
--
Charles Henrich Michigan State University henrich@msu.edu
http://pilot.msu.edu/~henrich
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703061516.KAA03252>
