Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d67c05d4 authored by Mark Harman's avatar Mark Harman
Browse files

Should support high resolutions for focus bracketing.

parent 96f7de30
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ FIXED Returning from manual to auto white balance mode had incorrect colours u
        camera was restarted.
FIXED   REC709 and sRGB video picture profiles gave errors on some devices (e.g. Pixel).
FIXED   Device specific fixes for slow motion and high speed video.
FIXED   Some devices didn't support highest photo resolutions for focus bracketing mode.
FIXED   Don't enter immersive mode when in background.
FIXED   Some devices (e.g. Galaxy S24+) didn't layout UI correctly when switching directly between
        landscape and reversed landscape orientation.
+6 −1
Original line number Diff line number Diff line
@@ -494,7 +494,12 @@ public abstract class CameraController {
     *  first image.
     */
    public abstract void setDummyCaptureHack(boolean dummy_capture_hack);
    public abstract boolean isBurstOrExpo();

    /** Whether the current BurstType is one that requires the camera driver to capture the images
     *  as a burst at a fast rate. If true, we should not use high resolutions that don't support a
     *  capture burst (for Camera2 API, see StreamConfigurationMap.getHighResolutionOutputSizes()).
     */
    public abstract boolean isCaptureFastBurst();
    /** If true, then the camera controller is currently capturing a burst of images.
     */
    public abstract boolean isCapturingBurst();
+1 −1
Original line number Diff line number Diff line
@@ -859,7 +859,7 @@ public class CameraController1 extends CameraController {
    }

    @Override
    public boolean isBurstOrExpo() {
    public boolean isCaptureFastBurst() {
        // not supported for CameraController1
        return false;
    }
+5 −3
Original line number Diff line number Diff line
@@ -4887,13 +4887,15 @@ public class CameraController2 extends CameraController {
    }

    @Override
    public boolean isBurstOrExpo() {
        return this.burst_type != BurstType.BURSTTYPE_NONE;
    public boolean isCaptureFastBurst() {
        // BURSTTYPE_FOCUS photos are captured at a slow rate, so fine to return false for that (means
        // devices can still use highest resolutions)
        return this.burst_type != BurstType.BURSTTYPE_NONE && this.burst_type != BurstType.BURSTTYPE_FOCUS;
    }

    @Override
    public boolean isCapturingBurst() {
        if( !isBurstOrExpo() )
        if( this.burst_type == BurstType.BURSTTYPE_NONE )
            return false;
        if( burst_type == BurstType.BURSTTYPE_CONTINUOUS )
            return continuous_burst_in_progress || n_burst > 0 || n_burst_raw > 0;
+2 −2
Original line number Diff line number Diff line
@@ -2199,7 +2199,7 @@ public class Preview implements SurfaceHolder.Callback, TextureView.SurfaceTextu
        setupBurstMode();

        {
            boolean is_burst = camera_controller.isBurstOrExpo();
            boolean is_burst = camera_controller.isCaptureFastBurst();
            int extension = is_extension ? camera_controller.getCameraExtension() : -1;
            if( is_burst || is_extension ) {
                if( MyDebug.LOG ) {
@@ -7573,7 +7573,7 @@ public class Preview implements SurfaceHolder.Callback, TextureView.SurfaceTextu
    public List<CameraController.Size> getSupportedPictureSizes(boolean check_supported) {
        if( MyDebug.LOG )
            Log.d(TAG, "getSupportedPictureSizes");
        boolean is_burst = ( camera_controller != null && camera_controller.isBurstOrExpo() );
        boolean is_burst = ( camera_controller != null && camera_controller.isCaptureFastBurst() );
        boolean is_extension = ( camera_controller != null && camera_controller.isCameraExtension() );
        int extension = is_extension ? camera_controller.getCameraExtension() : -1;
        boolean has_constraints = photo_size_constraints != null && photo_size_constraints.hasConstraints();