MediaPlayer2: add native DataSourceDesc.
Test: MediaPlayer2 plays
Bug: 63934228
Change-Id: Idd5bda81c2cc26c7aac8e64a21ccc2f6b3ac8a39
diff --git a/media/libmedia/mediaplayer2.cpp b/media/libmedia/mediaplayer2.cpp
index 5c34d4a..ba24da7 100644
--- a/media/libmedia/mediaplayer2.cpp
+++ b/media/libmedia/mediaplayer2.cpp
@@ -34,6 +34,7 @@
#include <media/AudioSystem.h>
#include <media/AVSyncSettings.h>
#include <media/DataSource.h>
+#include <media/DataSourceDesc.h>
#include <media/MediaAnalyticsItem.h>
#include <media/NdkWrapper.h>
@@ -153,43 +154,16 @@
return err;
}
-status_t MediaPlayer2::setDataSource(
- const sp<MediaHTTPService> &httpService,
- const char *url, const KeyedVector<String8, String8> *headers)
+status_t MediaPlayer2::setDataSource(const sp<DataSourceDesc> &dsd)
{
- ALOGV("setDataSource(%s)", url);
- status_t err = BAD_VALUE;
- if (url != NULL) {
- sp<MediaPlayer2Engine> player(MediaPlayer2Manager::get().create(this, mAudioSessionId));
- if ((NO_ERROR != doSetRetransmitEndpoint(player)) ||
- (NO_ERROR != player->setDataSource(httpService, url, headers))) {
- player.clear();
- }
- err = attachNewPlayer(player);
+ if (dsd == NULL) {
+ return BAD_VALUE;
}
- return err;
-}
-
-status_t MediaPlayer2::setDataSource(int fd, int64_t offset, int64_t length)
-{
- ALOGV("setDataSource(%d, %" PRId64 ", %" PRId64 ")", fd, offset, length);
+ ALOGV("setDataSource type(%d)", dsd->mType);
status_t err = UNKNOWN_ERROR;
sp<MediaPlayer2Engine> player(MediaPlayer2Manager::get().create(this, mAudioSessionId));
if ((NO_ERROR != doSetRetransmitEndpoint(player)) ||
- (NO_ERROR != player->setDataSource(fd, offset, length))) {
- player.clear();
- }
- err = attachNewPlayer(player);
- return err;
-}
-
-status_t MediaPlayer2::setDataSource(const sp<DataSource> &source)
-{
- ALOGV("setDataSource(DataSource)");
- status_t err = UNKNOWN_ERROR;
- sp<MediaPlayer2Engine> player(MediaPlayer2Manager::get().create(this, mAudioSessionId));
- if ((NO_ERROR != doSetRetransmitEndpoint(player)) ||
- (NO_ERROR != player->setDataSource(source))) {
+ (NO_ERROR != player->setDataSource(dsd))) {
player.clear();
}
err = attachNewPlayer(player);