MediaPlayer2: use DataSource to replace IDataSource.
Also fix deadlock by always posting notification to NuPlayer2Driver's
looper.
Test: MediaPlayer2 can play callback source.
Bug: 63934228
Change-Id: Ie27bc0038bcc07ffef5c610662db3fcb5df7aec4
diff --git a/media/libmedia/MediaPlayer2Manager.cpp b/media/libmedia/MediaPlayer2Manager.cpp
index c6ad99e..720c1e3 100644
--- a/media/libmedia/MediaPlayer2Manager.cpp
+++ b/media/libmedia/MediaPlayer2Manager.cpp
@@ -726,15 +726,14 @@
}
status_t MediaPlayer2Manager::Client::setDataSource(
- const sp<IDataSource> &source) {
- sp<DataSource> dataSource = CreateDataSourceFromIDataSource(source);
- player2_type playerType = MediaPlayer2Factory::getPlayerType(this, dataSource);
+ const sp<DataSource> &source) {
+ player2_type playerType = MediaPlayer2Factory::getPlayerType(this, source);
sp<MediaPlayer2Base> p = setDataSource_pre(playerType);
if (p == NULL) {
return NO_INIT;
}
// now set data source
- return mStatus = setDataSource_post(p, p->setDataSource(dataSource));
+ return mStatus = setDataSource_post(p, p->setDataSource(source));
}
void MediaPlayer2Manager::Client::disconnectNativeWindow_l() {