On Sun, 6 Feb 2000, Jan Kneschke wrote:

> On Sat, Feb 05, 2000 at 04:46:58PM -0500, teunis wrote:
> > On -video- capture (ie stream of messages):  No.  Absolutely not.
> > Frame grabbing has -terrible- problems with two things:
> >     1. It goes very fast.  Hard to capture 30fps at 640x480
> >             straight into a raw buffer...
> ggitv gets 25fps in 640x480 by video-card->X->gfx-card (NO overlay).

Scary.  Lucky you - it's slower on my Celeron 366, 3DFX Banshee, XFree86
3.97 (4.0 prerelease, 3D accelerated opengl :)

I typically lose a few frames with ggitv, though Broadcast 2000 generally
works perfectly when it doesn't crash....  (30% operational, 30% driver
crashes and Broadcast 2000 recovers (but ggitv crashes system), and 30%
locks system solid)

> >     2.  Drivers aren't very stable... *sigh*  [for bttv]
> which driver are you using (driver-version, hardware) ?? 

Zoltrix TV-card;
Linux-2.3.39 (2.3.41 doesn't change the code any)

No special drivers.  And I run 2.3.x due to USB and -stable- HD drivers.
I got tired of losing data with 2.2.

Incidentally, if power goes out on my system (or it locks), 2.2 -always-
loses the most recently touched files on my computer.

After losing 2 weeks of work, I went to 2.3 and have never looked back.
Except that AFAIK the bttv driver's more stable in 2.2.14 IIRC.

> > Anyways, you'd have to do a different interface for -video- capture than
> > for image capture anyways.  Mostly due to latency problems.
> > I want that personally....
> > (mind you, I don't use GGI to -play- videos either other than to supply a
> > frame to write to ... it doesn't fit the purpose)

Trust me, there's latency problems.  Unless you have a really fast
computer.... *grin*.  My old Cyrix 200+ was -way- too slow for motion
capture.  My Celeron 366 can barely handle capturing into motion JPEG...
*grin*.  Great format for video.  WMX2 is good for audio :)

1. Never copy the data; just store to a buffer.  If you're going to change
data, keep a running buffer of as many frames as you can afford.

        (is it possible to create a guaranteed no-swap memory area?
        And to tell how much physical memory is available so you can tune?)

2. Threads are your friends here.  Or processes if you have good IPC.
        -> shared memory for buffers, and keep running positions on     
           where things are....
   Enables all kinds of special effects, mixing, et al without prob.

(I'm developing IPC communications now.  Anyone got a good lib? :)

3.  It gets big if you have any kind of resolution.
        320x240; 16bpp; 16-bit stereo uncompressed;  5 min == ~500megs;
                Compressed motion-JPG,WMX2 == ~50megs
                Compressed MPEG 1.0/layer 2 == ~30megs
                Compressed MPEG 2.0; == whatever.  You can control it.
                The higher the compression the lower the quality.
Also CPU load:
                uncompressed: duable (barely) on Cyrix 200+/32mb ram Linux
                windows/98: Celeron 366; 64MB ram to barely handle 15fps
                Compressed/Motion JPG/WMX2: Celeron 366/64MB ram realtime
                MPEG - Celeron 366/64MB - roughly 10* length of movie
                MPEG2 - roughly same.

Arguments are welcome :)

G'day, eh? :)
        - Teunis

Reply via email to