Add OnMediaTimeDiscontinuity notification
Test: MediaPlayerTest
Bug: 63934228
Change-Id: I7efb58d00dc86b17b9d97775d1a2672e40e841d3
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
index bd83c6d..14ffb1d 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
@@ -220,8 +220,11 @@
mUID = uid;
}
-void NuPlayer::setDriver(const wp<NuPlayerDriver> &driver) {
+void NuPlayer::init(const wp<NuPlayerDriver> &driver) {
mDriver = driver;
+
+ sp<AMessage> notify = new AMessage(kWhatMediaClockNotify, this);
+ mMediaClock->setNotificationMessage(notify);
}
void NuPlayer::setDataSourceAsync(const sp<IStreamSource> &source) {
@@ -1425,6 +1428,24 @@
break;
}
+ case kWhatMediaClockNotify:
+ {
+ ALOGV("kWhatMediaClockNotify");
+ int64_t anchorMediaUs, anchorRealUs;
+ float playbackRate;
+ CHECK(msg->findInt64("anchor-media-us", &anchorMediaUs));
+ CHECK(msg->findInt64("anchor-real-us", &anchorRealUs));
+ CHECK(msg->findFloat("playback-rate", &playbackRate));
+
+ Parcel in;
+ in.writeInt64(anchorMediaUs);
+ in.writeInt64(anchorRealUs);
+ in.writeFloat(playbackRate);
+
+ notifyListener(MEDIA_TIME_DISCONTINUITY, 0, 0, &in);
+ break;
+ }
+
default:
TRESPASS();
break;
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.h b/media/libmediaplayerservice/nuplayer/NuPlayer.h
index 9481234..3a7ef4e 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.h
@@ -39,7 +39,7 @@
void setUID(uid_t uid);
- void setDriver(const wp<NuPlayerDriver> &driver);
+ void init(const wp<NuPlayerDriver> &driver);
void setDataSourceAsync(const sp<IStreamSource> &source);
@@ -158,6 +158,7 @@
kWhatSetBufferingSettings = 'sBuS',
kWhatPrepareDrm = 'pDrm',
kWhatReleaseDrm = 'rDrm',
+ kWhatMediaClockNotify = 'mckN',
};
wp<NuPlayerDriver> mDriver;
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
index 731fdba..63c887b 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
@@ -104,7 +104,7 @@
mLooper->registerHandler(mPlayer);
- mPlayer->setDriver(this);
+ mPlayer->init(this);
}
NuPlayerDriver::~NuPlayerDriver() {