Merge remote-tracking branch 'aosp/upstream-main' into external/oboe Merging latest Oboe into external/oboe. Bug: 400443890 Test: mmm external/oboe Test: mmma cts/apps/CtsVerifier Test: mmm frameworks/av/media/libaaudio Flag: EXEMPT merging from upstream Change-Id: I694fea0cb59e771fc7bca3790f429638a69db4e3
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 0000000..078c1cf --- /dev/null +++ b/.github/workflows/android.yml
@@ -0,0 +1,37 @@ +name: Build CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: build samples + run: | + pushd samples + chmod +x gradlew + ./gradlew -q clean bundleDebug + popd + - name: build OboeTester + run: | + pushd apps/OboeTester + chmod +x gradlew + ./gradlew -q clean bundleDebug + popd + - name: build fxlab + run: | + pushd apps/fxlab + chmod +x gradlew + ./gradlew -q clean bundleDebug + popd +
diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..c3d2e74 --- /dev/null +++ b/Android.bp
@@ -0,0 +1,146 @@ +// +// Copyright (C) 2020 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 { + default_applicable_licenses: ["external_oboe_license"], +} + +// Added automatically by a large-scale-change that took the approach of +// 'apply every license found to every target'. While this makes sure we respect +// every license restriction, it may not be entirely correct. +// +// e.g. GPL in an MIT project might only apply to the contrib/ directory. +// +// Please consider splitting the single license below into multiple licenses, +// taking care not to lose any license_kind information, and overriding the +// default license using the 'licenses: [...]' property on targets as needed. +// +// For unused files, consider creating a 'fileGroup' with "//visibility:private" +// to attach the license to, and including a comment whether the files may be +// used in the current project. +// +// large-scale-change included anything that looked like it might be a license +// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. +// +// Please consider removing redundant or irrelevant files from 'license_text:'. +// See: http://go/android-license-faq +license { + name: "external_oboe_license", + visibility: [":__subpackages__"], + license_kinds: [ + "SPDX-license-identifier-Apache-2.0", + "SPDX-license-identifier-GPL-2.0", + "SPDX-license-identifier-MIT", + ], + license_text: [ + "LICENSE", + ], +} + +cc_library_static { + name: "oboe", + srcs: [ + "src/aaudio/AAudioLoader.cpp", + "src/common/AdpfWrapper.cpp", + "src/aaudio/AudioStreamAAudio.cpp", + "src/common/AudioSourceCaller.cpp", + "src/common/AudioStream.cpp", + "src/common/AudioStreamBuilder.cpp", + "src/common/DataConversionFlowGraph.cpp", + "src/common/FilterAudioStream.cpp", + "src/common/FixedBlockAdapter.cpp", + "src/common/FixedBlockReader.cpp", + "src/common/FixedBlockWriter.cpp", + "src/common/LatencyTuner.cpp", + "src/common/OboeExtensions.cpp", + "src/common/SourceFloatCaller.cpp", + "src/common/SourceI16Caller.cpp", + "src/common/SourceI24Caller.cpp", + "src/common/SourceI32Caller.cpp", + "src/common/Utilities.cpp", + "src/common/QuirksManager.cpp", + "src/fifo/FifoBuffer.cpp", + "src/fifo/FifoController.cpp", + "src/fifo/FifoControllerBase.cpp", + "src/fifo/FifoControllerIndirect.cpp", + "src/flowgraph/FlowGraphNode.cpp", + "src/flowgraph/ChannelCountConverter.cpp", + "src/flowgraph/ClipToRange.cpp", + "src/flowgraph/Limiter.cpp", + "src/flowgraph/ManyToMultiConverter.cpp", + "src/flowgraph/MonoBlend.cpp", + "src/flowgraph/MonoToMultiConverter.cpp", + "src/flowgraph/MultiToManyConverter.cpp", + "src/flowgraph/MultiToMonoConverter.cpp", + "src/flowgraph/RampLinear.cpp", + "src/flowgraph/SampleRateConverter.cpp", + "src/flowgraph/SinkFloat.cpp", + "src/flowgraph/SinkI16.cpp", + "src/flowgraph/SinkI24.cpp", + "src/flowgraph/SinkI32.cpp", + "src/flowgraph/SinkI8_24.cpp", + "src/flowgraph/SourceFloat.cpp", + "src/flowgraph/SourceI16.cpp", + "src/flowgraph/SourceI24.cpp", + "src/flowgraph/SourceI32.cpp", + "src/flowgraph/SourceI8_24.cpp", + "src/flowgraph/resampler/IntegerRatio.cpp", + "src/flowgraph/resampler/LinearResampler.cpp", + "src/flowgraph/resampler/MultiChannelResampler.cpp", + "src/flowgraph/resampler/PolyphaseResampler.cpp", + "src/flowgraph/resampler/PolyphaseResamplerMono.cpp", + "src/flowgraph/resampler/PolyphaseResamplerStereo.cpp", + "src/flowgraph/resampler/SincResampler.cpp", + "src/flowgraph/resampler/SincResamplerStereo.cpp", + "src/opensles/AudioInputStreamOpenSLES.cpp", + "src/opensles/AudioOutputStreamOpenSLES.cpp", + "src/opensles/AudioStreamBuffered.cpp", + "src/opensles/AudioStreamOpenSLES.cpp", + "src/opensles/EngineOpenSLES.cpp", + "src/opensles/OpenSLESUtilities.cpp", + "src/opensles/OutputMixerOpenSLES.cpp", + "src/common/StabilizedCallback.cpp", + "src/common/Trace.cpp", + "src/common/Version.cpp", + ], + header_libs: ["jni_headers"], + include_dirs: [ + "external/oboe/include", + "external/oboe/src", + "frameworks/wilhelm/include", + "frameworks/av/media/libaaudio/include", + ], + cflags: [ + "-std=c++14", + "-Wall", + "-Wextra-semi", + "-Wshadow", + "-Wshadow-field", + "-Wno-unused-parameter", + "-Wno-deprecated-declarations", + "-Ofast", + "-DFLOWGRAPH_ANDROID_INTERNAL=0", + "-DFLOWGRAPH_OUTER_NAMESPACE=oboe", + "-DRESAMPLER_OUTER_NAMESPACE=oboe", + ], + sdk_version: "current", + stl: "libc++_static", +} + +cc_library_headers { + name: "oboe_headers", + export_include_dirs: ["include"], +}
diff --git a/METADATA b/METADATA new file mode 100644 index 0000000..072f463 --- /dev/null +++ b/METADATA
@@ -0,0 +1,14 @@ +name: "Oboe" +description: "Native audio API for Android that calls AAudio or OpenSL ES." +third_party { + url { + type: GIT + value: "https://github.com/google/oboe" + } + version: "1.7.0" + last_upgrade_date { + year: 2022 + month: 12 + day: 14 + } +}
diff --git a/OWNERS b/OWNERS new file mode 100644 index 0000000..e2a8324 --- /dev/null +++ b/OWNERS
@@ -0,0 +1,2 @@ +philburk@google.com +include platform/system/core:/janitors/OWNERS #{LAST_RESORT_SUGGESTION}
diff --git a/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp b/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp index 71208d8..d0ac6dd 100644 --- a/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp +++ b/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp
@@ -26,6 +26,7 @@ #include <thread> #endif // DEBUG_CLOSE_RACE #include <vector> +#include <common/AudioClock.h> #include "oboe/AudioClock.h" #include "util/WaveFileWriter.h"
diff --git a/apps/OboeTester/app/src/main/res/layout/activity_main.xml b/apps/OboeTester/app/src/main/res/layout/activity_main.xml index 0d38bf4..a762675 100644 --- a/apps/OboeTester/app/src/main/res/layout/activity_main.xml +++ b/apps/OboeTester/app/src/main/res/layout/activity_main.xml
@@ -147,6 +147,15 @@ android:onClick="onLaunchExtratests" android:text="Extras..." /> + <Button + android:id="@+id/button_test_data_paths" + android:layout_gravity="fill" + android:layout_width="0dp" + android:layout_columnWeight="1" + android:layout_height="wrap_content" + android:onClick="onLaunchTestDataPaths" + android:text="Data Paths" /> + </GridLayout>