stagefright_foundation: Fix parsing seek pre roll in Opus
Seek pre-roll parsing was skipped in OpusHeader because of
wrong loop check.
Also, C2 opus decoder plugin was reading from codecDelayBuf instead
of seekPreRollBuf
Test: With a local AMediaCodec api based application to decode
opus encoder's output
Bug: 123426341
Change-Id: I0924f67c4a070a582b578d2ecdcd2fecd10134ad
diff --git a/media/codec2/components/opus/C2SoftOpusDec.cpp b/media/codec2/components/opus/C2SoftOpusDec.cpp
index 13e3df5..7dcd53d 100644
--- a/media/codec2/components/opus/C2SoftOpusDec.cpp
+++ b/media/codec2/components/opus/C2SoftOpusDec.cpp
@@ -318,7 +318,7 @@
}
if (seekPreRollBuf && seekPreRollBufSize == sizeof(uint64_t)) {
uint64_t value;
- memcpy(&value, codecDelayBuf, sizeof(uint64_t));
+ memcpy(&value, seekPreRollBuf, sizeof(uint64_t));
mSeekPreRoll = ns_to_samples(value, kRate);
++mInputBufferCount;
}