March 31, 2003
Completed Recaster Modifications
I finished making my modifications to the RTP recaster so that it has bandwidth restrictions, jitter, and loss. Seems to work well and correctly.
March 24, 2003
Extending RTP Recast
I worked on my RTP recast program a little bit today, to add the three new arguments it needs to take: actual bandwidth, loss percentage, and jitter. Still working on completing this addition and testing it.
March 23, 2003
VQM Oracle Server
I just finished up the Perl server I started working on yesterday. This server will be run on the VQM Oracle to handle simulation requests. It just parses key/value pairs out of an HTTP-like encoded string and creates a request file on disk in the VQM queue directory. The last part to work on is the tool that runs periodically to process all the queued requests.
March 17, 2003
I wrote one of the remaining parts to the VQM Oracle: copybytes. Since the receiver might not receive and dump all transmitted frames, and the VQM Software requires the two frame dumps to be of equal length (i.e. equal number of frames) I need to truncate the original dump to match the reconstructed dump. This program will do that for me.
What's left is to improve my RTP recast program to accept the link characteristics, put together a tool that actually runs through a simulation, and also a server that listens for requests and appends those requests to a queue used by the simulation tool.
March 12, 2003
NCSU + UNC Integration
I met with Vinay over at NS State. We talked about interfacing the VSAT and VQM Oracle. Basically, we matched up our data parameters and decided to use a simple text stream server that accepts key/value pairs in HTTP encoded format.
The only problem we had is that Vinay has data on inter-frame and intra-frame jitter. It seems that inter-frame jitter is larger than intra-frame, which is why he is measuring these seperately. But I only want one jitter value, especially since I cannot necessarily identify frame boundaries in an RTP dump. So we've sent an email out asking if anyone has a good idea on what formula to use so that both jitter measurements are accounted for but only one jitter value is used.
March 7, 2003
Not My iBook
I wiped my iBook and reinstalled everything. With Apple's X11 and version 1.0.5r2 of IOXperts' FireWire WebCam driver everything works fine. But the same code with version 1.0.6 only returns the first frame.
Taylor Toussaint from OrangeMicro explained that in Mac OS 10.2.x, their FireWire IIDC driver just uses Apple's supplied video digitizer. But I got the error deviceCantMeetRequest = -9408 when I tried VDGetDigitizerInfo, a required video digitizer function. So I've decided to just not worry about the OrangeWare driver for now.
I did discover that calling VDResetCompressSequence does not start compressing another frame. You still have to call VDCompressOneFrameAsync afterwards. But I removed the check for more than one queued frame since I am using VDSetCompression to turn off any temporal compression and I shouldn't have to request key frames. Maybe that is the problem. Perhaps I should not call VDSetCompression at all (the IOXperts driver defaults to kComponentVideoCodecType = yuv2) and use VDResetCompressSequence to insert key frames.
March 4, 2003
My iBook To Blame?
Well, I just confirmed that I cannot get video capture to work using the older video-macosx.cc code and version 1.0.5r2 of the IOXperts FireWire WebCam driver on my iBook. But Claudio Allocchio and Gregory Denis both report that the old binaries and 1.0.5r2 work on their fully updated machines. So at this point, it looks like the problem might be just my machine. To test this, I've sent my new code to Claudio and Gregory to see if they can capture video on their machines.
Also, I got a response to my email from Taylor Toussaint at OrangeMicro. Maybe he has some information on why I am having problems opening the OrangeWare FireWire IIDC driver using OpenComponent, but not OpenDefaultComponent. Of course, all of these problems might just be my machine. If that's the case, I will wipe the iBook and reinstall everything.
March 3, 2003
QuickTime 6 or My Code?
Just as a verification thing, I just tried my Mac OS X video digitizer capturing code for Open Mash with the older 1.0.5r2 version of IOXperts' FireWire WebCam driver and it turns out that doesn't work either. That means the problem is more likely to be a QuickTime 6 or Mac OS 10.2.4 issue, and not driver-related. Especially since the problem also happens under the OrangeWare FireWire IIDC driver. So, either something is wrong with my code, or something changed in QuickTime 6 or Mac OS 10.2.4 that is preventing me from using the Video Digitizer API successfully.
NCNI Meeting & MPEG-2 Java Package
Ketan and I attended today's NCNI meeting via phone. The gist of the meeting was that both NC State and our part are ready to be integrated together. So I have to arrange a meeting for next week with Vinay Chandrasekhar over there to figure out how our two components will talk to each other.
Other things I need to take care of include writing up the current specifications for vidcap-3 for Tyler Johnson and putting together some documentation on the individual components of the VQM Oracle so future developers can work on it.
I also talked to Ketan about my Adaptable Video project. Since my descriptor class is complete, I need his MPEG-2 parsing classes to build descriptors. He should have something packaged up for me by the end of the week.
March 2, 2003
Open Mash Mac OS X Progress
The OrangeWare driver still fails to open when I call OpenComponent. And the IOXperts driver still fails to capture more than one frame using VDCompressOneFrameAsync and VDCompressDone. I've sent email to both companies and hopefully they can provide me with some answers.