Merge "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality." into gingerbread
This commit is contained in:
committed by
Android (Google) Code Review
commit
f72dd0190e
@@ -91,6 +91,7 @@ class Metadata {
|
|||||||
static const Type kPauseAvailable = 29; // Boolean
|
static const Type kPauseAvailable = 29; // Boolean
|
||||||
static const Type kSeekBackwardAvailable = 30; // Boolean
|
static const Type kSeekBackwardAvailable = 30; // Boolean
|
||||||
static const Type kSeekForwardAvailable = 31; // Boolean
|
static const Type kSeekForwardAvailable = 31; // Boolean
|
||||||
|
static const Type kSeekAvailable = 32; // Boolean
|
||||||
|
|
||||||
// @param p[inout] The parcel to append the metadata records
|
// @param p[inout] The parcel to append the metadata records
|
||||||
// to. The global metadata header should have been set already.
|
// to. The global metadata header should have been set already.
|
||||||
|
|||||||
@@ -45,13 +45,14 @@ public:
|
|||||||
virtual sp<MetaData> getMetaData();
|
virtual sp<MetaData> getMetaData();
|
||||||
|
|
||||||
enum Flags {
|
enum Flags {
|
||||||
CAN_SEEK_BACKWARD = 1,
|
CAN_SEEK_BACKWARD = 1, // the "seek 10secs back button"
|
||||||
CAN_SEEK_FORWARD = 2,
|
CAN_SEEK_FORWARD = 2, // the "seek 10secs forward button"
|
||||||
CAN_PAUSE = 4,
|
CAN_PAUSE = 4,
|
||||||
|
CAN_SEEK = 8, // the "seek bar"
|
||||||
};
|
};
|
||||||
|
|
||||||
// If subclasses do _not_ override this, the default is
|
// If subclasses do _not_ override this, the default is
|
||||||
// CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_PAUSE
|
// CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_SEEK | CAN_PAUSE
|
||||||
virtual uint32_t flags() const;
|
virtual uint32_t flags() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -102,8 +102,9 @@ public class Metadata
|
|||||||
public static final int PAUSE_AVAILABLE = 29; // Boolean
|
public static final int PAUSE_AVAILABLE = 29; // Boolean
|
||||||
public static final int SEEK_BACKWARD_AVAILABLE = 30; // Boolean
|
public static final int SEEK_BACKWARD_AVAILABLE = 30; // Boolean
|
||||||
public static final int SEEK_FORWARD_AVAILABLE = 31; // Boolean
|
public static final int SEEK_FORWARD_AVAILABLE = 31; // Boolean
|
||||||
|
public static final int SEEK_AVAILABLE = 32; // Boolean
|
||||||
|
|
||||||
private static final int LAST_SYSTEM = 31;
|
private static final int LAST_SYSTEM = 32;
|
||||||
private static final int FIRST_CUSTOM = 8192;
|
private static final int FIRST_CUSTOM = 8192;
|
||||||
|
|
||||||
// Shorthands to set the MediaPlayer's metadata filter.
|
// Shorthands to set the MediaPlayer's metadata filter.
|
||||||
|
|||||||
@@ -180,6 +180,10 @@ status_t StagefrightPlayer::getMetadata(
|
|||||||
Metadata::kSeekForwardAvailable,
|
Metadata::kSeekForwardAvailable,
|
||||||
flags & MediaExtractor::CAN_SEEK_FORWARD);
|
flags & MediaExtractor::CAN_SEEK_FORWARD);
|
||||||
|
|
||||||
|
metadata.appendBool(
|
||||||
|
Metadata::kSeekAvailable,
|
||||||
|
flags & MediaExtractor::CAN_SEEK);
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -868,9 +868,7 @@ status_t AwesomePlayer::getPosition(int64_t *positionUs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
status_t AwesomePlayer::seekTo(int64_t timeUs) {
|
status_t AwesomePlayer::seekTo(int64_t timeUs) {
|
||||||
if (mExtractorFlags
|
if (mExtractorFlags & MediaExtractor::CAN_SEEK) {
|
||||||
& (MediaExtractor::CAN_SEEK_FORWARD
|
|
||||||
| MediaExtractor::CAN_SEEK_BACKWARD)) {
|
|
||||||
Mutex::Autolock autoLock(mLock);
|
Mutex::Autolock autoLock(mLock);
|
||||||
return seekTo_l(timeUs);
|
return seekTo_l(timeUs);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ sp<MetaData> MediaExtractor::getMetaData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint32_t MediaExtractor::flags() const {
|
uint32_t MediaExtractor::flags() const {
|
||||||
return CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_PAUSE;
|
return CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_PAUSE | CAN_SEEK;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
|||||||
@@ -46,6 +46,14 @@ struct ARTSPController : public MediaExtractor {
|
|||||||
|
|
||||||
void onMessageReceived(const sp<AMessage> &msg);
|
void onMessageReceived(const sp<AMessage> &msg);
|
||||||
|
|
||||||
|
virtual uint32_t flags() const {
|
||||||
|
// Seeking 10secs forward or backward is a very expensive operation
|
||||||
|
// for rtsp, so let's not enable that.
|
||||||
|
// The user can always use the seek bar.
|
||||||
|
|
||||||
|
return CAN_PAUSE | CAN_SEEK;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~ARTSPController();
|
virtual ~ARTSPController();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user