public class

AudioEncoderIgnoresInputTimestampQuirk

extends java.lang.Object

implements Quirk

 java.lang.Object

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

Gradle dependencies

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

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

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

Overview

QuirkSummary Bug Id: b/202799148 Description: Quirk indicates that the audio encoder outputs incorrect timestamps after pause and resume recording. On the problem device, the audio codec only refers to the first timestamp of the input audio data, and then accumulates timestamps based on the subsequent input audio data, but does not refer to the timestamp. So if we stop sending audio data to the codec or pause the codec when paused, then codec will miss the timestamp increment during pause duration, resulting in a/v out of sync after resume. Device(s): Sony-G3125

Summary

Constructors
publicAudioEncoderIgnoresInputTimestampQuirk()

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

Constructors

public AudioEncoderIgnoresInputTimestampQuirk()

Source

/*
 * Copyright 2021 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 android.os.Build;

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

/**
 * <p>QuirkSummary
 *     Bug Id: b/202799148
 *     Description: Quirk indicates that the audio encoder outputs incorrect timestamps after
 *                  pause and resume recording. On the problem device, the audio codec only refers
 *                  to the first timestamp of the input audio data, and then accumulates
 *                  timestamps based on the subsequent input audio data, but does not refer to the
 *                  timestamp. So if we stop sending audio data to the codec or pause the codec
 *                  when paused, then codec will miss the timestamp increment during pause
 *                  duration, resulting in a/v out of sync after resume.
 *     Device(s): Sony-G3125
 */
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public class AudioEncoderIgnoresInputTimestampQuirk implements Quirk {

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

    private static boolean isSonyG3125() {
        return "Sony".equalsIgnoreCase(Build.BRAND) && "G3125".equalsIgnoreCase(Build.MODEL);
    }
}