diff options
author | James Dong <jdong@google.com> | 2010-06-20 08:20:54 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-06-25 10:24:35 -0700 |
commit | 2dec2b5be2056c6d9428897dc672185872d30d17 (patch) | |
tree | 8ec375d6e5ec4c10c90552d0f6e02462cb598b64 /include | |
parent | d4b91aac78e565a135f8ef1bfda7e6317debaf35 (diff) | |
download | frameworks_av-2dec2b5be2056c6d9428897dc672185872d30d17.zip frameworks_av-2dec2b5be2056c6d9428897dc672185872d30d17.tar.gz frameworks_av-2dec2b5be2056c6d9428897dc672185872d30d17.tar.bz2 |
Enable passing parameters to the MediaWriter at runtime (at start() call).
- estimate the moov box size for mp4 file writer based on the file
size/duration limit and target bit rate.
- can switch to use 64 bit file offset at runtime
rebased
Change-Id: Ibbe1f57e91ab2605820d5d96e8048d11e5559c53
Diffstat (limited to 'include')
-rw-r--r-- | include/media/stagefright/AMRWriter.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/MPEG4Writer.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/MediaWriter.h | 3 | ||||
-rw-r--r-- | include/media/stagefright/MetaData.h | 3 |
4 files changed, 8 insertions, 4 deletions
diff --git a/include/media/stagefright/AMRWriter.h b/include/media/stagefright/AMRWriter.h index b0eaba4..813dd43 100644 --- a/include/media/stagefright/AMRWriter.h +++ b/include/media/stagefright/AMRWriter.h @@ -26,6 +26,7 @@ namespace android { struct MediaSource; +struct MetaData; struct AMRWriter : public MediaWriter { AMRWriter(const char *filename); @@ -35,7 +36,7 @@ struct AMRWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); - virtual status_t start(); + virtual status_t start(MetaData *params = NULL); virtual void stop(); virtual void pause(); diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index 39d0ea1..7a2de1e 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -36,7 +36,7 @@ public: MPEG4Writer(int fd); virtual status_t addSource(const sp<MediaSource> &source); - virtual status_t start(); + virtual status_t start(MetaData *param = NULL); virtual bool reachedEOS(); virtual void stop(); virtual void pause(); @@ -83,6 +83,7 @@ private: int64_t getStartTimestampUs(); // Not const status_t startTracks(); size_t numTracks(); + int64_t estimateMoovBoxSize(int32_t bitRate); void lock(); void unlock(); diff --git a/include/media/stagefright/MediaWriter.h b/include/media/stagefright/MediaWriter.h index 8528203..46aaf7c 100644 --- a/include/media/stagefright/MediaWriter.h +++ b/include/media/stagefright/MediaWriter.h @@ -24,13 +24,14 @@ namespace android { struct MediaSource; +struct MetaData; struct MediaWriter : public RefBase { MediaWriter() {} virtual status_t addSource(const sp<MediaSource> &source) = 0; virtual bool reachedEOS() = 0; - virtual status_t start() = 0; + virtual status_t start(MetaData *params = NULL) = 0; virtual void stop() = 0; virtual void pause() = 0; virtual void setMaxFileSize(int64_t bytes) { mMaxFileSizeLimitBytes = bytes; } diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h index 6a20602..d28d1ca 100644 --- a/include/media/stagefright/MetaData.h +++ b/include/media/stagefright/MetaData.h @@ -36,13 +36,14 @@ enum { kKeyStride = 'strd', // int32_t kKeySliceHeight = 'slht', // int32_t kKeyChannelCount = '#chn', // int32_t - kKeySampleRate = 'srte', // int32_t + kKeySampleRate = 'srte', // int32_t (also video frame rate) kKeyBitRate = 'brte', // int32_t (bps) kKeyESDS = 'esds', // raw data kKeyAVCC = 'avcc', // raw data kKeyVorbisInfo = 'vinf', // raw data kKeyVorbisBooks = 'vboo', // raw data kKeyWantsNALFragments = 'NALf', + kKey64BitFileOffset = 'fobt', // int32_t (bool) kKeyIsSyncFrame = 'sync', // int32_t (bool) kKeyIsCodecConfig = 'conf', // int32_t (bool) kKeyTime = 'time', // int64_t (usecs) |