Author: korli Date: 2011-03-21 20:32:58 +0100 (Mon, 21 Mar 2011) New Revision: 41070 Changeset: https://dev.haiku-os.org/changeset/41070 Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.cpp Log: improves uvc information dump Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h 2011-03-21 15:32:23 UTC (rev 41069) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h 2011-03-21 19:32:58 UTC (rev 41070) @@ -190,7 +190,7 @@ usbvc_image_size_pattern imageSizePatterns[0]; uint8 NumCompressionPatterns() const { return *(CompressionPatterns() - 1); } const uint8* CompressionPatterns() const { - return (const uint8*)(imageSizePatterns + sizeof(usbvc_image_size_pattern) + return ((const uint8*)imageSizePatterns + sizeof(usbvc_image_size_pattern) * numImageSizePatterns + sizeof(uint8)); } } _PACKED; Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.cpp 2011-03-21 15:32:23 UTC (rev 41069) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.cpp 2011-03-21 19:32:58 UTC (rev 41070) @@ -45,10 +45,16 @@ static void print_guid(const usbvc_guid guid) { - printf("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:" - "%02x:%02x:%02x", guid[0], guid[1], guid[2], guid[3], guid[4], guid[5], - guid[6], guid[7], guid[8], guid[9], guid[10], guid[11], guid[12], - guid[13], guid[14], guid[15]); + if (!memcmp(guid, kYUY2Guid, sizeof(usbvc_guid))) + printf("YUY2"); + else if (!memcmp(guid, kNV12Guid, sizeof(usbvc_guid))) + printf("NV12"); + else { + printf("%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:" + "%02x:%02x:%02x:%02x", guid[0], guid[1], guid[2], guid[3], guid[4], + guid[5], guid[6], guid[7], guid[8], guid[9], guid[10], guid[11], + guid[12], guid[13], guid[14], guid[15]); + } } @@ -330,8 +336,9 @@ { const usbvc_interface_header_descriptor* descriptor = (const usbvc_interface_header_descriptor*)_descriptor; - printf("VC_HEADER:\tUVC v%04x, clk %lu Hz\n", descriptor->version, - descriptor->clockFrequency); + printf("VC_HEADER:\tUVC v%x.%02x, clk %.5f MHz\n", + descriptor->version >> 8, descriptor->version & 0xff, + descriptor->clockFrequency / 1000000.0); for (uint8 i = 0; i < descriptor->numInterfacesNumbers; i++) { printf("\tStreaming Interface %d\n", descriptor->interfaceNumbers[i]); @@ -347,6 +354,15 @@ descriptor->associatedTerminal); printf("\tDesc: %s\n", fDevice->DecodeStringDescriptor(descriptor->terminal)); + if (descriptor->terminalType == 0x201) { + const usbvc_camera_terminal_descriptor* desc = + (const usbvc_camera_terminal_descriptor*)descriptor; + printf("\tObjectiveFocalLength Min/Max %d/%d\n", + desc->objectiveFocalLengthMin, + desc->objectiveFocalLengthMax); + printf("\tOcularFocalLength %d\n", desc->ocularFocalLength); + printf("\tControlSize %d\n", desc->controlSize); + } break; } case VC_OUTPUT_TERMINAL: