- error in playing the video and audio streams sourcing from two USB connections on the same USB hub
- Posted by jenny on July 4th, 2006
Hi,
I build DirectX filter that takes 2 input (audio + video) and outputs
one video stream and one audio stream. I use Logitech USB headset as
the audio source and logitech webcam as the video source. I have two
USB hubs in my computer, the back one takes 4 inputs, the front one
takes 2 inputs. If I connect both the devices to the same usb hub on
the computer case, then my filter can't play. If I connect one device
to the usb hub at the front of the computer case, and the other one to
the usb hub at the back, then it works.
Checking the Device Manager, the system doesn't report any hardware
conflicts. The name of the mic devices are not the same. Under
"Sound,video and game controllers", there are "Logitedch Microphone
(Pro 4000)" and "USB Audio Device" (Logitech headset). Under "Universal
Serial Bus controllers", there are
Intel(R) 82801FB/FBM USB Universal Host Controller - 2658 (IRQ 21)
Intel(R) 82801FB/FBM USB Universal Host Controller - 2659 (IRQ 22)
Intel(R) 82801FB/FBM USB Universal Host Controller - 265A (IRQ 18)
Intel(R) 82801FB/FBM USB Universal Host Controller - 265B (IRQ 23)
Intel(R) 82801FB/FBM USB2 Enhanced Host Controller - 265C (IRQ 21)
Logitech USB Camera (Pro 4000)
I don't know if the problem is due to the hardware conflicting in the
system. Please advice if there is other thing that I need to check and
what might the problem be located. Any comment is appreciated.
Jenny
- Posted by Tim Roberts on July 6th, 2006
"jenny" <chun.jia@gmail.com> wrote:
Are these USB 1.1 devices? Remember that both of these are isochronous
devices, which means they reserve a certain percentage of the bandwidth as
soon as they are configured. USB will not allow you to oversubscribe the
bandwidth. It's entirely possible that the default configuration for the
webcam plus the default configuration for the headset simply exceeds USB
1.1 bandwidth.
You can check that using Device Manager. Bring up the pages for your USB
controller, and look at the Advanced tab.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
- Posted by jenny on July 8th, 2006
Hi, Tim,
Thanks for the reply. The USB devices are 2.0, below is the bandwidth
reserved for the devices:
Here is the bandwidth configured for these devices:
Intel(R) 82801FB/FBM USB Universal Host Controller - 10%
Intel(R) 82801FB/FBM USB Universal Host Controller - 21%
Intel(R) 82801FB/FBM USB Universal Host Controller - 10%
Intel(R) 82801FB/FBM USB Universal Host Controller - 10%
Intel(R) 82801FB/FBM USB2 Enhanced Host Controller - 10%
I agree that the problem might be due to not enough bandwidth to run
the webcam and headsets simultaneously on the same device. But I can
still run two one-input filter (one takes audio, the other takes video)
using two different applications without any problem. The problem only
occurs when the audio and video devices are connected to the same
filter, which will trigger the bandwidth reservation? I am a little
bit confused on this part.
Is there a way to deal with this problem? Or using separate USB
devices is the only solution?
Thanks,
Jenny
Tim Roberts wrote:
- Posted by Tim Roberts on July 8th, 2006
"jenny" <chun.jia@gmail.com> wrote:
Well, if they are USB 2.0, there is no way you're running out of bandwidth.
You should be able to run a dozen webcams without trouble.
No, there must be something else going on. What is the symptom? Is there
just no data coming in, or does the capture filter refuse to connect?
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
- Posted by jenny on July 9th, 2006
Tim Roberts wrote:
Host Controller", so I think the USB device is 2.0. I checked the
configuration for the logitech camera and headset, I cannot see they
require USB 2.0 connection, so I guess the camera and headset can
connect to USB1.0.
filter to connect to my two-input filter, and there is no problem for
my filter connects its output to the audio and video render. The
problem is that when I click "play", there is an error message pop out:
"graph can't play,return code: 0x80004005". If the filter connects its
output to only video renderer, then playing has no problem. If the
filter connects its output to only audio renderer, then same error
occurs. My guess is that somethng happens with the audio, but I am not
sure what the problem is.
Thanks,
Jenny
- Posted by Tim Roberts on July 11th, 2006
"jenny" <chun.jia@gmail.com> wrote:
If you can see the configuration descriptor, the USB protocol version is
one of the fields in the descriptor. It doesn't matter that you have a USB
2.0 hub; if the devices themselves are USB 1, then you probably do have a
bandwidth limitation.
In that case, there is nothing you can do. You will have to plug them in
to different hubs.
Note that USB 2.0 controllers simulate multiple USB 1 hubs on their ports,
so it is possible for two plugs on the same computer to be on different
"virtual" USB 1.x hubs.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.