summaryrefslogtreecommitdiffstats
path: root/media/libmedia/mediaplayer.cpp
diff options
context:
space:
mode:
authorDave Burke <daveburke@google.com>2011-09-06 20:39:47 +0100
committerDave Burke <daveburke@google.com>2011-09-06 20:39:47 +0100
commit0662067b06658a4a56a8416c676f6cce8ccddb53 (patch)
tree5a1ed2dc243f4bd4727635a57153bfb0e65422ea /media/libmedia/mediaplayer.cpp
parent71b63e3ef687c379368be6b02e70bd2feb0b6b8d (diff)
downloadframeworks_av-0662067b06658a4a56a8416c676f6cce8ccddb53.zip
frameworks_av-0662067b06658a4a56a8416c676f6cce8ccddb53.tar.gz
frameworks_av-0662067b06658a4a56a8416c676f6cce8ccddb53.tar.bz2
Handle setDataSource failures properly. #5261671
Change-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9
Diffstat (limited to 'media/libmedia/mediaplayer.cpp')
-rw-r--r--media/libmedia/mediaplayer.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp
index 0fc6a8a..37a82e9 100644
--- a/media/libmedia/mediaplayer.cpp
+++ b/media/libmedia/mediaplayer.cpp
@@ -148,10 +148,10 @@ status_t MediaPlayer::setDataSource(
const sp<IMediaPlayerService>& service(getMediaPlayerService());
if (service != 0) {
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
- err = attachNewPlayer(player);
- if (err == NO_ERROR) {
- err = mPlayer->setDataSource(url, headers);
+ if (NO_ERROR != player->setDataSource(url, headers)) {
+ player.clear();
}
+ err = attachNewPlayer(player);
}
}
return err;
@@ -164,10 +164,10 @@ status_t MediaPlayer::setDataSource(int fd, int64_t offset, int64_t length)
const sp<IMediaPlayerService>& service(getMediaPlayerService());
if (service != 0) {
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
- err = attachNewPlayer(player);
- if (err == NO_ERROR) {
- err = mPlayer->setDataSource(fd, offset, length);
+ if (NO_ERROR != player->setDataSource(fd, offset, length)) {
+ player.clear();
}
+ err = attachNewPlayer(player);
}
return err;
}
@@ -179,10 +179,10 @@ status_t MediaPlayer::setDataSource(const sp<IStreamSource> &source)
const sp<IMediaPlayerService>& service(getMediaPlayerService());
if (service != 0) {
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
- err = attachNewPlayer(player);
- if (err == NO_ERROR) {
- err = mPlayer->setDataSource(source);
+ if (NO_ERROR != player->setDataSource(source)) {
+ player.clear();
}
+ err = attachNewPlayer(player);
}
return err;
}