summaryrefslogtreecommitdiffstats
path: root/media/libmedia/mediaplayer.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-04-11 11:07:55 -0700
committerAndreas Huber <andih@google.com>2013-04-11 11:31:55 -0700
commit2070254f241f52cadb69bc2323f56df72704f1ca (patch)
treedd5aead0ce971332761599cc73189b8e1fea96a9 /media/libmedia/mediaplayer.cpp
parentecba7488c5cceaacef95836b1b476433451e7761 (diff)
downloadframeworks_av-2070254f241f52cadb69bc2323f56df72704f1ca.zip
frameworks_av-2070254f241f52cadb69bc2323f56df72704f1ca.tar.gz
frameworks_av-2070254f241f52cadb69bc2323f56df72704f1ca.tar.bz2
Instead of returning an error, return an invalid duration (-1 ms)
if no duration information was available. This prevents us from entering ERROR state, effectively rendering the player instance useless. Change-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17 related-to-bug: 8596285
Diffstat (limited to 'media/libmedia/mediaplayer.cpp')
-rw-r--r--media/libmedia/mediaplayer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp
index 3defec3..ecae3d3 100644
--- a/media/libmedia/mediaplayer.cpp
+++ b/media/libmedia/mediaplayer.cpp
@@ -398,6 +398,13 @@ status_t MediaPlayer::getDuration_l(int *msec)
if (mPlayer != 0 && isValidState) {
int durationMs;
status_t ret = mPlayer->getDuration(&durationMs);
+
+ if (ret != OK) {
+ // Do not enter error state just because no duration was available.
+ durationMs = -1;
+ ret = OK;
+ }
+
if (msec) {
*msec = durationMs;
}