From 0662067b06658a4a56a8416c676f6cce8ccddb53 Mon Sep 17 00:00:00 2001 From: Dave Burke Date: Tue, 6 Sep 2011 20:39:47 +0100 Subject: Handle setDataSource failures properly. #5261671 Change-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9 --- media/libmedia/mediaplayer.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'media/libmedia/mediaplayer.cpp') 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& service(getMediaPlayerService()); if (service != 0) { sp 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& service(getMediaPlayerService()); if (service != 0) { sp 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 &source) const sp& service(getMediaPlayerService()); if (service != 0) { sp 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; } -- cgit v1.1