Giter Site home page Giter Site logo

Comments (3)

saki4510t avatar saki4510t commented on August 14, 2024

Hi, sorry my answer delayed.
Unfortunately I don't know certain way to get them work well, could you try followings?

  1. Connect one camera
  2. open and start preview with 640x480, MJPEG. if it works, set smaller value to bandwidth factor than before (please repeat step 2 until you find minimum value of bandwidth factor).
  3. set minimum bandwidth factor for both camera
  4. connect two camera and try to start preview.

FYI, shorter cabling and self powered USB hub (if you use bus powered USB hub now) may produce better result.
saki

from uvccamera.

noisysoil avatar noisysoil commented on August 14, 2024

Hey, thanks for getting in touch. I have tried changing DEFAULT_BANDWIDTH in master branch with various values (0.2f, 0.5f, 0.67f, 0.8f and 1.0f) but the issue still occurs.

I have done some further testing on master branch and this is the sequence of what happens:

  • Run app with no cameras connected.
  • Connect camera 1.
  • Select left view on UI; dialog with unique USB appears with Camera 1 listed - select camera 1 ID.
  • Camera 1 stream appears on left view of UI.
  • Connect camera 2.
  • Select right view on UI; dialog with unique USB appears with Camera 2 listed - select camera 2 ID.
  • Camera 2 stream appears on left view of UI.

The second camera takes over the first. Here's the LogCat of the above sequence:

05-11 13:45:16.055 10289-10289/com.serenegiant.usbcameratest7 W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
05-11 13:45:16.725 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:16.725 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopPreview:
05-11 13:45:16.725 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onPause:
05-11 13:45:16.725 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: release:
05-11 13:45:16.725 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:16.725 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:16.725 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:16.725 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopPreview:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread finishing
05-11 13:45:16.725 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onPause:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#release:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:release:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:

                                                                         [ 05-11 13:45:16.725 10289:11244 D/         ]
                                                                         Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
05-11 13:45:16.725 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:finished
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: release:
05-11 13:45:16.725 10289-11244/com.serenegiant.usbcameratest7 V/EGLBase: destroyContext:
05-11 13:45:16.725 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:16.725 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: release:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread finishing
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#release:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/GLDrawer2D: deleteTex:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:release:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:

                                                                         [ 05-11 13:45:16.725 10289:11245 D/         ]
                                                                         Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:finished
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: release:
05-11 13:45:16.725 10289-11245/com.serenegiant.usbcameratest7 V/EGLBase: destroyContext:
05-11 13:45:19.325 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onResume:
05-11 13:45:19.325 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#getHandler:
05-11 13:45:19.325 10289-13137/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread started
05-11 13:45:19.325 10289-13137/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#init:
05-11 13:45:19.325 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: EGLBase:
05-11 13:45:19.325 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: init:

                                                                         [ 05-11 13:45:19.325 10289:13137 D/         ]
                                                                         droid_create_context : config id = 1 conf->NativeVisualID=1


                                                                         [ 05-11 13:45:19.325 10289:13137 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888

                                                                         [ 05-11 13:45:19.325 10289:13137 I/         ]
                                                                         Requested context : GLES 2.0

                                                                         [ 05-11 13:45:19.335   603:  603 D/         ]
                                                                         Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 D/EGLBase: EGLContext created, client version 2
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: createFromSurface:
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: createWindowSurface:nativeWindow=android.graphics.SurfaceTexture@267d32a0

                                                                         [ 05-11 13:45:19.335 10289:13137 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888
05-11 13:45:19.335 10289-13137/com.serenegiant.usbcameratest7 V/GLDrawer2D: loadShader:
05-11 13:45:19.355 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onResume:
05-11 13:45:19.355 10289-13138/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread started
05-11 13:45:19.355 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#getHandler:
05-11 13:45:19.355 10289-13138/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#init:
05-11 13:45:19.355 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: EGLBase:
05-11 13:45:19.355 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: init:

                                                                         [ 05-11 13:45:19.355 10289:13138 D/         ]
                                                                         droid_create_context : config id = 1 conf->NativeVisualID=1


                                                                         [ 05-11 13:45:19.355 10289:13138 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888

                                                                         [ 05-11 13:45:19.355 10289:13138 I/         ]
                                                                         Requested context : GLES 2.0
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 D/EGLBase: EGLContext created, client version 2
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: createFromSurface:
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: createWindowSurface:nativeWindow=android.graphics.SurfaceTexture@267ce0a8

                                                                         [ 05-11 13:45:19.365 10289:13138 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888
05-11 13:45:19.365 10289-13138/com.serenegiant.usbcameratest7 V/GLDrawer2D: loadShader:
05-11 13:45:19.535 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: getPreviewTexture:
05-11 13:45:19.535 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleOpen:
05-11 13:45:19.535 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:19.535 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:19.535 10289-13138/com.serenegiant.usbcameratest7 I/UVCCameraTextureView: RenderThread#updatePreviewSurface:
05-11 13:45:19.535 10289-13138/com.serenegiant.usbcameratest7 V/GLDrawer2D: initTex:
05-11 13:45:19.535 10289-13138/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: getPreviewSurface:tex_id=1
05-11 13:45:19.675 10289-10317/com.serenegiant.usbcameratest7 I/CameraHandler: supportedSize:{"formats":[{"index":1,"type":6,"default":1,"size":["640x480","320x240","800x600","1024x768","1280x720","640x480"]},{"index":2,"type":4,"default":1,"size":["640x480","320x240","1280x1024","1600x1200","640x480"]}]}
05-11 13:45:19.675 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStartPreview:
05-11 13:45:19.695 10289-13146/com.serenegiant.usbcameratest7 I/libUVCCamera: [13146*UVCPreview.cpp:492:prepare_preview]:frameSize=(640,480)@MJPEG
05-11 13:45:20.945 10289-13147/com.serenegiant.usbcameratest7 W/libUVCCamera: [13147*UVCPreview.cpp:119:get_frame]:allocate new frame
05-11 13:45:20.945 10289-13146/com.serenegiant.usbcameratest7 W/libUVCCamera: [13146*UVCPreview.cpp:119:get_frame]:allocate new frame
05-11 13:45:37.985 10289-10289/com.serenegiant.usbcameratest7 W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
05-11 13:45:38.635 10289-10289/com.serenegiant.usbcameratest7 D/dalvikvm: GC_FOR_ALLOC freed 4091K, 37% free 7216K/11352K, paused 5ms, total 6ms
05-11 13:45:39.385 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:39.385 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopPreview:
05-11 13:45:39.385 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onPause:
05-11 13:45:39.385 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: release:
05-11 13:45:39.385 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:39.385 10289-10320/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread finishing
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#release:
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:release:
05-11 13:45:39.385 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:39.385 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopPreview:
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:

                                                                         [ 05-11 13:45:39.385 10289:13137 D/         ]
                                                                         Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:finished
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: release:
05-11 13:45:39.385 10289-13137/com.serenegiant.usbcameratest7 V/EGLBase: destroyContext:
05-11 13:45:39.435 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onPause:
05-11 13:45:39.435 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: release:
05-11 13:45:39.435 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:39.435 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread finishing
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#release:
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/GLDrawer2D: deleteTex:
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:release:
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:

                                                                         [ 05-11 13:45:39.435 10289:13138 D/         ]
                                                                         Surface destroy: ANDROID_NATIVE_WINDOW_MAGIC
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: destroySurface:finished
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: release:
05-11 13:45:39.435 10289-13138/com.serenegiant.usbcameratest7 V/EGLBase: destroyContext:
05-11 13:45:40.795 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onResume:
05-11 13:45:40.805 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#getHandler:
05-11 13:45:40.805 10289-13460/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread started
05-11 13:45:40.805 10289-13460/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#init:
05-11 13:45:40.805 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: EGLBase:
05-11 13:45:40.805 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: init:

                                                                         [ 05-11 13:45:40.805 10289:13460 D/         ]
                                                                         droid_create_context : config id = 1 conf->NativeVisualID=1


                                                                         [ 05-11 13:45:40.805 10289:13460 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888

                                                                         [ 05-11 13:45:40.805 10289:13460 I/         ]
                                                                         Requested context : GLES 2.0
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 D/EGLBase: EGLContext created, client version 2
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: createFromSurface:
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 V/EGLBase: createWindowSurface:nativeWindow=android.graphics.SurfaceTexture@267d32a0

                                                                         [ 05-11 13:45:40.815 10289:13460 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888
05-11 13:45:40.815 10289-13460/com.serenegiant.usbcameratest7 V/GLDrawer2D: loadShader:
05-11 13:45:40.825 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: onResume:
05-11 13:45:40.825 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#getHandler:
05-11 13:45:40.825 10289-13461/com.serenegiant.usbcameratest7 D/UVCCameraTextureView: RenderThread started
05-11 13:45:40.825 10289-13461/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: RenderThread#init:
05-11 13:45:40.825 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: EGLBase:
05-11 13:45:40.825 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: init:

                                                                         [ 05-11 13:45:40.825 10289:13461 D/         ]
                                                                         droid_create_context : config id = 1 conf->NativeVisualID=1


                                                                         [ 05-11 13:45:40.825 10289:13461 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888

                                                                         [ 05-11 13:45:40.825 10289:13461 I/         ]
                                                                         Requested context : GLES 2.0
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 D/EGLBase: EGLContext created, client version 2
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: makeDefault:
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: createFromSurface:
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: EglSurface:
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 V/EGLBase: createWindowSurface:nativeWindow=android.graphics.SurfaceTexture@267ce0a8

                                                                         [ 05-11 13:45:40.835 10289:13461 D/         ]
                                                                         Pixel Format : GGL_PIXEL_FORMAT_RGBA_8888
05-11 13:45:40.835 10289-13461/com.serenegiant.usbcameratest7 V/GLDrawer2D: loadShader:
05-11 13:45:40.915 10289-10289/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: getPreviewTexture:
05-11 13:45:40.915 10289-13461/com.serenegiant.usbcameratest7 I/UVCCameraTextureView: RenderThread#updatePreviewSurface:
05-11 13:45:40.915 10289-13461/com.serenegiant.usbcameratest7 V/GLDrawer2D: initTex:
05-11 13:45:40.915 10289-13461/com.serenegiant.usbcameratest7 V/UVCCameraTextureView: getPreviewSurface:tex_id=1
05-11 13:45:40.915 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleOpen:
05-11 13:45:40.915 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleClose:
05-11 13:45:40.915 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStopRecording:mMuxer=null
05-11 13:45:41.015 10289-10317/com.serenegiant.usbcameratest7 I/CameraHandler: supportedSize:{"formats":[{"index":1,"type":6,"default":1,"size":["640x480","320x240","800x600","1024x768","1280x720","640x480"]},{"index":2,"type":4,"default":1,"size":["640x480","320x240","1280x1024","1600x1200","640x480"]}]}
05-11 13:45:41.015 10289-10317/com.serenegiant.usbcameratest7 V/CameraThread: handleStartPreview:
05-11 13:45:41.045 10289-13469/com.serenegiant.usbcameratest7 I/libUVCCamera: [13469*UVCPreview.cpp:492:prepare_preview]:frameSize=(640,480)@MJPEG
05-11 13:45:42.325 10289-13470/com.serenegiant.usbcameratest7 W/libUVCCamera: [13470*UVCPreview.cpp:119:get_frame]:allocate new frame
05-11 13:45:42.325 10289-13469/com.serenegiant.usbcameratest7 W/libUVCCamera: [13469*UVCPreview.cpp:119:get_frame]:allocate new frame

from uvccamera.

ZejiaZheng avatar ZejiaZheng commented on August 14, 2024

I had the same issue.
The second camera would take either take over, or it would start a blank screen.


Update:
I reverted the current code to a previous commit.
https://github.com/saki4510t/UVCCamera/blob/4be6cab3bef3d2007fe2078d31e561df303fe7b1/usbCameraTest7/src/main/java/com/serenegiant/usbcameratest7/MainActivity.java

This code works fine with dual cams.

Apparently the current code doesn't work with dual camera.

from uvccamera.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.