diff options
author | Andreas Huber <andih@google.com> | 2010-05-06 12:43:59 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-05-06 12:43:59 -0700 |
commit | d8a30349da270715156d3f658b165481ce10cf71 (patch) | |
tree | d39118ad2a4370e9e9a0c5cbc7b1e9de56592733 /media/libmediaplayerservice | |
parent | 71ec1d320e61c490bd3fac172f1d1a206a7198e8 (diff) | |
parent | f9325834de1ae004212aec2fd03445b4eebfa766 (diff) | |
download | frameworks_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.cpp | 29 | ||||
-rw-r--r-- | media/libmediaplayerservice/StagefrightPlayer.h | 3 |
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; |