Loading core/java/android/hardware/camera2/impl/CameraExtensionForwardProcessor.java +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.media.Image; import android.media.ImageReader; import android.media.ImageWriter; import android.annotation.NonNull; import android.os.Handler; import android.os.RemoteException; import android.util.Log; import android.util.Size; Loading @@ -39,6 +40,7 @@ public class CameraExtensionForwardProcessor { private final IPreviewImageProcessorImpl mProcessor; private final long mOutputSurfaceUsage; private final int mOutputSurfaceFormat; private final Handler mHandler; private ImageReader mIntermediateReader = null; private Surface mIntermediateSurface = null; Loading @@ -48,10 +50,11 @@ public class CameraExtensionForwardProcessor { private boolean mOutputAbandoned = false; public CameraExtensionForwardProcessor(@NonNull IPreviewImageProcessorImpl processor, int format, long surfaceUsage) { int format, long surfaceUsage, @NonNull Handler handler) { mProcessor = processor; mOutputSurfaceUsage = surfaceUsage; mOutputSurfaceFormat = format; mHandler = handler; } public void close() { Loading Loading @@ -98,7 +101,7 @@ public class CameraExtensionForwardProcessor { mResolution.getHeight(), CameraExtensionCharacteristics.PROCESSING_INPUT_FORMAT, FORWARD_QUEUE_SIZE, mOutputSurfaceUsage); mIntermediateSurface = mIntermediateReader.getSurface(); mIntermediateReader.setOnImageAvailableListener(new ForwardCallback(), null); mIntermediateReader.setOnImageAvailableListener(new ForwardCallback(), mHandler); mProcessor.onOutputSurface(mIntermediateSurface, mOutputSurfaceFormat); // PreviewImageProcessorImpl always expect the extension processing format as input Loading @@ -124,11 +127,15 @@ public class CameraExtensionForwardProcessor { @Override public void onImageAvailable(ImageReader reader) { Image processedImage = null; try { processedImage = mIntermediateReader.acquireNextImage(); processedImage = reader.acquireNextImage(); } catch (IllegalStateException e) { Log.e(TAG, "Failed to acquire processed image!"); return; } if (processedImage == null) { Log.e(TAG, "Invalid image"); return; } if (mOutputSurface != null && mOutputSurface.isValid() && !mOutputAbandoned) { if (mOutputWriter == null) { Loading core/java/android/hardware/camera2/impl/CameraExtensionSessionImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -352,7 +352,7 @@ public final class CameraExtensionSessionImpl extends CameraExtensionSession { try { mPreviewImageProcessor = new CameraExtensionForwardProcessor( mPreviewExtender.getPreviewImageProcessor(), repeatingSurfaceInfo.mFormat, repeatingSurfaceInfo.mUsage); repeatingSurfaceInfo.mUsage, mHandler); } catch (ClassCastException e) { throw new UnsupportedOperationException("Failed casting preview processor!"); } Loading Loading
core/java/android/hardware/camera2/impl/CameraExtensionForwardProcessor.java +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.media.Image; import android.media.ImageReader; import android.media.ImageWriter; import android.annotation.NonNull; import android.os.Handler; import android.os.RemoteException; import android.util.Log; import android.util.Size; Loading @@ -39,6 +40,7 @@ public class CameraExtensionForwardProcessor { private final IPreviewImageProcessorImpl mProcessor; private final long mOutputSurfaceUsage; private final int mOutputSurfaceFormat; private final Handler mHandler; private ImageReader mIntermediateReader = null; private Surface mIntermediateSurface = null; Loading @@ -48,10 +50,11 @@ public class CameraExtensionForwardProcessor { private boolean mOutputAbandoned = false; public CameraExtensionForwardProcessor(@NonNull IPreviewImageProcessorImpl processor, int format, long surfaceUsage) { int format, long surfaceUsage, @NonNull Handler handler) { mProcessor = processor; mOutputSurfaceUsage = surfaceUsage; mOutputSurfaceFormat = format; mHandler = handler; } public void close() { Loading Loading @@ -98,7 +101,7 @@ public class CameraExtensionForwardProcessor { mResolution.getHeight(), CameraExtensionCharacteristics.PROCESSING_INPUT_FORMAT, FORWARD_QUEUE_SIZE, mOutputSurfaceUsage); mIntermediateSurface = mIntermediateReader.getSurface(); mIntermediateReader.setOnImageAvailableListener(new ForwardCallback(), null); mIntermediateReader.setOnImageAvailableListener(new ForwardCallback(), mHandler); mProcessor.onOutputSurface(mIntermediateSurface, mOutputSurfaceFormat); // PreviewImageProcessorImpl always expect the extension processing format as input Loading @@ -124,11 +127,15 @@ public class CameraExtensionForwardProcessor { @Override public void onImageAvailable(ImageReader reader) { Image processedImage = null; try { processedImage = mIntermediateReader.acquireNextImage(); processedImage = reader.acquireNextImage(); } catch (IllegalStateException e) { Log.e(TAG, "Failed to acquire processed image!"); return; } if (processedImage == null) { Log.e(TAG, "Invalid image"); return; } if (mOutputSurface != null && mOutputSurface.isValid() && !mOutputAbandoned) { if (mOutputWriter == null) { Loading
core/java/android/hardware/camera2/impl/CameraExtensionSessionImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -352,7 +352,7 @@ public final class CameraExtensionSessionImpl extends CameraExtensionSession { try { mPreviewImageProcessor = new CameraExtensionForwardProcessor( mPreviewExtender.getPreviewImageProcessor(), repeatingSurfaceInfo.mFormat, repeatingSurfaceInfo.mUsage); repeatingSurfaceInfo.mUsage, mHandler); } catch (ClassCastException e) { throw new UnsupportedOperationException("Failed casting preview processor!"); } Loading