summaryrefslogtreecommitdiffstats
path: root/include
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
commitd3bc2528fca033f3d34969a095beec0bc3f79ffd (patch)
tree8af023451b660563c83b4e3f5d9da281e1eb7fa3 /include
parent71ff94cb52874e42dede3c6bc4b86757b72cf0b1 (diff)
parent4f2074980eefeabe2a37ea5d6dc5904a87107fc4 (diff)
downloadframeworks_av-d3bc2528fca033f3d34969a095beec0bc3f79ffd.zip
frameworks_av-d3bc2528fca033f3d34969a095beec0bc3f79ffd.tar.gz
frameworks_av-d3bc2528fca033f3d34969a095beec0bc3f79ffd.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')
-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;