aacenc: fix timestamp calculation
Bug: 120535392
Test: log audio timestamps
Change-Id: Ic09173b871a25366930e38b36e7c398c0dba24cc
(cherry picked from commit 02a7ff9e5e943568d0feab02d15cb3df34ec9b31)
diff --git a/media/codecs/aac/C2SoftAacEnc.cpp b/media/codecs/aac/C2SoftAacEnc.cpp
index 054a08d..112578a 100644
--- a/media/codecs/aac/C2SoftAacEnc.cpp
+++ b/media/codecs/aac/C2SoftAacEnc.cpp
@@ -417,12 +417,12 @@
if (encoderErr == AACENC_OK) {
if (outargs.numOutBytes > 0) {
mInputSize = 0;
- int consumed = ((capacity / sizeof(int16_t)) - inargs.numInSamples);
+ int consumed = (capacity / sizeof(int16_t)) - inargs.numInSamples
+ + outargs.numInSamples;
mInputTimeUs = work->input.ordinal.timestamp
+ (consumed * 1000000ll / channelCount / sampleRate);
} else {
mInputSize += outargs.numInSamples * sizeof(int16_t);
- mInputTimeUs += outargs.numInSamples * 1000000ll / channelCount / sampleRate;
}
outPtr += outargs.numOutBytes;
nOutputBytes += outargs.numOutBytes;