OK! in my situation, my webcam can redirect to VM, then, I open amcap and check 
the code. I find that there are two ways running into the same for loop, and I'm
not sure it is normal or not?

first route
the client receive message through usbredir channel, then
1. usbredir_handle_msg
2. usbredirparser_do_read
3. case usb_redir_stop_interrupt_receiving:
   parser->callb.stop_interrupt_receiving_func(...)
4. usbredirhost_stop_interrupt_receiving
5. usbredir_write_flush_callback
6. usbredirparser_do_write
7. in loop, for(;;){}

second route
another thread run while loop
   rc = libusb_handle_events(priv->context);
1. spice_usb_device_manager_usb_ev_thread
2. libusb_handle_events
3. libusb_handle_events_timeout_completed
4. handle_events
5. windows_handle_events
6. windows_handle_callback
   case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
       windows_transfer_callback(itransfer, io_result, io_size);
7. windows_transfer_callback
8. usbi_handle_transfer_completion
9. usbredirhost_interrupt_packet_complete
10. usbredir_write_flush_callback
11. usbredirparser_do_write
12. in loop, for(;;){}



_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to