NuPlayer:seek handling on kWhatAudioTearDown
Restart from previous seek time on kWhatAudioTearDown if mRenderer
didn't supply a useful positionUs.
Bug: 22662968
Change-Id: Ic21957f676ba25fb92694f71093bed60b630390b
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index e9f3799..2e0d0d3 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -1586,16 +1586,15 @@
mAudioTornDown = true;
int64_t currentPositionUs;
- if (getCurrentPosition(¤tPositionUs) != OK) {
- currentPositionUs = 0;
+ sp<AMessage> notify = mNotify->dup();
+ if (getCurrentPosition(¤tPositionUs) == OK) {
+ notify->setInt64("positionUs", currentPositionUs);
}
mAudioSink->stop();
mAudioSink->flush();
- sp<AMessage> notify = mNotify->dup();
notify->setInt32("what", kWhatAudioTearDown);
- notify->setInt64("positionUs", currentPositionUs);
notify->setInt32("reason", reason);
notify->post();
}