Implement server side playback timestamps with 64 bit accuracy
Provide server timestamps if the HAL doesn't provide it.
Provide monotonic - boottime translation.
Integrate record timestamps and playback timestamps together.
Bug: 17472992
Bug: 22871200
Bug: 26400089
Bug: 26682703
Change-Id: If1974f94232fcce7ba0bbcdf63d9e54ed51918ff
diff --git a/media/libnbaio/MonoPipe.cpp b/media/libnbaio/MonoPipe.cpp
index aef9834..8d1cb0f 100644
--- a/media/libnbaio/MonoPipe.cpp
+++ b/media/libnbaio/MonoPipe.cpp
@@ -183,9 +183,14 @@
return mIsShutdown;
}
-status_t MonoPipe::getTimestamp(AudioTimestamp& timestamp)
+status_t MonoPipe::getTimestamp(ExtendedTimestamp ×tamp)
{
- if (mTimestampObserver.poll(timestamp)) {
+ ExtendedTimestamp ets;
+ if (mTimestampObserver.poll(ets)) {
+ timestamp.mPosition[ExtendedTimestamp::LOCATION_KERNEL] =
+ ets.mPosition[ExtendedTimestamp::LOCATION_KERNEL];
+ timestamp.mTimeNs[ExtendedTimestamp::LOCATION_KERNEL] =
+ ets.mTimeNs[ExtendedTimestamp::LOCATION_KERNEL];
return OK;
}
return INVALID_OPERATION;