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

Commit 101ad25a authored by Robert Wu's avatar Robert Wu
Browse files

AAudio: Sample rate converter flag

Add a flag for sample rate converter in AAudio.

Bug: 219533889
Test: atest AAudioTests
Test: OboeTester test output for various sample rates
Change-Id: I735639e915d573605863c0e404d85724105004dc
parent 6641f9d4
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,12 @@ aconfig_declarations {
    srcs: ["audio.aconfig"],
    srcs: ["audio.aconfig"],
}
}


aconfig_declarations {
    name: "com.android.media.aaudio-aconfig",
    package: "com.android.media.aaudio",
    srcs: ["aaudio.aconfig"],
}

cc_aconfig_library {
cc_aconfig_library {
    name: "com.android.media.audioserver-aconfig-cc",
    name: "com.android.media.audioserver-aconfig-cc",
    aconfig_declarations: "com.android.media.audioserver-aconfig",
    aconfig_declarations: "com.android.media.audioserver-aconfig",
@@ -37,6 +43,12 @@ cc_aconfig_library {
    defaults: ["audio-aconfig-cc-defaults"],
    defaults: ["audio-aconfig-cc-defaults"],
}
}


cc_aconfig_library {
    name: "com.android.media.aaudio-aconfig-cc",
    aconfig_declarations: "com.android.media.aaudio-aconfig",
    defaults: ["audio-aconfig-cc-defaults"],
}

java_aconfig_library {
java_aconfig_library {
    name: "com.android.media.audio-aconfig-java",
    name: "com.android.media.audio-aconfig-java",
    aconfig_declarations: "com.android.media.audio-aconfig",
    aconfig_declarations: "com.android.media.audio-aconfig",
+12 −0
Original line number Original line Diff line number Diff line
# Flags for aaudio
#
# Please add flags in alphabetical order.

package: "com.android.media.aaudio"

flag {
    name: "sample_rate_conversion"
    namespace: "media_audio"
    description: "Enable the AAudio sample rate converter."
    bug: "219533889"
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ cc_fuzz {
        "libaudioclient_aidl_conversion",
        "libaudioclient_aidl_conversion",
        "libaudio_aidl_conversion_common_cpp",
        "libaudio_aidl_conversion_common_cpp",
        "libutils",
        "libutils",
        "com.android.media.aaudio-aconfig-cc",
    ],
    ],
    static_libs: [
    static_libs: [
        "liblog",
        "liblog",
+1 −0
Original line number Original line Diff line number Diff line
@@ -173,6 +173,7 @@ cc_library {
        "aaudio-aidl-cpp",
        "aaudio-aidl-cpp",
        "audioclient-types-aidl-cpp",
        "audioclient-types-aidl-cpp",
        "libaudioclient_aidl_conversion",
        "libaudioclient_aidl_conversion",
        "com.android.media.aaudio-aconfig-cc",
    ],
    ],


    cflags: [
    cflags: [
+7 −6
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@
#include "fifo/FifoBuffer.h"
#include "fifo/FifoBuffer.h"
#include "utility/AudioClock.h"
#include "utility/AudioClock.h"
#include <media/AidlConversion.h>
#include <media/AidlConversion.h>
#include <com_android_media_aaudio.h>


#include "AudioStreamInternal.h"
#include "AudioStreamInternal.h"


@@ -63,8 +64,6 @@ using namespace aaudio;


#define LOG_TIMESTAMPS            0
#define LOG_TIMESTAMPS            0


#define ENABLE_SAMPLE_RATE_CONVERTER 1

AudioStreamInternal::AudioStreamInternal(AAudioServiceInterface  &serviceInterface, bool inService)
AudioStreamInternal::AudioStreamInternal(AAudioServiceInterface  &serviceInterface, bool inService)
        : AudioStream()
        : AudioStream()
        , mClockModel()
        , mClockModel()
@@ -193,11 +192,13 @@ aaudio_result_t AudioStreamInternal::open(const AudioStreamBuilder &builder) {
        setSampleRate(configurationOutput.getSampleRate());
        setSampleRate(configurationOutput.getSampleRate());
    }
    }


#if !ENABLE_SAMPLE_RATE_CONVERTER
    if (!com::android::media::aaudio::sample_rate_conversion()) {
        if (getSampleRate() != getDeviceSampleRate()) {
        if (getSampleRate() != getDeviceSampleRate()) {
            ALOGD("%s - skipping sample rate converter. SR = %d, Device SR = %d", __func__,
                    getSampleRate(), getDeviceSampleRate());
            goto error;
            goto error;
        }
        }
#endif
    }


    // Save device format so we can do format conversion and volume scaling together.
    // Save device format so we can do format conversion and volume scaling together.
    setDeviceFormat(configurationOutput.getFormat());
    setDeviceFormat(configurationOutput.getFormat());