Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 100ef9be authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Disable vorbis seek when streaming from localhost." into froyo

parents 5305627d 62f7ffe1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ class DataSource : public RefBase {
public:
    enum Flags {
        kWantsPrefetching      = 1,
        kStreamedFromLocalHost = 2,
    };

    static sp<DataSource> CreateFromURI(
+1 −3
Original line number Diff line number Diff line
@@ -45,9 +45,7 @@ public:

    virtual status_t getSize(off_t *size);

    virtual uint32_t flags() {
        return kWantsPrefetching;
    }
    virtual uint32_t flags();

protected:
    virtual ~HTTPDataSource();
+10 −0
Original line number Diff line number Diff line
@@ -44,6 +44,16 @@ public:
    // returns an empty metadata object.
    virtual sp<MetaData> getMetaData();

    enum Flags {
        CAN_SEEK_BACKWARD  = 1,
        CAN_SEEK_FORWARD   = 2,
        CAN_PAUSE          = 4,
    };

    // If subclasses do _not_ override this, the default is
    // CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_PAUSE
    virtual uint32_t flags() const;

protected:
    MediaExtractor() {}
    virtual ~MediaExtractor() {}
+28 −1
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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;

Loading