iCam2 SourceForge.net Logo

Last Modified: Tuesday, 06-Jul-2004 15:31:09 UTC

[ News | What | Why | Status | Download | CVS | Shots | Contact | Last Words | Spider | Forums ]


  • v1.1 Released   2004-07-06 08:36
  • MPEG encoding and snapshot streaming   2004-06-02 11:28
  • REALLY back in action..   2004-06-02 08:09
  • Back in Action   2003-09-29 07:23
  • WTF has been happening?   2003-01-24 06:02
  • X11 "works"   2002-09-19 05:10
  • Notes from Nowhere   2002-09-18 05:26
  • Auto-Whitebalance Code   2002-09-17 20:04
    [News archive]

    What It Is

    iCam2 is a webcam application built around Video4Linux and Imlib2. The purpose for creating iCam2 was that, after (finally!) getting my parallel-port QuickCam VC operating, I needed some software to make use of it, but the only programs readily available either didn't support all the features I wanted, or required a camera that supports mmap(), which mine (currently) does not...So, after spending some time tweaking the webcam application that is shipped as a part of the xawtv package, I decided to set out and create my own app. And this is it.

    The primary design goals of this application are: 1) Provide an extensible, flexible, and quality webcam application.
    2) Allow the app to run with an X11-preview interface. This used to be a three-window interface, but that annoyed me to no end, so now it is one window that shows a realtime image from your camera, after all applicable post-processing.
    3) Provide a dynamic interface to plugins and filters. Check out SDLcam if you want to know why I think filters are cool. :)

    Why the name 'iCam2?'

    Because it's based on Imlib2. And this is the second generation of the program. So, think of it as "Imlib2 Cam, 2nd Generation"... :) Ok, whatever...anyway...


    5.Jul.2004 - v1.1 released, with very little fanfare. I've had it running for awhile now on my home machine (about two weeks straight) without any memory leakage or unexplained crashing. I would consider this, most likely, the final 'stable' release for quite awhile; I'll add bug fixes as needed, and if anyone still has issues with the initial './configure' routine, I'd like to fix that, but there won't be any new features in the v1.x line. v2.0, on the other hand, will add dynamic filter support. I expect to see some memory leakage and unexplained crashing during that time.. :)

    23.Jun.2004 -

    iCam2 v1.1 (currently in CVS), running under Gnome. It's been running on my box for days without any signs of memory leakage, window refreshing seems OK, CPU usage isn't too high, and it otherwise looks stable to me. Hopefully the next release will follow shortly.

    19.Jun.2004 - New CVS revision. One X window, threads, FTP, MPEG, all the usual gadgetry. It's got preliminary YUV420P palette support (but I have no camera to actually test this with), and will shortly have YUV420I support (but again, no test camera!). Once this is done, I'll package up a new version and see how it goes. Oh, FYI- MUCH cleanup and fixing to the configure scripts. If you had problems in the past with them, hopefully this will take care of your issues!

    04.Jun.2004 - v1.04 released! In Downloads, of course. Has lots of niftiness, including support for external commands to run pre- and post- snapshot, implementation of Imlib2 dynamic filters, a lot of code cleanup. Of particular note, it now integrates libcurl (optionally) to allow built-in ftp of snapshots to remote servers. Probably better off using the post_func to use scp (security, you know) but hey.. :)

    02.Jun.2004 - #3 - v1.03-motion released, look in Downloads

    02.Jun.2004 - #2 - new rev in CVS, v1.03-motion. ./configure --enable-mpeg if you have libfame installed and want MPEG recording capabilities. Look in proto-icam2rc for the [video] section to see what makes it tick. Also, setting either delay or mpegdelay to 0 has an effect of storing frames as rapidly as possible (your webcam image file for delay, or new frames into the mpeg file for mpegdelay). Something like delay = 0 mpegdelay = 10 is good for a streaming webcam with timelapse video, or delay = 10, mpegdelay = 0 if you're trying to record video, and only want a frame here and there to get snapped to a static image. Oh, yeah, added nph-webcam.cgi, when used in combination with delay = 0 (or delay = 1), makes a great example of how to make iCam2 stream (doesn't work with IE tho)

    02.Jun.2004 - Holy ****. It's been 1.5 years since I did anything with iCam2, but here I am. :) Soon as I finish up a few 'technical' difficulties, I'll have a new rev of iCam2 out. Doesn't fix any of the old bugs (that I know of), but adds time-lapse video recording to MPEG via libfame. Now, just gotta figure out how to use SourceForge again... :)

    19.Sep.2002 - v1.03 released. X11 "works" without crashing/leaking mem! Not perfect yet, but works well enough.. :)

    16.Sep.2002 - v1.03 In Progress: New Features: Auto-whitebalance adjust, and "status" overlay (dump various cam stats on top of cam input image, using a tiny, fixed font). More to come...this will most likely be the final release focusing on anything other than the X extensions; once the X stuff works, it's on to dynamic filters, and then maybe some last-minute features, and a final release!

    16.Sep.2002 - v1.02 Released

    v1.02 is out. v1.02 is vastly improved over v1.01. You should use it.
    So far, things that work: image vertical/horizontal flipping, autobrightness adjusting, timestamping/message printing using TrueType fonts, custom "away" image, alpha-blending said image with current cam data, and dynamically changing configuration variables (most of them, anyway) through a "tweak" file. Mostly working are blur/sharpen routines (I think something is whacked in Imlib2 - these are the stock routines as provided by the library, and under Imlib2 1.0.5, if you enable blur but not sharpen, or sharpen but not blur, after the second iteration, the whole thing segfaults... I haven't even tried to figure out what the problem there is). Kind-of working but not really is the X11 interface. It compiles. It pops up windows. The windows mostly work. They don't update quite correctly, and there's a /huge/ memory leak. The thing will blow up rather dramatically...


    iCam2v1.1More and better threading, X11 interface redone, ...
    iCam2v1.04FTP, dynamic filters, external commands...
    iCam2v1.03-motionNow with added MPEG!
    iCam2v1.03The iCam2 source..with more or less functional X11 support
    iCam2v1.02The iCam2 source..
    Imlib2v1.0.6Required library for image handling
    libfamelatestOptional library, needed for MPEG capabilities

    CVS Access

    You can always get the latest revision out of CVS, of course. Here's all you need to know:
    cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/icam2 login
    Password: <hit return>
    cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/icam2 co iCam2


    I'll get some screencaps of the X11 windows once I get that working as well...all in due time, all in due time.. :)

    What you see above is, from left to right:
    1) The inside of the house of my
    spider. Or, well, the spider isn't there yet, but it will be soon. :)
    2) Same as above, with blur=10 and sharpen=1.
    3) The "away image" -- a random pic taken when I was running the same camer under Windows, using ChillCam (a killer app, BTW :)...the camera is still showing the same thing as in the first picture, but I have "away" turned on.
    4) This is away turned on, blur=10, sharpen=1, and blendaway=60. The "away image" (previous pic :), is being blended on top of my live camera data (the pic before the last pic).

    Hopefully that'll give you a little taste of what iCam2 can do...A lot of the options used above are only available in v1.02, though.. :/ I'll have a release soon! I just realised that there /might/ be a small memory leak in that though, so I'd like to investigate before releasing. Just be a day though, really!

    And forgive the horrible image quality...all I've got is this crappy QuickCam VC. Nice little camera, but it isn't exactly "modern technology" and the Linux driver only works in 6bpp mode, so color is nearly non-existant...I'd like to get my hands on some other hardware to get some other palette modes working (right now only RGB24 works), and to get some decent camera pics.. :) One of the Philips 740 cams would be nice...some day..


    Email mholger@users.sourceforge.net. I'll try and get back to you as soon as I can!

    Last Words

    Go easy on me! This is the first C app I've coded in .. 4+ years. It's also the first time I've written code to use Imlib2, V4L, or X. So, it's probably bad. But it works. :) Also, I've never used autoconf and such before, so that's a pretty basic setup right now, but again -- it works. At least, for me. YMMV...if you've got any ideas/thoughts/patches/etc., feel free to send them over, but if all you've got are nasty comments...go burn. If you don't like it, don't use it. :) (Or, rip off my code, and start your own OSS webcam project!)

    The "Spider"

    Here's a pic of the spider that (will soon) be present in my tank, in case you're interested. The pic is (c) 2001 Swift's Inverts.
    The spider itself is one Brachypelma smithi (F.O.P.-Cambridge), otherwise known as a "Mexican Redknee" - a docile, ground-dwelling, "New World" spider.