saki4510t / UVCCamera

library and sample to access to UVC web camera on non-rooted Android device
2.99k stars 1.2k forks source link

不停的关闭和开启摄像头,运行一段时间后程序就会崩溃 #528

Closed hugoleong closed 4 years ago

hugoleong commented 4 years ago

间隔3秒钟,不停的开启和关闭摄像头,大概运行40分钟左右就会出现崩溃,大概是内存不足引起的,但这是uvccamera自身的错误,请问有没有遇到过这种情况的朋友 调用代码:

打开摄像头的接口 public boolean startCam() { mUSBMonitor =new USBMonitor(mContext,mOnDeviceConnectListener); mUSBMonitor.register(); filter = DeviceFilter.getDeviceFilters(mContext, device_filter_id); if (filter.size() > 0){ item = mUSBMonitor.getDeviceList(filter.get(0)); if (item.size() > 0){ for(int i=0; i< item.size(); i++) { for (int c=0; c<8; c++) { if (item.get(i).getVendorId() == arrayCamPro[c].vid && item.get(i).getProductId() == arrayCamPro[c].pid) { mUSBMonitor.requestPermission(item.get(i)); if (!mUSBMonitor.hasPermission(item.get(i))){ OpenUSBCamThread.start(); break; } } } } }else { //callback.openFail(); return false; } }else { //callback.openFail(); return false; } return true; }

关闭摄像头的代码: public void closeCam() { if (mUVCCamera != null) { mUVCCamera.stopPreview(); mUVCCamera.destroy(); mUVCCamera = null; } if (mUSBMonitor != null) { mUSBMonitor.unregister(); mUSBMonitor.destroy(); mUSBMonitor = null; } }

崩溃日志如下:

I/libUVCCamera: [27796UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: I/libUVCCamera: [20800UVCPreview.cpp:492:prepare_preview]:frameSize=(1200,800)@Mjpeg I/libUVCCamera: [20802UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: W/libUVCCamera: [20801UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20800UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20801UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20800UVCPreview.cpp:119:get_frame]:allocate new frame E/[Gralloc-ERROR]: int gralloc_backend_register(private_handle_t):82 mmap( share_fd:485 ) failed with Out of memory W/GraphicBufferMapper: registerBuffer(0xb77faee8) failed -12 (Out of memory) E/GraphicBuffer: unflatten: registerBuffer failed: Out of memory (-12) E/[Gralloc-ERROR]: int gralloc_lock(const gralloc_module_t*, buffer_handle_t, int, int, int, int, int, void**):193 Locking in W/GraphicBufferMapper: lockAsync(...) failed -22 (Invalid argument) W/Surface: failed locking buffer (handle = 0x0) W/libUVCCamera: [20801UVCPreview.cpp:119:get_frame]:allocate new frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting E/BufferQueueProducer: [unnamed-27753-0] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count E/Surface: dequeueBuffer failed (Function not implemented) W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/BufferQueueProducer: [unnamed-27753-0] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count E/Surface: dequeueBuffer failed (Function not implemented) E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20802UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame I/jmethodID: jmethodID--stopVideo 1

E/libUVCCamera: [20800UVCPreview.cpp:647:draw_preview_one]:failed converting E/BufferQueueProducer: [unnamed-27753-0] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count E/Surface: dequeueBuffer failed (Function not implemented) D/UsbDeviceConnectionJNI: close V/UVCCamera: close:finished V/UVCCamera: close:finished I/jmethodID: jmethodID--stopVideo 2 put device configuration file found for device 'cam '. e to disable kernel key repeat for /dev/input/event6: Function not implemented evice: id=2395, fd=231, path='/dev/input/event6', name='cam', classes=0x401, configuration='', keyLayout='/system/us vice added: id=2395, name='cam', sources=0x00002103 I/jmethodID: jmethodID--startVideo 1 D/ContentValues: OpenCV library found inside package. Using it! D/UsbDeviceConnectionJNI: close D/UsbDeviceConnectionJNI: close D/UsbDeviceConnectionJNI: close I/USBMonitor: name=/dev/bus/usb/001/004,desc=477,busnum=1,devnum=4,rawDesc=[B@362438f1 D/UsbDeviceConnectionJNI: close I/libusb/core: [27796core.c:2085:libusb_init2]:libusb v1.0.19.10903 I/libusb/usbfs: [27796android_usbfs.c:504:op_init2]:start up hotplug event handler I/libusb/usbfs: [27796android_usbfs.c:512:op_init2]:call android_scan_devices ing device cam due to epoll hang-up event. ed device: path=/dev/input/event6 name=cam id=2395 fd=231 classes=0x401 I/jmethodID: jmethodID--startVideo 2 vice removed: id=2395, name='cam', sources=0x00002103 ing device '/dev/input/event6' due to inotify event E/libusb/usbfs: [20852android_usbfs.c:2876:handle_control_completion]:LIBUSB_TRANSFER_STALL I/UVCCamera: controlSupports=a I/UVCCamera: D0: Scanning Mode=disabled I/UVCCamera: D1: Auto-Exposure Mode=enabled I/UVCCamera: D2: Auto-Exposure Priority=disabled I/UVCCamera: D3: Exposure Time (Absolute)=enabled I/UVCCamera: D4: Exposure Time (Relative)=disabled I/UVCCamera: D5: Focus (Absolute)=disabled I/UVCCamera: D6: Focus (Relative)=disabled I/UVCCamera: D7: Iris (Absolute)=disabled I/UVCCamera: D8: Iris (Relative)=disabled I/UVCCamera: D9: Zoom (Absolute)=disabled I/UVCCamera: D10: Zoom (Relative)=disabled I/UVCCamera: D11: PanTilt (Absolute)=disabled I/UVCCamera: D12: PanTilt (Relative)=disabled I/UVCCamera: D13: Roll (Absolute)=disabled I/UVCCamera: D14: Roll (Relative)=disabled I/UVCCamera: D15: Reserved=disabled I/UVCCamera: D16: Reserved=disabled I/UVCCamera: D17: Focus, Auto=disabled I/UVCCamera: D18: Privacy=disabled I/UVCCamera: D19: Focus, Simple=disabled I/UVCCamera: D20: Window=disabled I/UVCCamera: D21: Region of Interest=disabled I/UVCCamera: D22: Reserved, set to zero=disabled I/UVCCamera: D23: Reserved, set to zero=disabled I/UVCCamera: procSupports=177f I/UVCCamera: D0: Brightness=enabled I/UVCCamera: D1: Contrast=enabled I/UVCCamera: D2: Hue=enabled I/UVCCamera: D3: Saturation=enabled I/UVCCamera: D4: Sharpness=enabled I/UVCCamera: D5: Gamma=enabled I/UVCCamera: D6: White Balance Temperature=enabled I/UVCCamera: D7: White Balance Component=disabled I/UVCCamera: D8: Backlight Compensation=enabled I/UVCCamera: D9: Gain=enabled I/UVCCamera: D10: Power Line Frequency=enabled I/UVCCamera: D11: Hue, Auto=disabled I/UVCCamera: D12: White Balance Temperature, Auto=enabled I/UVCCamera: D13: White Balance Component, Auto=disabled I/UVCCamera: D14: Digital Multiplier=disabled I/UVCCamera: D15: Digital Multiplier Limit=disabled I/UVCCamera: D16: Analog Video Standard=disabled I/UVCCamera: D17: Analog Video Lock Status=disabled I/UVCCamera: D18: Contrast, Auto=disabled I/UVCCamera: D19: Reserved. Set to zero=disabled I/UVCCamera: D20: Reserved. Set to zero=disabled I/UVCCamera: D21: Reserved. Set to zero=disabled I/UVCCamera: D22: Reserved. Set to zero=disabled I/UVCCamera: D23: Reserved. Set to zero=disabled V/UVCCamera: Brightness:min=-64,max=64,def=0 V/UVCCamera: Contrast:min=0,max=95,def=0 V/UVCCamera: Sharpness:min=1,max=100,def=0 V/UVCCamera: Gain:min=0,max=0,def=0 V/UVCCamera: Gamma:min=100,max=300,def=100 V/UVCCamera: Saturation:min=0,max=100,def=42 V/UVCCamera: Hue:min=-2000,max=2000,def=0 V/UVCCamera: Zoom:min=0,max=0,def=0 V/UVCCamera: WhiteBlance:min=2800,max=6500,def=4600 V/UVCCamera: Focus:min=0,max=0,def=0 I/libUVCCamera: [27796UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: I/libUVCCamera: [20853UVCPreview.cpp:492:prepare_preview]:frameSize=(1200,800)@Mjpeg I/libUVCCamera: [20855UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: W/libUVCCamera: [20854UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20853UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20854UVCPreview.cpp:119:get_frame]:allocate new frame W/libUVCCamera: [20855UVCPreview.cpp:119:get_frame]:allocate new frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame E/libUVCCamera: [20853UVCPreview.cpp:647:draw_preview_one]:failed converting W/libUVCCamera: [20855UVCPreview.cpp:858:do_capture_callback]:failed to convert for callback frame I/jmethodID: jmethodID--stopVideo 1 D/UsbDeviceConnectionJNI: close V/UVCCamera: close:finished put device configuration file found for device 'cam'. V/UVCCamera: close:finished I/jmethodID: jmethodID--stopVideo 2 e to disable kernel key repeat for /dev/input/event6: Function not implemented evice: id=2396, fd=231, path='/dev/input/event6', name='cam', classes=0x401, configuration='', keyLayout='/system/us vice added: id=2396, name='cam', sources=0x00002103 I/jmethodID: jmethodID--startVideo 1 D/ContentValues: OpenCV library found inside package. Using it! D/UsbDeviceConnectionJNI: close D/UsbDeviceConnectionJNI: close D/UsbDeviceConnectionJNI: close I/USBMonitor: name=/dev/bus/usb/001/004,desc=478,busnum=1,devnum=4,rawDesc=[B@ab2732d D/UsbDeviceConnectionJNI: close I/libusb/core: [27796core.c:2085:libusb_init2]:libusb v1.0.19.10903 I/libusb/usbfs: [27796android_usbfs.c:504:op_init2]:start up hotplug event handler I/libusb/usbfs: [27796android_usbfs.c:512:op_init2]:call android_scan_devices ing device cam due to epoll hang-up event. ed device: path=/dev/input/event6 name=cam id=2396 fd=231 classes=0x401 I/jmethodID: jmethodID--startVideo 2 vice removed: id=2396, name='cam', sources=0x00002103 ing device '/dev/input/event6' due to inotify event E/libusb/usbfs: [20902android_usbfs.c:2876:handle_control_completion]:LIBUSB_TRANSFER_STALL I/UVCCamera: controlSupports=a I/UVCCamera: D0: Scanning Mode=disabled I/UVCCamera: D1: Auto-Exposure Mode=enabled I/UVCCamera: D2: Auto-Exposure Priority=disabled I/UVCCamera: D3: Exposure Time (Absolute)=enabled I/UVCCamera: D4: Exposure Time (Relative)=disabled I/UVCCamera: D5: Focus (Absolute)=disabled I/UVCCamera: D6: Focus (Relative)=disabled I/UVCCamera: D7: Iris (Absolute)=disabled I/UVCCamera: D8: Iris (Relative)=disabled I/UVCCamera: D9: Zoom (Absolute)=disabled I/UVCCamera: D10: Zoom (Relative)=disabled I/UVCCamera: D11: PanTilt (Absolute)=disabled I/UVCCamera: D12: PanTilt (Relative)=disabled I/UVCCamera: D13: Roll (Absolute)=disabled I/UVCCamera: D14: Roll (Relative)=disabled I/UVCCamera: D15: Reserved=disabled I/UVCCamera: D16: Reserved=disabled I/UVCCamera: D17: Focus, Auto=disabled I/UVCCamera: D18: Privacy=disabled I/UVCCamera: D19: Focus, Simple=disabled I/UVCCamera: D20: Window=disabled I/UVCCamera: D21: Region of Interest=disabled I/UVCCamera: D22: Reserved, set to zero=disabled I/UVCCamera: D23: Reserved, set to zero=disabled I/UVCCamera: procSupports=177f I/UVCCamera: D0: Brightness=enabled I/UVCCamera: D1: Contrast=enabled I/UVCCamera: D2: Hue=enabled I/UVCCamera: D3: Saturation=enabled I/UVCCamera: D4: Sharpness=enabled I/UVCCamera: D5: Gamma=enabled I/UVCCamera: D6: White Balance Temperature=enabled I/UVCCamera: D7: White Balance Component=disabled I/UVCCamera: D8: Backlight Compensation=enabled I/UVCCamera: D9: Gain=enabled I/UVCCamera: D10: Power Line Frequency=enabled I/UVCCamera: D11: Hue, Auto=disabled I/UVCCamera: D12: White Balance Temperature, Auto=enabled I/UVCCamera: D13: White Balance Component, Auto=disabled I/UVCCamera: D14: Digital Multiplier=disabled I/UVCCamera: D15: Digital Multiplier Limit=disabled I/UVCCamera: D16: Analog Video Standard=disabled I/UVCCamera: D17: Analog Video Lock Status=disabled I/UVCCamera: D18: Contrast, Auto=disabled I/UVCCamera: D19: Reserved. Set to zero=disabled I/UVCCamera: D20: Reserved. Set to zero=disabled I/UVCCamera: D21: Reserved. Set to zero=disabled I/UVCCamera: D22: Reserved. Set to zero=disabled I/UVCCamera: D23: Reserved. Set to zero=disabled V/UVCCamera: Brightness:min=-64,max=64,def=0 V/UVCCamera: Contrast:min=0,max=95,def=0 V/UVCCamera: Sharpness:min=1,max=100,def=0 V/UVCCamera: Gain:min=0,max=0,def=0 V/UVCCamera: Gamma:min=100,max=300,def=100 V/UVCCamera: Saturation:min=0,max=100,def=42 V/UVCCamera: Hue:min=-2000,max=2000,def=0 V/UVCCamera: Zoom:min=0,max=0,def=0 V/UVCCamera: WhiteBlance:min=2800,max=6500,def=4600 V/UVCCamera: Focus:min=0,max=0,def=0 I/libUVCCamera: [27796UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: I/libUVCCamera: [20904UVCPreview.cpp:492:prepare_preview]:frameSize=(1200,800)@Mjpeg I/libUVCCamera: [20906UVCPreview.cpp:271:callbackPixelFormatChanged]:PIXEL_FORMAT_RGBX: A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 20902 (pool-1-thread-1) I/DEBUG: I/DEBUG: Build fingerprint: 'Android/rk3288/rk3288:5.1.1/LMY49F/hwit:userdebug/test-keys' I/DEBUG: Revision: '0' I/DEBUG: ABI: 'arm' I/DEBUG: pid: 27753, tid: 20902, name: pool-1-thread-1 >>> com.example.test<<< I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 I/DEBUG: r0 00000000 r1 a0af2854 r2 00000210 r3 00000000 I/DEBUG: r4 0000029c r5 00000001 r6 a0af2809 r7 00000290 I/DEBUG: r8 b7b68990 r9 b77aff60 sl a0af2808 fp 9fda2ab8 I/DEBUG: ip b6ded648 sp 9fda2a70 lr a0d67fcc pc b6da89f0 cpsr 200f0010 I/DEBUG: backtrace: I/DEBUG: #00 pc 000129f0 /system/lib/libc.so (memcpy_base+104) I/DEBUG: #1 pc 00014fc8 /data/app/com.example.test-1/lib/arm/libuvc.so I/DEBUG: #2 pc 0000c314 /data/app/com.example.test-1/lib/arm/libusb100.so (usbi_handle_transfer_completion+320) I/DEBUG: #3 pc 000126a8 /data/app/com.example.test-1/lib/arm/libusb100.so I/DEBUG: #4 pc 0000d200 /data/app/com.example.test-1/lib/arm/libusb100.so I/DEBUG: #5 pc 0000cb60 /data/app/com.example.test-1/lib/arm/libusb100.so (libusb_handle_events_timeout_completed+968) I/DEBUG: #6 pc 0000d3cc /data/app/com.example.test-1/lib/arm/libusb100.so (libusb_handle_events+52) I/DEBUG: #7 pc 00012c20 /data/app/com.example.test-1/lib/arm/libuvc.so (_uvc_handle_events+136) I/DEBUG: #8 pc 0001659b /system/lib/libc.so (__pthread_start(void)+30) I/DEBUG: #9 pc 000144c3 /system/lib/libc.so (start_thread+6)

hugoleong commented 4 years ago

增加了点崩溃日志 11-14 10:35:52.934 2810-10730/com.example.paycamlivedetect A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 10730 (pool-1-thread-1) 11-14 10:35:52.985 184-184/? I/DEBUG: 11-14 10:35:52.985 184-184/? I/DEBUG: Build fingerprint: 'Android/rk3288/rk3288:5.1.1/LMY49F/hwit:userdebug/test-keys' 11-14 10:35:52.985 184-184/? I/DEBUG: Revision: '0' 11-14 10:35:52.985 184-184/? I/DEBUG: ABI: 'arm' 11-14 10:35:52.986 184-184/? I/DEBUG: pid: 2810, tid: 10730, name: pool-1-thread-1 >>> com.example.paycamlivedetect <<< 11-14 10:35:52.986 184-184/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 11-14 10:35:53.000 184-184/? I/DEBUG: r0 00000000 r1 b91265e4 r2 00000210 r3 00000000 11-14 10:35:53.000 184-184/? I/DEBUG: r4 0000029c r5 00000001 r6 b9126598 r7 00000290 11-14 10:35:53.000 184-184/? I/DEBUG: r8 b8d22c30 r9 b8d222c8 sl b9126599 fp 9f51ead8 11-14 10:35:53.000 184-184/? I/DEBUG: ip b6e33648 sp 9f51ea88 lr a0eac560 pc b6dee9f0 cpsr 200f0010 11-14 10:35:53.001 184-184/? I/DEBUG: backtrace: 11-14 10:35:53.001 184-184/? I/DEBUG: #00 pc 000129f0 /system/lib/libc.so (memcpy_base+104) 11-14 10:35:53.001 184-184/? I/DEBUG: #01 pc 0001455c /data/app/com.example.paycamlivedetect-1/lib/arm/libuvc.so 11-14 10:35:53.001 184-184/? I/DEBUG: #02 pc 0000b03c /data/app/com.example.paycamlivedetect-1/lib/arm/libusb100.so (usbi_handle_transfer_completion+324) 11-14 10:35:53.001 184-184/? I/DEBUG: #03 pc 00010a20 /data/app/com.example.paycamlivedetect-1/lib/arm/libusb100.so 11-14 10:35:53.001 184-184/? I/DEBUG: #04 pc 0000bcac /data/app/com.example.paycamlivedetect-1/lib/arm/libusb100.so 11-14 10:35:53.001 184-184/? I/DEBUG: #05 pc 0000b70c /data/app/com.example.paycamlivedetect-1/lib/arm/libusb100.so (libusb_handle_events_timeout_completed+540) 11-14 10:35:53.001 184-184/? I/DEBUG: #06 pc 0000be78 /data/app/com.example.paycamlivedetect-1/lib/arm/libusb100.so (libusb_handle_events+52) 11-14 10:35:53.001 184-184/? I/DEBUG: #07 pc 000124f4 /data/app/com.example.paycamlivedetect-1/lib/arm/libuvc.so (_uvc_handle_events+136) 11-14 10:35:53.001 184-184/? I/DEBUG: #08 pc 0001659b /system/lib/libc.so (__pthread_start(void*)+30) 11-14 10:35:53.001 184-184/? I/DEBUG: #09 pc 000144c3 /system/lib/libc.so (start_thread+6) 11-14 10:35:54.992 504-626/system_process E/NativeCrashListener: Exception dealing with report android.system.ErrnoException: read failed: EAGAIN (Try again) at libcore.io.Posix.readBytes(Native Method) at libcore.io.Posix.read(Posix.java:165) at libcore.io.BlockGuardOs.read(BlockGuardOs.java:230) at android.system.Os.read(Os.java:350) at com.android.server.am.NativeCrashListener.consumeNativeCrashData(NativeCrashListener.java:240) at com.android.server.am.NativeCrashListener.run(NativeCrashListener.java:138)

hugoleong commented 4 years ago

UVCcamera的内存泄漏问题,以前有朋友遇到过,看到你(xiaozhi003 )的帖子,完美解决了我的问题,感谢!!!!

修改UVCPreview.cpp 如下即可 void UVCPreview::addCaptureFrame(uvc_frame_t *frame) { pthread_mutex_lock(&capture_mutex); if (LIKELY(isRunning())) { // keep only latest one if (captureQueu) { recycle_frame(captureQueu); } captureQueu = frame; pthread_cond_broadcast(&capture_sync); } else { recycle_frame(frame); } pthread_mutex_unlock(&capture_mutex); }

gotoorder commented 2 years ago

这样改了也还是会