Skip to content

Commit a28279b

Browse files
author
Dave Burke
committed
Handle setDataSource failures properly. #5261671
Change-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9
1 parent 38aac04 commit a28279b

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

media/libmedia/mediaplayer.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,10 @@ status_t MediaPlayer::setDataSource(
148148
const sp<IMediaPlayerService>& service(getMediaPlayerService());
149149
if (service != 0) {
150150
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
151-
err = attachNewPlayer(player);
152-
if (err == NO_ERROR) {
153-
err = mPlayer->setDataSource(url, headers);
151+
if (NO_ERROR != player->setDataSource(url, headers)) {
152+
player.clear();
154153
}
154+
err = attachNewPlayer(player);
155155
}
156156
}
157157
return err;
@@ -164,10 +164,10 @@ status_t MediaPlayer::setDataSource(int fd, int64_t offset, int64_t length)
164164
const sp<IMediaPlayerService>& service(getMediaPlayerService());
165165
if (service != 0) {
166166
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
167-
err = attachNewPlayer(player);
168-
if (err == NO_ERROR) {
169-
err = mPlayer->setDataSource(fd, offset, length);
167+
if (NO_ERROR != player->setDataSource(fd, offset, length)) {
168+
player.clear();
170169
}
170+
err = attachNewPlayer(player);
171171
}
172172
return err;
173173
}
@@ -179,10 +179,10 @@ status_t MediaPlayer::setDataSource(const sp<IStreamSource> &source)
179179
const sp<IMediaPlayerService>& service(getMediaPlayerService());
180180
if (service != 0) {
181181
sp<IMediaPlayer> player(service->create(getpid(), this, mAudioSessionId));
182-
err = attachNewPlayer(player);
183-
if (err == NO_ERROR) {
184-
err = mPlayer->setDataSource(source);
182+
if (NO_ERROR != player->setDataSource(source)) {
183+
player.clear();
185184
}
185+
err = attachNewPlayer(player);
186186
}
187187
return err;
188188
}

0 commit comments

Comments
 (0)