google / oboe

Oboe is a C++ library that makes it easy to build high-performance audio apps on Android.
Apache License 2.0
3.72k stars 571 forks source link

Honor CTS-NX1: only InputPreset oboe::Unprocessed for input stream is working, VoicePerformance not working #1970

Open renetik opened 8 months ago

renetik commented 8 months ago

Android version(s): 13 MAGIC OS : 7.1 Android device(s): Honor: CRT-NX1 Oboe version: 1.8 , main branch

I have to use Unprocessed for stream otherwise not workinng at all eve with external interfaces:

oboe::AudioStreamBuilder builder; builder.setDeviceId(_deviceId); builder.setDirection(oboe::Direction::Input); builder.setSampleRate(_settings->sampleRate); builder.setChannelCount(oboe::ChannelCount::Stereo); builder.setPerformanceMode(oboe::PerformanceMode::LowLatency); builder.setSharingMode(oboe::SharingMode::Exclusive); builder.setInputPreset(oboe::Unprocessed); // VoicePerformance didn't work on honor. builder.setErrorCallback(_errorCallback); builder.setFormat(oboe::AudioFormat::Float); builder.setChannelConversionAllowed(true); builder.setFormatConversionAllowed(true); builder.setSampleRateConversionQuality(oboe::SampleRateConversionQuality::Medium); auto result = builder.openStream(&_input);

philburk commented 8 months ago

@renetik - thanks for reporting this. We are currently adding tests to CTS Verifier so that it will catch this sort of bug before a phone is shipped.

I am reporting this to MediaTek.

Do you see this problem on any other devices?

// VoicePerformance didn't work on honor.

Does InputPreset(VoiceRecognition) or Generic work?

builder.setSampleRate(_settings->sampleRate);

What was the sample rate? Does 48000 work?

Does InputPreset(VoiceRecognition) works for you on other phones?

Can you reproduce this with OboeTester TEST INPUT?

According to https://www.gsmarena.com/honor_90_lite-12377.php Chipset= Mediatek Dimensity 6020 (7 nm)

Does the Data Paths "InPre" test catch this error? We are basing CTS Verifier Data Paths on this test.

renetik commented 8 months ago

I am using 48000 sample rate hard coded now in my apps and originally used VoiceRecognition so that was not working .. I tried some other preset and when realized unprocessed works for me best I just left it there and reported it here.. VoiceRecognition was working on xiaomi and Samsung device I own, just honor that is totally new didnt worked .. Not sure about other devies I will trys to catch such problems in the futuer on users devices too but I hava not implemented some sophysticated logging logic on C++ side of my software yet, now I am thinking how this could be done.. . So basically I didnt know this is the issue until it happened to me personally.

philburk commented 8 months ago

MediaTek was unable to reproduce this on their phones.

I will try to contact the OEM.

philburk commented 8 months ago

MediaTek could not reproduce this. We are now working with Honor OEM to reproduce the issue. Internal tracking number is.

b/328615006

philburk commented 8 months ago

Honor was able to reproduce the problem and they are investigating.

renetik commented 8 months ago

Nice that you actualy was able to move this somewhere ;)