new SimpleEntry<>(REQUEST_ID_NONE, null);
private final SparseArray<OutputConfiguration> mConfiguredOutputs =
new SparseArray<>();
- private final SparseArray<Size> mConfiguredOutputSizes =
- new SparseArray<>();
private final String mCameraId;
private final CameraCharacteristics mCharacteristics;
if (!outputs.contains(outConfig)) {
deleteList.add(streamId);
} else {
- // Even if same surface and rotation, the surface can have re-sized.
- // If so, we must create a new stream to ensure HAL is configured correctly.
- Size outSize = SurfaceUtils.getSurfaceSize(outConfig.getSurface());
- if (!outSize.equals(mConfiguredOutputSizes.valueAt(i))) {
- deleteList.add(streamId);
- } else {
- addSet.remove(outConfig); // Don't create a stream previously created
- }
+ addSet.remove(outConfig); // Don't create a stream previously created
}
}
for (Integer streamId : deleteList) {
mRemoteDevice.deleteStream(streamId);
mConfiguredOutputs.delete(streamId);
- mConfiguredOutputSizes.delete(streamId);
}
// Add all new streams
for (OutputConfiguration outConfig : outputs) {
if (addSet.contains(outConfig)) {
int streamId = mRemoteDevice.createStream(outConfig);
- Size outSize = SurfaceUtils.getSurfaceSize(outConfig.getSurface());
mConfiguredOutputs.put(streamId, outConfig);
- mConfiguredOutputSizes.put(streamId, outSize);
}
}