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

Commit 8a1c0934 authored by Andreas Huber's avatar Andreas Huber Committed by Android Git Automerger
Browse files

am 71bd9fc8: am 100ef9be: Merge "Disable vorbis seek when streaming from localhost." into froyo

Merge commit '71bd9fc8' into kraken

* commit '71bd9fc8':
  Disable vorbis seek when streaming from localhost.
parents 799bc84d 71bd9fc8
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