Chromium Code Reviews

Side by Side Diff: webrtc/api/android/java/src/org/webrtc/VideoCapturerAndroid.java

Issue 2356563002: Log supported camera preview resolutions. (Closed)
Patch Set: Remove non needed comment Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « webrtc/api/android/java/src/org/webrtc/Camera2Session.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 373 matching lines...)
384 384
385 // Find closest supported format for |width| x |height| @ |framerate|. 385 // Find closest supported format for |width| x |height| @ |framerate|.
386 final android.hardware.Camera.Parameters parameters = camera.getParameters() ; 386 final android.hardware.Camera.Parameters parameters = camera.getParameters() ;
387 final List<CaptureFormat.FramerateRange> supportedFramerates = 387 final List<CaptureFormat.FramerateRange> supportedFramerates =
388 Camera1Enumerator.convertFramerates(parameters.getSupportedPreviewFpsRan ge()); 388 Camera1Enumerator.convertFramerates(parameters.getSupportedPreviewFpsRan ge());
389 Logging.d(TAG, "Available fps ranges: " + supportedFramerates); 389 Logging.d(TAG, "Available fps ranges: " + supportedFramerates);
390 390
391 final CaptureFormat.FramerateRange fpsRange = 391 final CaptureFormat.FramerateRange fpsRange =
392 CameraEnumerationAndroid.getClosestSupportedFramerateRange(supportedFram erates, framerate); 392 CameraEnumerationAndroid.getClosestSupportedFramerateRange(supportedFram erates, framerate);
393 393
394 final Size previewSize = CameraEnumerationAndroid.getClosestSupportedSize( 394 final List<Size> supportedPreviewSizes =
395 Camera1Enumerator.convertSizes(parameters.getSupportedPreviewSizes()), w idth, height); 395 Camera1Enumerator.convertSizes(parameters.getSupportedPreviewSizes());
396 final Size previewSize =
397 CameraEnumerationAndroid.getClosestSupportedSize(supportedPreviewSizes, width, height);
398 Logging.d(TAG, "Available preview sizes: " + supportedPreviewSizes);
396 399
397 final CaptureFormat captureFormat = 400 final CaptureFormat captureFormat =
398 new CaptureFormat(previewSize.width, previewSize.height, fpsRange); 401 new CaptureFormat(previewSize.width, previewSize.height, fpsRange);
399 402
400 // Check if we are already using this capture format, then we don't need to do anything. 403 // Check if we are already using this capture format, then we don't need to do anything.
401 if (captureFormat.equals(this.captureFormat)) { 404 if (captureFormat.equals(this.captureFormat)) {
402 return; 405 return;
403 } 406 }
404 407
405 // Update camera parameters. 408 // Update camera parameters.
(...skipping 19 matching lines...)
425 parameters.setPictureSize(pictureSize.width, pictureSize.height); 428 parameters.setPictureSize(pictureSize.width, pictureSize.height);
426 429
427 // Temporarily stop preview if it's already running. 430 // Temporarily stop preview if it's already running.
428 if (this.captureFormat != null) { 431 if (this.captureFormat != null) {
429 camera.stopPreview(); 432 camera.stopPreview();
430 // Calling |setPreviewCallbackWithBuffer| with null should clear the inter nal camera buffer 433 // Calling |setPreviewCallbackWithBuffer| with null should clear the inter nal camera buffer
431 // queue, but sometimes we receive a frame with the old resolution after t his call anyway. 434 // queue, but sometimes we receive a frame with the old resolution after t his call anyway.
432 camera.setPreviewCallbackWithBuffer(null); 435 camera.setPreviewCallbackWithBuffer(null);
433 } 436 }
434 437
438 List<String> focusModes = parameters.getSupportedFocusModes();
439 if (focusModes.contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTIN UOUS_VIDEO)) {
440 Logging.d(TAG, "Enable continuous auto focus mode.");
441 parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONT INUOUS_VIDEO);
442 }
443
435 // (Re)start preview. 444 // (Re)start preview.
436 Logging.d(TAG, "Start capturing: " + captureFormat); 445 Logging.d(TAG, "Start capturing: " + captureFormat);
437 this.captureFormat = captureFormat; 446 this.captureFormat = captureFormat;
438 447
439 List<String> focusModes = parameters.getSupportedFocusModes();
440 if (focusModes.contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTIN UOUS_VIDEO)) {
441 parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONT INUOUS_VIDEO);
442 }
443
444 camera.setParameters(parameters); 448 camera.setParameters(parameters);
445 // Calculate orientation manually and send it as CVO instead. 449 // Calculate orientation manually and send it as CVO instead.
446 camera.setDisplayOrientation(0 /* degrees */); 450 camera.setDisplayOrientation(0 /* degrees */);
447 if (!isCapturingToTexture) { 451 if (!isCapturingToTexture) {
448 queuedBuffers.clear(); 452 queuedBuffers.clear();
449 final int frameSize = captureFormat.frameSize(); 453 final int frameSize = captureFormat.frameSize();
450 for (int i = 0; i < NUMBER_OF_CAPTURE_BUFFERS; ++i) { 454 for (int i = 0; i < NUMBER_OF_CAPTURE_BUFFERS; ++i) {
451 final ByteBuffer buffer = ByteBuffer.allocateDirect(frameSize); 455 final ByteBuffer buffer = ByteBuffer.allocateDirect(frameSize);
452 queuedBuffers.add(buffer.array()); 456 queuedBuffers.add(buffer.array());
453 camera.addCallbackBuffer(buffer.array()); 457 camera.addCallbackBuffer(buffer.array());
(...skipping 180 matching lines...)
634 cameraStatistics.addFrame(); 638 cameraStatistics.addFrame();
635 frameObserver.onTextureFrameCaptured(captureFormat.width, captureFormat.heig ht, oesTextureId, 639 frameObserver.onTextureFrameCaptured(captureFormat.width, captureFormat.heig ht, oesTextureId,
636 transformMatrix, rotation, timestampNs); 640 transformMatrix, rotation, timestampNs);
637 } 641 }
638 642
639 @Override 643 @Override
640 public boolean isScreencast() { 644 public boolean isScreencast() {
641 return false; 645 return false;
642 } 646 }
643 } 647 }
OLDNEW
« no previous file with comments | « webrtc/api/android/java/src/org/webrtc/Camera2Session.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine