rosemary: Shim misssing audio symbol

* E vndksupport: Could not load /vendor/lib/hw/audio.primary.mt6785.so from default namespace: dlopen failed: cannot locate symbol "_ZN7android13TypeConverterINS_13DefaultTraitsI14audio_format_tEEE6mTableE" referenced by "/vendor/lib/hw/audio.primary.mt6785.so"....

* The required conversion mTable [1] was removed in VNDK31, add it back.

[1] dc6be0d575

Signed-off-by: bengris32 <bengris32@protonmail.ch>
Change-Id: I9b90be74c40ec52624f84be24917b3392081a3bb
This commit is contained in:
bengris32
2022-10-28 14:28:49 +01:00
committed by Matsvei Niaverau
parent 4e219c3f30
commit 66c85245e3
4 changed files with 133 additions and 0 deletions

17
libshims/Android.bp Normal file
View File

@@ -0,0 +1,17 @@
//
// Copyright (C) 2022 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
cc_library_shared {
name: "libshim_audio",
srcs: [
"libshim_audio.cpp"
],
shared_libs: [
"libmedia_helper",
"libaudioutils"
],
vendor: true
}

105
libshims/libshim_audio.cpp Normal file
View File

@@ -0,0 +1,105 @@
/*
* Copyright (C) 2016 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.
*/
#include <media/TypeConverter.h>
#define MAKE_STRING_FROM_ENUM(enumval) { #enumval, enumval }
#define TERMINATOR { .literal = nullptr }
namespace android {
template <>
const FormatConverter::Table FormatConverter::mTable[] = {
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_16_BIT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_8_BIT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_32_BIT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_8_24_BIT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_FLOAT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_PCM_24_BIT_PACKED),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MP3),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_NB),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_WB),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_MAIN),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_SSR),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LTP),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_HE_V1),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_SCALABLE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ERLC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_HE_V2),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ELD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_XHE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_MAIN),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_SSR),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LTP),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V1),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_SCALABLE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_ERLC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_LD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_HE_V2),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_ELD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS_XHE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_VORBIS),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_HE_AAC_V1),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_HE_AAC_V2),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_OPUS),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AC3),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_E_AC3),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DTS),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DTS_HD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_IEC61937),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DOLBY_TRUEHD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCB),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCWB),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_EVRCNW),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADIF),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_WMA),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_WMA_PRO),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AMR_WB_PLUS),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MP2),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_QCELP),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_DSD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_FLAC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_ALAC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_ADTS),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_SBC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX_HD),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AC4),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_LDAC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MAT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_E_AC3_JOC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MAT_1_0),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MAT_2_0),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_MAT_2_1),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LATM),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LATM_LC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LATM_HE_V1),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_AAC_LATM_HE_V2),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_CELT),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX_ADAPTIVE),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_LHDC),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_LHDC_LL),
MAKE_STRING_FROM_ENUM(AUDIO_FORMAT_APTX_TWSP),
TERMINATOR
};
} // namespace android