Sameer Joshi
2018-08-11 10:39:50 UTC
Hi All,
We are working on upgrading to Android 8.1 from Android 6.0 for our Avaya
Vantage device.
While working on it, we are finding that if we have the TDM bus frequency
for audio mic transducers set as 48k for mono and 16 bit samples, there are
overruns happening.
This was not happening with Android 6.0 but is very prevalent in Android
8.1.
Looking into the reasons, we found out that the "sleepus" which is pointing
to the time that the AudioIn thread or RecordThread sleeps has increased
considerably almost double to what it was in 6.0.
This resulted into more data being read by Audio HAL and put into the pipe
but since AudioIn thread now sleeps for longer time and puts limit on the
max data that can be read, it discards the samples from the buffer and
returns overrun.
How to overcome this problem if we are not changing the sleepus of
AudioFlinger, since changing that would cause issues with the further
upgrades and we would like to avoid changes in the frameworks.
We are reading 960 bytes every 10 ms in Audio HAL corresponding to 48k
samples per second.
Is it necessary that we always read multiples of 1024 bytes in Audio HAL ?
Wont it work well with numbers such as 960?
There is not much documentation I could find related to this which can help
what is recommended way of bytes returned by Audio HAL in each in_read
operation, since I think its closely related with the sleepus being tracked
by Audio flinger. This problem is causing us to fail the Audio Record
related CTS tests failure since they check whether the required number of
samples are being read by the AudioRecord thread in specified time period.
Please guide us in this problem since we are stuck on this issue.
Regards,
Sameer Joshi
We are working on upgrading to Android 8.1 from Android 6.0 for our Avaya
Vantage device.
While working on it, we are finding that if we have the TDM bus frequency
for audio mic transducers set as 48k for mono and 16 bit samples, there are
overruns happening.
This was not happening with Android 6.0 but is very prevalent in Android
8.1.
Looking into the reasons, we found out that the "sleepus" which is pointing
to the time that the AudioIn thread or RecordThread sleeps has increased
considerably almost double to what it was in 6.0.
This resulted into more data being read by Audio HAL and put into the pipe
but since AudioIn thread now sleeps for longer time and puts limit on the
max data that can be read, it discards the samples from the buffer and
returns overrun.
How to overcome this problem if we are not changing the sleepus of
AudioFlinger, since changing that would cause issues with the further
upgrades and we would like to avoid changes in the frameworks.
We are reading 960 bytes every 10 ms in Audio HAL corresponding to 48k
samples per second.
Is it necessary that we always read multiples of 1024 bytes in Audio HAL ?
Wont it work well with numbers such as 960?
There is not much documentation I could find related to this which can help
what is recommended way of bytes returned by Audio HAL in each in_read
operation, since I think its closely related with the sleepus being tracked
by Audio flinger. This problem is causing us to fail the Audio Record
related CTS tests failure since they check whether the required number of
samples are being read by the AudioRecord thread in specified time period.
Please guide us in this problem since we are stuck on this issue.
Regards,
Sameer Joshi
--
--
unsubscribe: android-porting+***@googlegroups.com
website: http://groups.google.com/group/android-porting
---
You received this message because you are subscribed to the Google Groups "android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-porting+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
unsubscribe: android-porting+***@googlegroups.com
website: http://groups.google.com/group/android-porting
---
You received this message because you are subscribed to the Google Groups "android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-porting+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.