public final class

PreviewConfig

extends java.lang.Object

implements UseCaseConfig<Preview>, ImageOutputConfig, ThreadConfig

 java.lang.Object

↳androidx.camera.core.impl.PreviewConfig

Gradle dependencies

compile group: 'androidx.camera', name: 'camera-core', version: '1.2.0-alpha01'

  • groupId: androidx.camera
  • artifactId: camera-core
  • version: 1.2.0-alpha01

Artifact androidx.camera:camera-core:1.2.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

Configuration for a Preview use case.

Summary

Fields
public static final Config.Option<ImageInfoProcessor>IMAGE_INFO_PROCESSOR

public static final Config.Option<CaptureProcessor>OPTION_PREVIEW_CAPTURE_PROCESSOR

public static final Config.Option<java.lang.Boolean>OPTION_RGBA8888_SURFACE_REQUIRED

Constructors
publicPreviewConfig(OptionsBundle config)

Creates a new configuration instance.

Methods
public CaptureProcessorgetCaptureProcessor()

Returns the CaptureProcessor.

public CaptureProcessorgetCaptureProcessor(CaptureProcessor valueIfMissing)

Returns the CaptureProcessor.

public ConfiggetConfig()

public ImageInfoProcessorgetImageInfoProcessor(ImageInfoProcessor valueIfMissing)

Returns the ImageInfoProcessor.

public intgetInputFormat()

Retrieves the format of the image that is fed as input.

public booleanisRgba8888SurfaceRequired(boolean valueIfMissing)

Returns if the preview surface requires RGBA8888 format.

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

public static final Config.Option<ImageInfoProcessor> IMAGE_INFO_PROCESSOR

public static final Config.Option<CaptureProcessor> OPTION_PREVIEW_CAPTURE_PROCESSOR

public static final Config.Option<java.lang.Boolean> OPTION_RGBA8888_SURFACE_REQUIRED

Constructors

public PreviewConfig(OptionsBundle config)

Creates a new configuration instance.

Methods

public Config getConfig()

public ImageInfoProcessor getImageInfoProcessor(ImageInfoProcessor valueIfMissing)

Returns the ImageInfoProcessor.

Returns:

The stored value, if it exists in this configuration.

public CaptureProcessor getCaptureProcessor(CaptureProcessor valueIfMissing)

Returns the CaptureProcessor.

Parameters:

valueIfMissing: The value to return if this configuration option has not been set.

Returns:

The stored value or valueIfMissing if the value does not exist in this configuration.

public CaptureProcessor getCaptureProcessor()

Returns the CaptureProcessor.

Returns:

The stored value, if it exists in this configuration.

public boolean isRgba8888SurfaceRequired(boolean valueIfMissing)

Returns if the preview surface requires RGBA8888 format.

public int getInputFormat()

Retrieves the format of the image that is fed as input.

This should be YUV_420_888, when processing is run on the image. Otherwise it is PRIVATE.

Source

/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.camera.core.impl;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.camera.core.Preview;
import androidx.camera.core.internal.ThreadConfig;

/**
 * Configuration for a {@link Preview} use case.
 */
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public final class PreviewConfig
        implements UseCaseConfig<Preview>,
        ImageOutputConfig,
        ThreadConfig {

    // Options declarations

    public static final Option<ImageInfoProcessor> IMAGE_INFO_PROCESSOR = Option.create(
            "camerax.core.preview.imageInfoProcessor", ImageInfoProcessor.class);
    public static final Option<CaptureProcessor> OPTION_PREVIEW_CAPTURE_PROCESSOR =
            Option.create("camerax.core.preview.captureProcessor", CaptureProcessor.class);
    public static final Option<Boolean> OPTION_RGBA8888_SURFACE_REQUIRED =
            Option.create("camerax.core.preview.isRgba8888SurfaceRequired", Boolean.class);
    private final OptionsBundle mConfig;

    /** Creates a new configuration instance. */
    public PreviewConfig(@NonNull OptionsBundle config) {
        mConfig = config;
    }

    @NonNull
    @Override
    public Config getConfig() {
        return mConfig;
    }

    /**
     * Returns the {@link ImageInfoProcessor}.
     *
     * @return The stored value, if it exists in this configuration.
     */
    @Nullable
    public ImageInfoProcessor getImageInfoProcessor(@Nullable ImageInfoProcessor valueIfMissing) {
        return retrieveOption(IMAGE_INFO_PROCESSOR, valueIfMissing);
    }

    @NonNull
    ImageInfoProcessor getImageInfoProcessor() {
        return retrieveOption(IMAGE_INFO_PROCESSOR);
    }

    /**
     * Returns the {@link CaptureProcessor}.
     *
     * @param valueIfMissing The value to return if this configuration option has not been set.
     * @return The stored value or <code>valueIfMissing</code> if the value does not exist in this
     * configuration.
     */
    @Nullable
    public CaptureProcessor getCaptureProcessor(@Nullable CaptureProcessor valueIfMissing) {
        return retrieveOption(OPTION_PREVIEW_CAPTURE_PROCESSOR, valueIfMissing);
    }

    /**
     * Returns the {@link CaptureProcessor}.
     *
     * @return The stored value, if it exists in this configuration.
     * @throws IllegalArgumentException if the option does not exist in this configuration.
     */
    @NonNull
    public CaptureProcessor getCaptureProcessor() {
        return retrieveOption(OPTION_PREVIEW_CAPTURE_PROCESSOR);
    }

    /**
     * Returns if the preview surface requires RGBA8888 format.
     */
    public boolean isRgba8888SurfaceRequired(boolean valueIfMissing) {
        return retrieveOption(OPTION_RGBA8888_SURFACE_REQUIRED, valueIfMissing);
    }
    /**
     * Retrieves the format of the image that is fed as input.
     *
     * <p>This should be YUV_420_888, when processing is run on the image. Otherwise it is PRIVATE.
     */
    @Override
    public int getInputFormat() {
        return retrieveOption(OPTION_INPUT_FORMAT);
    }
}