Another factor likely at play here is that the FireWire bus actually
divides its available bandwidth amongst isochronous ("real-time" or
guaranteed bandwidth) and asynchronous (not "real-time") devices.
IIRC, DV devices are isochronous and only a certain percentage of the
overall FireWire available bandwidth is allocated to isochronous
devices. (See the FireWire spec for details)
Brian
On Feb 21, 2006, at 4:09 AM, Ellis Pritchard wrote:
Hi,
It's probably less to do with simple bandwidth, but rather the
speed that the devices are capable of running at.
Most DV A/V devices do not run at maximum bus speed, i.e. S400 or
S800. Many force the bus to run at a much slower speed when
communicating with them, e.g. S100 (100Mbps) or possibly even lower
(required bandwidth for 'normal' DV is about 25 Mbps AFAIR?). The
DV cameras and DVdecks I've seen (at consumer level anyway) run at
S100, although I've got some newer DV-Analog converters which run
at S200.
Because the bus has to 'gear down' to talk to these devices, other
devices, even faster ones, have less actual time on the bus per
second, and this can mean that the effective bandwidth of the bus
is much reduced.
In my experiments (i.e. actually trying to get the damn things to
work!) I've been only been able to get 2 S100 DV devices to work
reliably on the same FW400 bus, connecting a 3rd DV device, even an
S200 one, results in none of the devices being able to keep the
video in sync. The theoretical bandwidth of the bus has not been
exceeded, or even approached, but the slower devices drag the
actual available bandwidth down.
Possibly what is happening with your iSight, which requires alot
more bandwidth than the DV camera, but which also runs at a much
higher bus speed. is that the iSight (or driver) is detecting the
actual available bandwidth due to the lower speed device, and
intelligently gearing down itself so that it can send a reliable
stream. Connecting it to a second bus (e.g. a cheap third-party
Firewire card) should enable both to communicate at full quality.
I've certainly had three DV devices, two S100 and one S200 on two
separate buses, with no problems, using Isynchronous transfer to
stream data to all three at once. You may even have more luck with
two iSights on the same FW800 bus, because although both are
bandwidth hungry, they are also high-speed devices, and so will
share the bus much more efficiently.
To see what speed your devices are running at, look the Firewire
bus in Apple System Profiler, it should list one of the S speeds
next to each of your devices.
Hope that helps!
Ellis.
Kevin Quennesson wrote:
Hi,
I based a project upon the WackedTV sample code.
However when I am trying to use multiple cameras - and camcorder
connected to the front port of my g5 and an iSight connected to
the back FW800 *or* back FW400, the resolution seems to be
downsampled by 2 automatically, or more exactly the calls
CVImageBufferGetCleanRect(pixelBuffer) and
CVImageBufferGetDisplaySize(pixelBuffer) in the displayData
callack of SGVideo.mm returns a size subsampled by two.
I understand why this would be on the same FW400 port, but in my
mind the FW800 and front FW400 were independant? Why does this
happen? Do I need to change some code to avoid that?
Thanks for any help!
The subsampling happens as soon as I *plug* a second camera, I do
not even need to start capturing.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quicktime-api/ellis%
40nukinetics.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quicktime-api/bpietsch%
40apple.com
This email sent to email@hidden
Brian Pietsch
QuickTime Engineering
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/email@hidden