Lots of updates on Zaza's code development since last month:
I think I finally resolved the bug in the zazacam applet that caused it to slowly consume virtual memory. Apparently Java likes to cache images in memory indefinitely if the getImage() function is used. Garbage collection and flush()ing manually don't seem to help.
I fixed a bug accidentally introduced into zazamap applet during the re-write for 0.60 that prevented the graphics canvas from repainting automatically after a position update. The applet still consumes far too much of the CPU in auto-track and higher zoom modes, so I still have some work to do.
As mentioned in the last entry, the zazaface applet now works with the faceServer and performs fairly well. I expected both the scripts and waveforms to be cached on the client-side, but it appears that only the waveform is. Performance is still acceptible. I also updated the viseme image handling routine to auto-scale to the graphics canvas. I still need to tweak the sections of the code related to running in application mode, and correct the polling delay so that is is consistant between platforms.
Before yesterday's Phase IV test run I found and fixed one longstanding bug in poslibtcx's goal arrival code that caused unpredictable behavior. For some reason GCC isn't issuing warnings about variables that are declared twice ;)
I started researching possibilities for the new video distribution system that switching zaza2 to Linux enables. MPEG4IP has some great tools for live streaming, but until the licencing fee issue is resolved, and MPEG4 clients are standardized it isn't an option. FFMpeg worked quite well in tests with an earlier version, FFServer in the current version is broken, so we won't be able to use it either. I guess we are still stuck with MJPEG until a better option becomes available.