public class

StretchedVideoResolutionQuirk

extends java.lang.Object

implements Quirk

 java.lang.Object

↳androidx.camera.video.internal.compat.quirk.StretchedVideoResolutionQuirk

Gradle dependencies

compile group: 'androidx.camera', name: 'camera-video', version: '1.5.0-alpha01'

  • groupId: androidx.camera
  • artifactId: camera-video
  • version: 1.5.0-alpha01

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

Overview

QuirkSummary Bug Id: b/299075294 Description: The captured video is stretched while using the resolution obtained from EncoderProfiles. The quirk provides an alternative resolution for supported qualities. Device(s): Motorola Moto E5 Play.

Summary

Constructors
publicStretchedVideoResolutionQuirk()

Methods
public SizegetAlternativeResolution(int quality)

Returns an alternative resolution available on the device.

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

Constructors

public StretchedVideoResolutionQuirk()

Methods

public Size getAlternativeResolution(int quality)

Returns an alternative resolution available on the device.

Source

/*
 * Copyright 2023 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.video.internal.compat.quirk;

import static android.media.CamcorderProfile.QUALITY_1080P;
import static android.media.CamcorderProfile.QUALITY_480P;
import static android.media.CamcorderProfile.QUALITY_720P;

import android.os.Build;
import android.util.Size;

import androidx.annotation.Nullable;
import androidx.camera.core.impl.Quirk;

/**
 * <p>QuirkSummary
 *     Bug Id: b/299075294
 *     Description: The captured video is stretched while using the resolution obtained from
 *                  EncoderProfiles. The quirk provides an alternative resolution for supported
 *                  qualities.
 *     Device(s): Motorola Moto E5 Play.
 */
public class StretchedVideoResolutionQuirk implements Quirk {

    static boolean load() {
        return isMotoE5Play();
    }

    private static boolean isMotoE5Play() {
        return "motorola".equalsIgnoreCase(Build.BRAND) && "moto e5 play".equalsIgnoreCase(
                Build.MODEL);
    }

    /**
     * Returns an alternative resolution available on the device.
     */
    @Nullable
    public Size getAlternativeResolution(int quality) {
        switch (quality) {
            case QUALITY_480P:
                return new Size(640, 480);
            case QUALITY_720P:
                return new Size(960, 720);
            case QUALITY_1080P:
                return new Size(1440, 1080);
            default:
                return null;
        }
    }

}