Fix error prone code in VideoCapturerAndroid
BUG=webrtc:5282 Review URL: https://codereview.webrtc.org/1486423003 Cr-Commit-Position: refs/heads/master@{#11046}
This commit is contained in:
parent
66085beef8
commit
672aba3f57
@ -113,14 +113,12 @@ public class CameraEnumerationAndroid {
|
||||
return width + "x" + height + "@[" + minFramerate + ":" + maxFramerate + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object that) {
|
||||
if (!(that instanceof CaptureFormat)) {
|
||||
public boolean isSameFormat(final CaptureFormat that) {
|
||||
if (that == null) {
|
||||
return false;
|
||||
}
|
||||
final CaptureFormat c = (CaptureFormat) that;
|
||||
return width == c.width && height == c.height && maxFramerate == c.maxFramerate
|
||||
&& minFramerate == c.minFramerate;
|
||||
return width == that.width && height == that.height && maxFramerate == that.maxFramerate
|
||||
&& minFramerate == that.minFramerate;
|
||||
}
|
||||
}
|
||||
|
||||
@ -203,8 +201,9 @@ public class CameraEnumerationAndroid {
|
||||
return Collections.min(listFpsRange,
|
||||
new ClosestComparator<int[]>() {
|
||||
@Override int diff(int[] range) {
|
||||
final int maxFpsWeight = 10;
|
||||
return range[android.hardware.Camera.Parameters.PREVIEW_FPS_MIN_INDEX]
|
||||
+ 10 * abs(framerate
|
||||
+ maxFpsWeight * abs(framerate
|
||||
- range[android.hardware.Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
|
||||
}
|
||||
});
|
||||
|
||||
@ -359,7 +359,7 @@ public class VideoCapturerAndroid extends VideoCapturer implements
|
||||
videoBuffers = new FramePool(cameraThread);
|
||||
isCapturingToTexture = (sharedContext != null);
|
||||
cameraStatistics =
|
||||
new CameraStatistics(isCapturingToTexture ? 1 : videoBuffers.numCaptureBuffers);
|
||||
new CameraStatistics(isCapturingToTexture ? 1 : FramePool.NUMBER_OF_CAPTURE_BUFFERS);
|
||||
surfaceHelper = SurfaceTextureHelper.create(sharedContext, cameraThreadHandler);
|
||||
if (isCapturingToTexture) {
|
||||
surfaceHelper.setListener(this);
|
||||
@ -535,7 +535,7 @@ public class VideoCapturerAndroid extends VideoCapturer implements
|
||||
range[android.hardware.Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
|
||||
|
||||
// Check if we are already using this capture format, then we don't need to do anything.
|
||||
if (captureFormat.equals(this.captureFormat)) {
|
||||
if (captureFormat.isSameFormat(this.captureFormat)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -777,7 +777,7 @@ public class VideoCapturerAndroid extends VideoCapturer implements
|
||||
// Arbitrary queue depth. Higher number means more memory allocated & held,
|
||||
// lower number means more sensitivity to processing time in the client (and
|
||||
// potentially stalling the capturer if it runs out of buffers to write to).
|
||||
public static final int numCaptureBuffers = 3;
|
||||
public static final int NUMBER_OF_CAPTURE_BUFFERS = 3;
|
||||
// This container tracks the buffers added as camera callback buffers. It is needed for finding
|
||||
// the corresponding ByteBuffer given a byte[].
|
||||
private final Map<byte[], ByteBuffer> queuedBuffers = new IdentityHashMap<byte[], ByteBuffer>();
|
||||
@ -804,12 +804,12 @@ public class VideoCapturerAndroid extends VideoCapturer implements
|
||||
this.frameSize = frameSize;
|
||||
|
||||
queuedBuffers.clear();
|
||||
for (int i = 0; i < numCaptureBuffers; ++i) {
|
||||
for (int i = 0; i < NUMBER_OF_CAPTURE_BUFFERS; ++i) {
|
||||
final ByteBuffer buffer = ByteBuffer.allocateDirect(frameSize);
|
||||
camera.addCallbackBuffer(buffer.array());
|
||||
queuedBuffers.put(buffer.array(), buffer);
|
||||
}
|
||||
Logging.d(TAG, "queueCameraBuffers enqueued " + numCaptureBuffers
|
||||
Logging.d(TAG, "queueCameraBuffers enqueued " + NUMBER_OF_CAPTURE_BUFFERS
|
||||
+ " buffers of size " + frameSize + ".");
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user