IOXperts Video 1.1.2a10 posted

Steve Sisak steve.sisak at ioxperts.com
Thu Jul 6 13:28:46 EDT 2006


I've just posted a new build (1.1.2a10) which should be pretty solid:

   <http://www.ioxperts.com/downloads/Video/Beta/1.1.2a10/>
   <ftp://ftp.ioxperts.com/IOXperts/Video/Beta/1.1.2a10/>

As far as I know this release should be stable for all users, so 
please test accordingly.

The differences between this and a9 are minor:

   1) Slightly better logging of camera initialization for new Logitech cameras
   2) 3060-byte transfers are now actually supported (I accidentally left the
      restriction in the non-debug builds)
   3) Fixed a problem when connecting camera through a full-speed hub 
on a high-speed machine

If you're running a9, there's no rush to upgrade but, as always, we'd 
appreciate your testing the latest version to insure no new bugs 
sneak in.

Best wishes,

-Steve

---

Known issues:

We've discovered that Apple's 'yuvs' codec doesn't work under Rosetta 
and as temporary measure, disabled YUY2 support under Rosetta so 
you'll always get video although the maximum resolution is limited to 
960x720 in Rosetta.

Fixed this release:

Maximum size (3060 byte) isoc transfers are now supported. (Worked 
around a USB bug where Isoc buffers for different transfers can't be 
on the same VM page by wasting a little memory)

Now that 10.4.7 has shipped, I can discuss the details of the last patch:

There's a bug in the Apple USB stack for all OS versions prior to 
10.4.7 that support high-speed transfers where alternate interfaces 
with an maximum packet size between 1026-2048 bytes, inclusive.

We're working around this by going to the next higher setting on 
systems prior to 10.4.7 -- this causes us to reserve more bandwidth 
than necessary, but you'll get video.

--- from last release ---

I noticed that a few people my have discovered 1.1.2a7 on our server 
and installed it with poor results -- the purpose of that build was 
to exercise a bug in Mac OS X so that Apple could reproduce the 
problem.

Install releases that haven't been announced here at your own risk. ;-)

(In the future, I'll try to keep those on our private server)

---- technical details follow ----

For the new Logitech cameras, we are still trying to isolate and work 
around a bug that may be either in the OS or the driver that is 
resulting in lost video data when operating at the maximum data 
transfer rate (3060 bytes/microframe).

Anyone who installed 1.1.2a7 probably saw this as green flashes in the video.

(a buffer full of zeros in YUV is green, rather than black you'd expect in RGB)

that should work around the 3060-byte packet bug well enough that you 
can continue testing.

I restricted the driver to 3059 bytes which will make it drop to the 
next lower alternate setting (2688), which limits limits 1280x960 
YUY2 to 5fps, but is otherwise innocuous.

I also implemented a new algorithm for selecting format/frame for the 
Logitech cameras that will consider both YUY2 and MJPEG -- the sort 
order is

  1) Aspect ratio
  2) Image size
  3) maximum bitrate
  4) format index
  5) frame index

(the last 2 are just to make the sort order deterministic)

You can see the table printed in the log.

Given a requested image size, if the aspect ration is 11:9, CIF 
aspect ratios are considered, otherwise VGA ratios are considered.

Then the driver searches backward through the list to find the first 
entry of the smallest image size larger than or equal to the request.

It then probes forward, first reducing quality, then increasing 
interval, then going to the next entry in the table until if finds 
settings that can be used with the currently available isoc bandwidth.

You can tell in the log which settings are being used.

This should behave much better for the cameras in the field as YUY2 
will be used for large image sizes and MJPEG will be used for smaller 
sizes.

For new cameras, the driver will use YUY2 and then switch to MJPEG to 
save bandwidth before going to a smaller size.

It should also do the "right" thing on a USB 1.1 bus or connected 
through a 1.1 hub on a 2.0 bus.

Also, I changed the logic so the driver no longer goes the the 
highest possible image size when doing software zoom -- this will 
hurt quality, but improve frame rate -- I think I want to figure out 
a better compromise, but try this for now.

I also found a typo that disabled most of the camera controls -- they 
should work now. (The streaming output terminals provider wasn't 
being set, which broke the chain)

I may have also fixed a few of your other bugs as a side effect (flip, zoom).

Best wishes,

-Steve

-- 
_________________________________________________________________________
Steve Sisak, CTO                                 steve.sisak at ioxperts.com
IOXperts, Inc.                                     voice: +1 617 876-2572
87 Bristol St #3A                                    fax: +1 617 876-2337
Cambridge, MA 02139                               mobile: +1 617 388-6476
_______________________________________________
Video-Beta-Discuss mailing list
Video-Beta-Discuss at mailman.ioxperts.com
http://mailman.ioxperts.com/mailman/listinfo/video-beta-discuss
-- 
_________________________________________________________________________
Steve Sisak, CTO                                 steve.sisak at ioxperts.com
IOXperts, Inc.                                            +1 617 876-2572


More information about the Video-Beta-Discuss mailing list