summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-05-06 12:43:59 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-05-06 12:43:59 -0700
commitd8a30349da270715156d3f658b165481ce10cf71 (patch)
treed39118ad2a4370e9e9a0c5cbc7b1e9de56592733 /media/libmediaplayerservice
parent71ec1d320e61c490bd3fac172f1d1a206a7198e8 (diff)
parentf9325834de1ae004212aec2fd03445b4eebfa766 (diff)
downloadframeworks_av-d8a30349da270715156d3f658b165481ce10cf71.zip
frameworks_av-d8a30349da270715156d3f658b165481ce10cf71.tar.gz
frameworks_av-d8a30349da270715156d3f658b165481ce10cf71.tar.bz2
am 71bd9fc8: am 100ef9be: Merge "Disable vorbis seek when streaming from localhost." into froyo
Merge commit '71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c' into kraken * commit '71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c': Disable vorbis seek when streaming from localhost.
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/StagefrightPlayer.cpp29
-rw-r--r--media/libmediaplayerservice/StagefrightPlayer.h3
2 files changed, 31 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/StagefrightPlayer.cpp b/media/libmediaplayerservice/StagefrightPlayer.cpp
index 7776b4e..2c96d6d 100644
--- a/media/libmediaplayerservice/StagefrightPlayer.cpp
+++ b/media/libmediaplayerservice/StagefrightPlayer.cpp
@@ -6,6 +6,9 @@
#include "AwesomePlayer.h"
+#include <media/Metadata.h>
+#include <media/stagefright/MediaExtractor.h>
+
namespace android {
StagefrightPlayer::StagefrightPlayer()
@@ -109,7 +112,8 @@ status_t StagefrightPlayer::getDuration(int *msec) {
status_t err = mPlayer->getDuration(&durationUs);
if (err != OK) {
- return err;
+ *msec = 0;
+ return OK;
}
*msec = (durationUs + 500) / 1000;
@@ -156,4 +160,27 @@ void StagefrightPlayer::setAudioSink(const sp<AudioSink> &audioSink) {
mPlayer->setAudioSink(audioSink);
}
+status_t StagefrightPlayer::getMetadata(
+ const media::Metadata::Filter& ids, Parcel *records) {
+ using media::Metadata;
+
+ uint32_t flags = mPlayer->flags();
+
+ Metadata metadata(records);
+
+ metadata.appendBool(
+ Metadata::kPauseAvailable,
+ flags & MediaExtractor::CAN_PAUSE);
+
+ metadata.appendBool(
+ Metadata::kSeekBackwardAvailable,
+ flags & MediaExtractor::CAN_SEEK_BACKWARD);
+
+ metadata.appendBool(
+ Metadata::kSeekForwardAvailable,
+ flags & MediaExtractor::CAN_SEEK_FORWARD);
+
+ return OK;
+}
+
} // namespace android
diff --git a/media/libmediaplayerservice/StagefrightPlayer.h b/media/libmediaplayerservice/StagefrightPlayer.h
index 4446582..781eb44 100644
--- a/media/libmediaplayerservice/StagefrightPlayer.h
+++ b/media/libmediaplayerservice/StagefrightPlayer.h
@@ -53,6 +53,9 @@ public:
virtual status_t suspend();
virtual status_t resume();
+ virtual status_t getMetadata(
+ const media::Metadata::Filter& ids, Parcel *records);
+
private:
AwesomePlayer *mPlayer;