summaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-07-21 10:41:45 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-07-21 10:41:45 -0700
commit9511ab83d6a136a4140ddf78bd4be61b7c3a2bbe (patch)
tree8aeb6c4b6f24f4eb72597642315c49caf0014aed /include/media
parent0119ba5bd3335fe026927eeb65de535a7bd8c838 (diff)
parent8a9a931fff2d184f7cf77fdd8a425f682f006cfd (diff)
downloadframeworks_base-9511ab83d6a136a4140ddf78bd4be61b7c3a2bbe.zip
frameworks_base-9511ab83d6a136a4140ddf78bd4be61b7c3a2bbe.tar.gz
frameworks_base-9511ab83d6a136a4140ddf78bd4be61b7c3a2bbe.tar.bz2
am 8a9a931f: am 8138e841: Merge "Support finer seek control on MediaSources." into gingerbread
Merge commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd' * commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd': Support finer seek control on MediaSources.
Diffstat (limited to 'include/media')
-rw-r--r--include/media/stagefright/MediaSource.h12
-rw-r--r--include/media/stagefright/MetaData.h1
-rw-r--r--include/media/stagefright/OMXCodec.h2
3 files changed, 13 insertions, 2 deletions
diff --git a/include/media/stagefright/MediaSource.h b/include/media/stagefright/MediaSource.h
index 9cc94c8..a31395e 100644
--- a/include/media/stagefright/MediaSource.h
+++ b/include/media/stagefright/MediaSource.h
@@ -62,14 +62,21 @@ struct MediaSource : public RefBase {
// a) not request a seek
// b) not be late, i.e. lateness_us = 0
struct ReadOptions {
+ enum SeekMode {
+ SEEK_PREVIOUS_SYNC,
+ SEEK_NEXT_SYNC,
+ SEEK_CLOSEST_SYNC,
+ SEEK_CLOSEST,
+ };
+
ReadOptions();
// Reset everything back to defaults.
void reset();
- void setSeekTo(int64_t time_us);
+ void setSeekTo(int64_t time_us, SeekMode mode = SEEK_CLOSEST_SYNC);
void clearSeekTo();
- bool getSeekTo(int64_t *time_us) const;
+ bool getSeekTo(int64_t *time_us, SeekMode *mode) const;
void setLateBy(int64_t lateness_us);
int64_t getLateBy() const;
@@ -81,6 +88,7 @@ struct MediaSource : public RefBase {
uint32_t mOptions;
int64_t mSeekTimeUs;
+ SeekMode mSeekMode;
int64_t mLatenessUs;
};
diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h
index cdbf483..e631c7f 100644
--- a/include/media/stagefright/MetaData.h
+++ b/include/media/stagefright/MetaData.h
@@ -46,6 +46,7 @@ enum {
kKeyIsSyncFrame = 'sync', // int32_t (bool)
kKeyIsCodecConfig = 'conf', // int32_t (bool)
kKeyTime = 'time', // int64_t (usecs)
+ kKeyTargetTime = 'tarT', // int64_t (usecs)
kKeyDuration = 'dura', // int64_t (usecs)
kKeyColorFormat = 'colf',
kKeyPlatformPrivate = 'priv', // pointer
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 214f43a..79e7a2f 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -141,6 +141,8 @@ private:
bool mNoMoreOutputData;
bool mOutputPortSettingsHaveChanged;
int64_t mSeekTimeUs;
+ ReadOptions::SeekMode mSeekMode;
+ int64_t mTargetTimeUs;
MediaBuffer *mLeftOverBuffer;