- Timestamp:
- Jul 26, 2013 6:55:18 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
include/VBox/vmm/pdmwebcaminfs.h (modified) (3 diffs)
-
src/VBox/Main/src-client/UsbWebcamInterface.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pdmwebcaminfs.h
r44758 r47416 32 32 typedef struct PDMIWEBCAM_DEVICEDESC PDMIWEBCAM_DEVICEDESC; 33 33 typedef struct PDMIWEBCAM_CTRLHDR PDMIWEBCAM_CTRLHDR; 34 typedef struct PDMIWEBCAM_FRAMEHDR PDMIWEBCAM_FRAMEHDR; 34 35 35 36 36 #define PDMIWEBCAMDOWN_IID "0 846959f-8b4a-4b2c-be78-9903b2ae9de5"37 #define PDMIWEBCAMDOWN_IID "0d29b9a1-f4cd-4719-a564-38d5634ba9f8" 37 38 typedef struct PDMIWEBCAMDOWN *PPDMIWEBCAMDOWN; 38 39 typedef struct PDMIWEBCAMDOWN 39 40 { 41 /* 42 * The PDM device is ready to get webcam notifications. 43 * 44 * @param pInterface Pointer to the interface. 45 * @param fReady Whether the device is ready. 46 */ 47 DECLR3CALLBACKMEMBER(void, pfnWebcamDownReady, (PPDMIWEBCAMDOWN pInterface, 48 bool fReady)); 49 40 50 /* 41 51 * Send a control request to the webcam. … … 56 66 57 67 58 #define PDMIWEBCAMUP_IID " 476c5d41-7bd1-4997-825e-722a72577af3"68 #define PDMIWEBCAMUP_IID "6ac03e3c-f56c-4a35-80af-c13ce47a9dd7" 59 69 typedef struct PDMIWEBCAMUP *PPDMIWEBCAMUP; 60 70 typedef struct PDMIWEBCAMUP … … 108 118 * @param pInterface Pointer to the interface. 109 119 * @param u64DeviceId Unique id for the reported webcam assigned by the driver. 110 * @param pu8Frame The frame data including the payload header and the image data. 111 * @param cbFrame The size of the frame data. 120 * @param pHeader Payload header. 121 * @param cbHeader Size of the payload header. 122 * @param pvFrame Frame (image) data. 123 * @param cbFrame Size of the image data. 112 124 */ 113 125 DECLR3CALLBACKMEMBER(void, pfnWebcamUpFrame,(PPDMIWEBCAMUP pInterface, 114 126 uint64_t u64DeviceId, 115 const uint8_t *pu8Frame, 127 PDMIWEBCAM_FRAMEHDR *pHeader, 128 uint32_t cbHeader, 129 const void *pvFrame, 116 130 uint32_t cbFrame)); 117 131 } PDMIWEBCAMUP; -
trunk/src/VBox/Main/src-client/UsbWebcamInterface.cpp
r45029 r47416 51 51 52 52 53 static DECLCALLBACK(void) drvEmWebcamReady(PPDMIWEBCAMDOWN pInterface, 54 bool fReady) 55 { 56 PEMWEBCAMDRV pThis = RT_FROM_MEMBER(pInterface, EMWEBCAMDRV, IWebcamDown); 57 NOREF(pThis); 58 NOREF(fReady); 59 } 60 53 61 static DECLCALLBACK(int) drvEmWebcamControl(PPDMIWEBCAMDOWN pInterface, 54 62 void *pvUser, … … 270 278 if (mpDrv && mpDrv->pIWebcamUp) 271 279 { 272 mpDrv->pIWebcamUp->pfnWebcamUpFrame(mpDrv->pIWebcamUp, 273 mpRemote->u64DeviceId, 274 (const uint8_t *)pFrame, 275 cbFrame); 280 if ( cbFrame >= sizeof(VRDEVIDEOINPAYLOADHDR) 281 && cbFrame >= pFrame->u8HeaderLength) 282 { 283 uint32_t cbImage = cbFrame - pFrame->u8HeaderLength; 284 const uint8_t *pu8Image = cbImage > 0? (const uint8_t *)pFrame + pFrame->u8HeaderLength: NULL; 285 286 mpDrv->pIWebcamUp->pfnWebcamUpFrame(mpDrv->pIWebcamUp, 287 mpRemote->u64DeviceId, 288 (PDMIWEBCAM_FRAMEHDR *)pFrame, 289 pFrame->u8HeaderLength, 290 pu8Image, 291 cbImage); 292 } 276 293 } 277 294 } … … 380 397 pDrvIns->IBase.pfnQueryInterface = drvQueryInterface; 381 398 399 pThis->IWebcamDown.pfnWebcamDownReady = drvEmWebcamReady; 382 400 pThis->IWebcamDown.pfnWebcamDownControl = drvEmWebcamControl; 383 401
Note:
See TracChangeset
for help on using the changeset viewer.

